From db6301c9f330b7fe0bff27c8d2549ba49685a8ab Mon Sep 17 00:00:00 2001 From: abdullasulaiman Date: Thu, 9 Feb 2023 15:04:29 +0530 Subject: [PATCH 001/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 363 +++++++++++++++++++++++++++++++- 1 file changed, 357 insertions(+), 6 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3fb9f5d12..ff7af9dbf 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -163,6 +163,19 @@ "type": "string" }, "deprecated": false + }, + "home_liveboard_identifier": { + "description": "Unique ID or name of the users home liveboard.", + "type": "string", + "deprecated": false + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "deprecated": false } } } @@ -258,6 +271,37 @@ } } }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "Get cluster override info.", + "tags": [ + "System" + ], + "parameters": [], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", @@ -1180,7 +1224,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "Fetches Liveboard data. Requires at least view access to the Liveboard. ", + "description": "Fetches Liveboard data. Requires at least view access to the Liveboard.", "tags": [ "Data" ], @@ -1266,7 +1310,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "Fetches data from a saved Answer. Requires at least view access to the Answer object. ", + "description": "Fetches data from a saved Answer. Requires at least view access to the Answer object.", "tags": [ "Data" ], @@ -1548,6 +1592,11 @@ "type": "string", "deprecated": false }, + "org_identifier": { + "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", + "type": "string", + "deprecated": false + }, "remember_me": { "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", "default": false, @@ -2379,6 +2428,50 @@ } } }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "Update cluster configuration", + "tags": [ + "System" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object", + "deprecated": false + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Successful" + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", @@ -3275,7 +3368,7 @@ "deprecated": false }, "export_fqn": { - "description": "Indicates whether to include FQN (GUID) of specified metadata objects.", + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects, \nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", "default": false, "type": "boolean", "deprecated": false @@ -3968,6 +4061,203 @@ } } } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "Creates a connection to a Data WareHouse.", + "tags": [ + "Connections" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string", + "deprecated": false + }, + "description": { + "description": "Description of the connection.", + "type": "string", + "deprecated": false + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "SNOWFLAKE", + "AMAZON_REDSHIFT", + "GOOGLE_BIGQUERY", + "AZURE_SYNAPSE", + "TERADATA", + "SAP_HANA", + "STARBURST", + "ORACLE_ADW", + "DATABRICKS", + "DENODO", + "DREMIO", + "TRINO", + "PRESTO" + ], + "deprecated": false + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "string", + "deprecated": false + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "Deletes a connection to a Data WareHouse.", + "tags": [ + "Connections" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string", + "deprecated": false + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Successful" + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "Updates a connection to a Data WareHouse.", + "tags": [ + "Connections" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string", + "deprecated": false + }, + "name": { + "description": "Updated name of the connection.", + "type": "string", + "deprecated": false + }, + "description": { + "description": "Updated description of the connection.", + "type": "string", + "deprecated": false + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object", + "deprecated": false + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Successful" + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } } }, "components": { @@ -4232,8 +4522,7 @@ "LIVEBOARD", "ANSWER", "LOGICAL_TABLE", - "CONNECTION", - "DATA_SOURCE" + "CONNECTION" ], "description": "Type of metadata." } @@ -5533,7 +5822,7 @@ "committed_files": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/CommitFileType" }, "description": "Files that were pushed as part of this commit" } @@ -5592,6 +5881,47 @@ } } }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "SNOWFLAKE", + "AMAZON_REDSHIFT", + "GOOGLE_BIGQUERY", + "AZURE_SYNAPSE", + "TERADATA", + "SAP_HANA", + "STARBURST", + "ORACLE_ADW", + "DATABRICKS", + "DENODO", + "DREMIO", + "TRINO", + "PRESTO" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection." + } + } + }, "Org": { "type": "object", "required": [ @@ -5865,6 +6195,27 @@ "description": "Unique identifier of the organization." } } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } } }, "securitySchemes": { From 54bc99aa3fb393c0f620dfa8be2dec483570a555 Mon Sep 17 00:00:00 2001 From: abdullasulaiman Date: Thu, 9 Feb 2023 17:18:36 +0530 Subject: [PATCH 002/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ff7af9dbf..306a8271f 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1274,6 +1274,18 @@ "type": "integer", "format": "int32", "deprecated": false + }, + "runtime_filter": { + "description": "JSON object representing filter condition to filter the data.", + "default": "", + "type": "object", + "deprecated": false + }, + "runtime_sort": { + "description": "JSON object representing columns to sort the data.", + "default": "", + "type": "object", + "deprecated": false } }, "required": [ @@ -1347,6 +1359,18 @@ "type": "integer", "format": "int32", "deprecated": false + }, + "runtime_filter": { + "description": "JSON object representing filter condition to filter the data.", + "default": "", + "type": "object", + "deprecated": false + }, + "runtime_sort": { + "description": "JSON object representing columns to sort the data.", + "default": "", + "type": "object", + "deprecated": false } }, "required": [ @@ -5991,7 +6015,6 @@ "ImportUserType": { "type": "object", "required": [ - "id", "name" ], "properties": { From 67a52c7f8d44dca4769b325c1a0a7ad9c03ec7d5 Mon Sep 17 00:00:00 2001 From: Aditya Mittal <114516106+adityamittal3107@users.noreply.github.com> Date: Wed, 22 Feb 2023 12:54:39 +0530 Subject: [PATCH 003/410] Open API spec with connection API (#18) --- api-spec/openapiSpecv3-2_0.json | 597 ++++++++++++++++++++++++++------ 1 file changed, 485 insertions(+), 112 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 306a8271f..2d1fb5409 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -93,25 +93,16 @@ "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" ] }, @@ -493,25 +484,16 @@ "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" ] }, @@ -1274,18 +1256,6 @@ "type": "integer", "format": "int32", "deprecated": false - }, - "runtime_filter": { - "description": "JSON object representing filter condition to filter the data.", - "default": "", - "type": "object", - "deprecated": false - }, - "runtime_sort": { - "description": "JSON object representing columns to sort the data.", - "default": "", - "type": "object", - "deprecated": false } }, "required": [ @@ -1359,18 +1329,6 @@ "type": "integer", "format": "int32", "deprecated": false - }, - "runtime_filter": { - "description": "JSON object representing filter condition to filter the data.", - "default": "", - "type": "object", - "deprecated": false - }, - "runtime_sort": { - "description": "JSON object representing columns to sort the data.", - "default": "", - "type": "object", - "deprecated": false } }, "required": [ @@ -1472,7 +1430,7 @@ } } }, - "/api/rest/2.0/vcs/config/search": { + "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchLocalConfig", "description": "Search local repository configuration", @@ -1506,7 +1464,7 @@ } } }, - "/api/rest/2.0/vcs/commits/search": { + "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", "description": "List the commit history of a metadata object", @@ -1593,6 +1551,125 @@ } } }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "Search connection objects. Requires DATAMANAGEMENT privilege.", + "tags": [ + "Connections" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + }, + "deprecated": false + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "SNOWFLAKE", + "AMAZON_REDSHIFT", + "GOOGLE_BIGQUERY", + "AZURE_SYNAPSE", + "TERADATA", + "SAP_HANA", + "STARBURST", + "ORACLE_ADW", + "DATABRICKS", + "DENODO", + "DREMIO", + "TRINO", + "PRESTO" + ] + }, + "deprecated": false + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ], + "deprecated": false + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptionInput", + "deprecated": false + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "deprecated": false + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", @@ -1699,6 +1776,18 @@ "format": "int32", "deprecated": false }, + "email": { + "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", + "default": "", + "type": "string", + "deprecated": false + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "default": "", + "type": "string", + "deprecated": false + }, "auto_create": { "description": "“Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT).", "default": false, @@ -1706,7 +1795,7 @@ "deprecated": false }, "group_identifiers": { - "description": "Unique ID or name of the User Groups to which newly created user to be added.", + "description": "Unique ID or name of the User Groups to which newly created user to be added. Use this parameter to provision a user just-in-time (JIT).", "type": "array", "items": { "type": "string" @@ -1790,6 +1879,18 @@ "format": "int32", "deprecated": false }, + "email": { + "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", + "default": "", + "type": "string", + "deprecated": false + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "default": "", + "type": "string", + "deprecated": false + }, "auto_create": { "description": "Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT).", "default": false, @@ -1797,7 +1898,7 @@ "deprecated": false }, "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs.", + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", "type": "array", "items": { "type": "string" @@ -2962,25 +3063,16 @@ "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" ] }, @@ -3102,25 +3194,16 @@ "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" ] }, @@ -3254,11 +3337,13 @@ }, "delete_unspecified_groups": { "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, "type": "boolean", "deprecated": false }, "dry_run": { "description": "If true, the API performs a test operation and returns user IDs whose \ndata will be edited after the import.", + "default": true, "type": "boolean", "deprecated": false } @@ -3381,7 +3466,7 @@ "description": "Metadata objects.", "type": "array", "items": { - "$ref": "#/components/schemas/MetadataTypeInput" + "$ref": "#/components/schemas/ExportMetadataTypeInput" }, "deprecated": false }, @@ -3645,7 +3730,7 @@ } } }, - "/api/rest/2.0/vcs/config/create": { + "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createLocalConfig", "description": "Configure local repository to connect to remote repository", @@ -3712,7 +3797,7 @@ } } }, - "/api/rest/2.0/vcs/config/update": { + "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateLocalConfig", "description": "Update local repository configuration.", @@ -3769,7 +3854,7 @@ } } }, - "/api/rest/2.0/vcs/config/delete": { + "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteLocalConfig", "description": "Delete local repository configuration", @@ -3794,7 +3879,7 @@ } } }, - "/api/rest/2.0/vcs/branches/{branch_name}/pull": { + "/api/rest/2.0/vcs/git/branches/{branch_name}/pull": { "post": { "operationId": "pullBranch", "description": "Pull a branch from remote repository to local repository.", @@ -3830,7 +3915,7 @@ } } }, - "/api/rest/2.0/vcs/branches/commit": { + "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", "description": "Commit the object from metadata to remote repository", @@ -3894,7 +3979,7 @@ } } }, - "/api/rest/2.0/vcs/commits/{commit_id}/revert": { + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", "description": "Revert an object to a specific commit id", @@ -3934,7 +4019,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CommitResponse" + "$ref": "#/components/schemas/RevertResponse" } } } @@ -3964,7 +4049,7 @@ ] } }, - "/api/rest/2.0/vcs/branches/validate": { + "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", "description": "Before merging changes to target branch, pick the changes from source branch and validate the files", @@ -4023,7 +4108,7 @@ } } }, - "/api/rest/2.0/vcs/commits/deploy": { + "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", "description": "Deploy changes to a Thoughtspot environment from a commit point\"", @@ -4089,7 +4174,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "Creates a connection to a Data WareHouse.", + "description": "Creates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.", "tags": [ "Connections" ], @@ -4131,7 +4216,7 @@ }, "data_warehouse_config": { "description": "Configuration of the data warehouse in JSON.", - "type": "string", + "type": "object", "deprecated": false }, "validate": { @@ -4177,7 +4262,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "Deletes a connection to a Data WareHouse.", + "description": "Deletes a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.", "tags": [ "Connections" ], @@ -4221,7 +4306,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "Updates a connection to a Data WareHouse.", + "description": "Updates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.", "tags": [ "Connections" ], @@ -4466,25 +4551,16 @@ "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" ] }, @@ -4690,7 +4766,6 @@ "MetadataTypeInput": { "type": "object", "required": [ - "type", "identifier" ], "properties": { @@ -4707,7 +4782,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata." + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -4716,10 +4791,31 @@ }, "description": "MetadataType InputType associated in the Product" }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID)." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + }, + "description": "MetadataType InputType used in Export MetadataType API's" + }, "DeleteMetadataTypeInput": { "type": "object", "required": [ - "type", "identifier" ], "properties": { @@ -4731,7 +4827,7 @@ "LOGICAL_TABLE", "LOGICAL_COLUMN" ], - "description": "Type of metadata." + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -5209,25 +5305,16 @@ "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" ] }, @@ -5440,7 +5527,12 @@ "DISPLAY_NAME", "AUTHOR", "CREATED", - "MODIFIED" + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" ], "description": "Name of the field to apply the sort on." }, @@ -5626,6 +5718,104 @@ } } }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "SNOWFLAKE", + "AMAZON_REDSHIFT", + "GOOGLE_BIGQUERY", + "AZURE_SYNAPSE", + "TERADATA", + "SAP_HANA", + "STARBURST", + "ORACLE_ADW", + "DATABRICKS", + "DENODO", + "DREMIO", + "TRINO", + "PRESTO" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects" + }, + "details": { + "type": "object", + "description": "Details of the connection." + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection." + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User % for a wildcard match." + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns." + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + } + }, "Token": { "type": "object", "required": [ @@ -5668,7 +5858,6 @@ "TagMetadataTypeInput": { "type": "object", "required": [ - "type", "identifier" ], "properties": { @@ -5680,7 +5869,7 @@ "LOGICAL_TABLE", "LOGICAL_COLUMN" ], - "description": "Type of metadata.\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." }, "identifier": { "type": "string", @@ -5755,25 +5944,16 @@ "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" ] }, @@ -5880,6 +6060,54 @@ } } }, + "RevertResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit" + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit" + } + } + }, "DeployResponse": { "type": "object", "properties": { @@ -6198,6 +6426,42 @@ } } }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database." + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database." + }, + "table": { + "type": "string", + "description": "Name of the table within the schema." + }, + "column": { + "type": "string", + "description": "Name of the column within the table." + } + } + }, "Scope": { "type": "object", "required": [ @@ -6239,6 +6503,115 @@ "description": "Any error or warning with the deployment" } } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "Database": { + "type": "object", + "required": [ + "name", + "schemas" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + }, + "description": "Schemas of the database." + } + } + }, + "Schema": { + "type": "object", + "required": [ + "name", + "tables" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables of the schema." + } + } + }, + "Table": { + "type": "object", + "required": [ + "name", + "columns" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table." + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column." + }, + "data_type": { + "type": "string", + "description": "Data type of the column." + } + } } }, "securitySchemes": { From bf0bc728d7f229fceee76e41874204d08dccd99a Mon Sep 17 00:00:00 2001 From: Nirmay Patel <114509664+Nirmay15@users.noreply.github.com> Date: Mon, 27 Feb 2023 14:11:43 +0530 Subject: [PATCH 004/410] Update openapiSpecv3-2_0.json (#19) * Update openapiSpecv3-2_0.json * Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 45 ++++++++------------------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2d1fb5409..61a91041c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1488,13 +1488,7 @@ "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_TABLE" ], "deprecated": false }, @@ -3642,18 +3636,12 @@ "type": "object", "properties": { "metadata_type": { - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for user group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values", + "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", "type": "string", "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_TABLE" ], "deprecated": false }, @@ -4825,7 +4813,8 @@ "LIVEBOARD", "ANSWER", "LOGICAL_TABLE", - "LOGICAL_COLUMN" + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" ], "description": "Type of metadata (Optional when given identifier is ID)." }, @@ -5527,12 +5516,7 @@ "DISPLAY_NAME", "AUTHOR", "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" + "MODIFIED" ], "description": "Name of the field to apply the sort on." }, @@ -6048,13 +6032,7 @@ "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_TABLE" ], "description": "Type of metadata." } @@ -6539,8 +6517,7 @@ "Database": { "type": "object", "required": [ - "name", - "schemas" + "name" ], "properties": { "name": { @@ -6559,8 +6536,7 @@ "Schema": { "type": "object", "required": [ - "name", - "tables" + "name" ], "properties": { "name": { @@ -6579,8 +6555,7 @@ "Table": { "type": "object", "required": [ - "name", - "columns" + "name" ], "properties": { "name": { From 62de6efec808a98e9fbfa0bf4813ccdb88e39cc2 Mon Sep 17 00:00:00 2001 From: Aditya Mittal <114516106+adityamittal3107@users.noreply.github.com> Date: Mon, 27 Feb 2023 15:26:35 +0530 Subject: [PATCH 005/410] Update APIMATIC-BUILD.json (#21) --- api-playground/APIMATIC-BUILD.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-playground/APIMATIC-BUILD.json b/api-playground/APIMATIC-BUILD.json index 91f699662..d5daf84b0 100644 --- a/api-playground/APIMATIC-BUILD.json +++ b/api-playground/APIMATIC-BUILD.json @@ -20,12 +20,12 @@ "C200": "#FFFFFF", "C300": "#C0C6CF", "C400": "#777e8b", - "C500": "#B0B5C9", - "C600": "#FFFFFF", + "C500": "#1D232F", + "C600": "#858BA5", "C700": "#606E8A", - "C800": "#1d232f", + "C800": "#1D232F", "C900": "#1C2029", - "C1000": "#1D2236" + "C1000": "#1D2236", } }, "fontSource": [], From ea9bb729b90e30eb401a2bed1490d036b5b28ca9 Mon Sep 17 00:00:00 2001 From: Nirmay Patel <114509664+Nirmay15@users.noreply.github.com> Date: Mon, 27 Feb 2023 16:39:30 +0530 Subject: [PATCH 006/410] Update openapiSpecv3-2_0.json (#24) * Update openapiSpecv3-2_0.json * Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 1 + 1 file changed, 1 insertion(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 61a91041c..42bbef319 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1150,6 +1150,7 @@ }, "data_format": { "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", "type": "string", "enum": [ "COMPACT" From f68f91b134a22858a998971c83b5aa9aa450f266 Mon Sep 17 00:00:00 2001 From: abdullasulaiman Date: Fri, 10 Mar 2023 21:15:20 +0530 Subject: [PATCH 007/410] Update overrides.css --- api-playground/static/styles/overrides.css | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/api-playground/static/styles/overrides.css b/api-playground/static/styles/overrides.css index 05e5dd0a7..f25ca0347 100644 --- a/api-playground/static/styles/overrides.css +++ b/api-playground/static/styles/overrides.css @@ -19,4 +19,14 @@ } .branding-container .logo p { color: #eaedf2 -} \ No newline at end of file +} +.since-beta-tag { + padding: 1px 5px; + margin: 0 10px 0 0; + border-radius: 4px; + border: 1px solid #707070; + color: white; + font-size: 0.8em; + font-weight: normal; + background: grey; +} From 3305b86f539be2acbb7cb26b784ed26177b41284 Mon Sep 17 00:00:00 2001 From: Ashish Shubham Date: Wed, 15 Mar 2023 03:05:55 -0700 Subject: [PATCH 008/410] Remove Old SDKs --- DotNet/LICENSE | 28 - DotNet/README.md | 72 - .../Authentication/BearerAuthManager.cs | 62 - .../Authentication/IAuthManager.cs | 28 - .../Authentication/IBearerAuthCredentials.cs | 22 - .../Controllers/AdminController.cs | 513 ------ .../Controllers/BaseController.cs | 137 -- .../Controllers/ConnectionController.cs | 828 --------- .../Controllers/CustomActionsController.cs | 668 ------- .../Controllers/DataController.cs | 431 ----- .../Controllers/DatabaseController.cs | 455 ----- .../Controllers/GroupController.cs | 882 --------- .../Controllers/LogsController.cs | 132 -- .../Controllers/MaterializationController.cs | 118 -- .../Controllers/MetadataController.cs | 1584 ----------------- .../Controllers/OrgController.cs | 441 ----- .../Controllers/ReportController.cs | 229 --- .../Controllers/SecurityController.cs | 533 ------ .../Controllers/SessionController.cs | 254 --- .../Controllers/UserController.cs | 816 --------- .../Environment.cs | 21 - .../Exceptions/ApiException.cs | 78 - .../Exceptions/ErrorResponseException.cs | 41 - .../Http/Client/FileStreamInfo.cs | 42 - .../Http/Client/HttpCallBack.cs | 44 - .../Http/Client/HttpClientConfiguration.cs | 274 --- .../Http/Client/HttpClientWrapper.cs | 671 ------- .../Http/Client/HttpContext.cs | 42 - .../Http/Client/HttpEventHandlers.cs | 26 - .../Http/Client/IHttpClient.cs | 263 --- .../Http/Client/IHttpClientConfiguration.cs | 65 - .../Http/Client/MultipartByteArrayContent.cs | 59 - .../Http/Client/MultipartContent.cs | 97 - .../Http/Client/MultipartFileContent.cs | 92 - .../Configuration/RetryConfiguration.cs | 87 - .../Http/Request/Configuration/RetryOption.cs | 53 - .../Http/Request/HttpRequest.cs | 187 -- .../Http/Response/HttpResponse.cs | 52 - .../Http/Response/HttpStringResponse.cs | 41 - .../IConfiguration.cs | 38 - .../Models/AccessEnum.cs | 33 - .../Models/AccessLevelEnum.cs | 33 - .../Models/AccessLevelInput.cs | 116 -- .../Models/AddTableInput.cs | 116 -- .../Models/AdminsyncPrincipalResponse.cs | 138 -- .../Models/AnswerQueryResponse.cs | 105 -- .../Models/ClientState.cs | 83 - .../Models/ColumnsInput.cs | 94 - .../Models/ConnectionColumn.cs | 105 -- .../Models/ConnectionColumnsShema.cs | 116 -- .../Models/ConnectionDatabaseType.cs | 94 - .../Models/ConnectionResponse.cs | 303 ---- .../Models/ConnectionTableColumnsInput.cs | 105 -- .../Models/ConnectionTableColumnsResponse.cs | 94 - .../Models/ConnectionTableResponse.cs | 94 - .../Models/ConnectionTableSchema.cs | 94 - .../Models/CreateConnectionResponse.cs | 303 ---- .../Models/CreateTableResponse.cs | 94 - .../Models/DependentPermission.cs | 138 -- .../Models/FormatType3Enum.cs | 33 - .../Models/FormatTypeEnum.cs | 33 - .../Models/FromUserNameAndIDInput.cs | 94 - .../Models/GroupNameAndID.cs | 94 - .../Models/GroupNameAndIDInput.cs | 94 - .../Models/GroupPermission.cs | 105 -- .../Models/GroupResponse.cs | 402 ----- .../Models/HomeLiveboardResponse.cs | 116 -- .../Models/ImportPolicyEnum.cs | 39 - .../Models/LiveboardNameAndID.cs | 94 - .../Models/LiveboardQueryResponse.cs | 105 -- .../Models/LogicalTableHeader.cs | 248 --- .../Models/LogsResponse.cs | 94 - .../Models/MetadataTagResponse.cs | 226 --- .../Models/NameAndIdInput.cs | 94 - .../Models/OrgType.cs | 94 - .../Models/OrgsResponse.cs | 138 -- .../Models/OrientationEnum.cs | 33 - .../Models/PdfOptionsInput.cs | 150 -- .../Models/PermissionsTypeSearch.cs | 94 - .../Models/PinboardDetails.cs | 116 -- .../Models/PrincipalSearchResponse.cs | 116 -- .../Models/PrivilegeEnum.cs | 135 -- .../Models/SecuirityDependents.cs | 138 -- .../Models/SecurityPermission.cs | 138 -- .../Models/SecurityPermissionResponse.cs | 149 -- .../Models/SessionLoginResponse.cs | 127 -- .../Models/SortBy1Enum.cs | 93 - .../Models/SortByEnum.cs | 93 - .../Models/SortOrder1Enum.cs | 39 - .../Models/SortOrderEnum.cs | 39 - .../Models/State1Enum.cs | 51 - .../Models/StateEnum.cs | 51 - .../Models/TableColumns.cs | 94 - .../Models/TableInput.cs | 94 - .../Models/TableList.cs | 259 --- .../Models/TagNameAndID.cs | 94 - .../Models/TagNameAndIdInput.cs | 94 - .../Models/ToUserNameAndIDInput.cs | 94 - .../Models/TopicEnum.cs | 27 - .../Models/TsObjectInput.cs | 94 - .../Models/TsObjectSearchInput.cs | 94 - .../Models/TsObjectTypeSerach.cs | 149 -- .../TspublicRestV2AdminAssignauthorRequest.cs | 105 -- .../TspublicRestV2AdminChangeauthorRequest.cs | 109 -- ...icRestV2AdminConfigurationUpdateRequest.cs | 84 - .../TspublicRestV2AdminForcelogoutRequest.cs | 83 - ...TspublicRestV2AdminResetpasswordRequest.cs | 105 -- ...TspublicRestV2AdminSyncprincipalRequest.cs | 141 -- ...TspublicRestV2ConnectionAddtableRequest.cs | 94 - .../TspublicRestV2ConnectionCreateRequest.cs | 116 -- ...ublicRestV2ConnectionRemovetableRequest.cs | 94 - .../TspublicRestV2ConnectionSearchRequest.cs | 182 -- .../TspublicRestV2ConnectionTableRequest.cs | 109 -- ...blicRestV2ConnectionTablecoloumnRequest.cs | 109 -- .../TspublicRestV2ConnectionUpdateRequest.cs | 116 -- ...tV2CustomactionAssociationUpdateRequest.cs | 96 - ...TspublicRestV2CustomactionCreateRequest.cs | 85 - ...TspublicRestV2CustomactionSearchRequest.cs | 84 - ...TspublicRestV2CustomactionUpdateRequest.cs | 96 - .../Models/TspublicRestV2DataAnswerRequest.cs | 136 -- .../TspublicRestV2DataLiveboardRequest.cs | 184 -- .../Models/TspublicRestV2DataSearchRequest.cs | 147 -- ...spublicRestV2DatabaseTableCreateRequest.cs | 94 - ...ublicRestV2DatabaseTableRunqueryRequest.cs | 83 - .../TspublicRestV2GroupAddgroupRequest.cs | 105 -- .../TspublicRestV2GroupAddprivilegeRequest.cs | 105 -- .../TspublicRestV2GroupAdduserRequest.cs | 105 -- .../TspublicRestV2GroupCreateRequest.cs | 171 -- .../TspublicRestV2GroupRemovegroupRequest.cs | 105 -- ...publicRestV2GroupRemoveprivilegeRequest.cs | 105 -- .../TspublicRestV2GroupRemoveuserRequest.cs | 105 -- .../TspublicRestV2GroupSearchRequest.cs | 182 -- .../TspublicRestV2GroupUpdateRequest.cs | 182 -- ...RestV2MaterializationRefreshviewRequest.cs | 83 - ...TspublicRestV2MetadataDependencyRequest.cs | 105 -- ...publicRestV2MetadataDetailSearchRequest.cs | 127 -- ...blicRestV2MetadataFavoriteAssignRequest.cs | 105 -- ...icRestV2MetadataFavoriteUnassignRequest.cs | 105 -- ...publicRestV2MetadataHeaderSearchRequest.cs | 269 --- ...estV2MetadataHomeliveboardAssignRequest.cs | 105 -- ...tV2MetadataHomeliveboardUnassignRequest.cs | 94 - .../TspublicRestV2MetadataTagAssignRequest.cs | 105 -- .../TspublicRestV2MetadataTagCreateRequest.cs | 94 - ...spublicRestV2MetadataTagUnassignRequest.cs | 105 -- .../TspublicRestV2MetadataTagUpdateRequest.cs | 105 -- .../TspublicRestV2MetadataTmlExportRequest.cs | 105 -- .../TspublicRestV2MetadataTmlImportRequest.cs | 111 -- .../Models/TspublicRestV2OrgCreateRequest.cs | 94 - .../Models/TspublicRestV2OrgSearchRequest.cs | 105 -- .../Models/TspublicRestV2OrgUpdateRequest.cs | 116 -- ...ecurityPermissionPrincipalSearchRequest.cs | 94 - ...SecurityPermissionTsobjectSearchRequest.cs | 105 -- ...ublicRestV2SecurityShareTsobjectRequest.cs | 152 -- ...RestV2SecurityShareVisualizationRequest.cs | 149 -- .../TspublicRestV2UserAddgroupRequest.cs | 105 -- .../Models/TspublicRestV2UserAddorgRequest.cs | 94 - ...TspublicRestV2UserChangepasswordRequest.cs | 116 -- .../TspublicRestV2UserRemovegroupRequest.cs | 105 -- .../Models/TspublicRestV2UserSearchRequest.cs | 215 --- .../Models/TspublicRestV2UserUpdateRequest.cs | 193 -- .../Models/Type10Enum.cs | 33 - .../Models/Type13Enum.cs | 45 - .../Models/Type14Enum.cs | 87 - .../Models/Type15Enum.cs | 87 - .../Models/Type16Enum.cs | 45 - .../Models/Type18Enum.cs | 45 - .../Models/Type1Enum.cs | 33 - .../Models/Type2Enum.cs | 45 - .../Models/Type3Enum.cs | 135 -- .../Models/Type4Enum.cs | 75 - .../Models/Type5Enum.cs | 135 -- .../Models/Type6Enum.cs | 75 - .../Models/Type7Enum.cs | 45 - .../Models/Type8Enum.cs | 51 - .../Models/Type9Enum.cs | 51 - .../Models/TypeEnum.cs | 45 - .../Models/UserNameAndID.cs | 94 - .../Models/UserNameAndIDInput.cs | 94 - .../Models/UserResponse.cs | 425 ----- .../Models/Visibility1Enum.cs | 39 - .../Models/Visibility2Enum.cs | 39 - .../Models/VisibilityEnum.cs | 39 - .../Models/VizType.cs | 105 -- .../Server.cs | 16 - .../ThoughtSpotPublicRESTAPI.Standard.csproj | 39 - .../ThoughtSpotPublicRESTAPIClient.cs | 422 ----- .../Utilities/ApiHelper.cs | 654 ------- .../Utilities/ArrayDeserialization.cs | 48 - .../ControllerTestBase.cs | 51 - .../GroupControllerTest.cs | 112 -- .../Helpers/HttpCallBackEventsHandler.cs | 45 - .../Helpers/TestHelper.cs | 539 ------ .../MetadataControllerTest.cs | 146 -- .../OrgControllerTest.cs | 119 -- .../Properties/AssemblyInfo.cs | 32 - .../SecurityControllerTest.cs | 78 - .../SessionControllerTest.cs | 81 - .../ThoughtSpotPublicRESTAPI.Tests.csproj | 29 - .../UserControllerTest.cs | 113 -- DotNet/ThoughtSpotPublicRESTAPI.sln | 27 - DotNet/doc/api-exception.md | 18 - DotNet/doc/client.md | 77 - DotNet/doc/controllers/admin.md | 275 --- DotNet/doc/controllers/connection.md | 516 ------ DotNet/doc/controllers/custom-actions.md | 333 ---- DotNet/doc/controllers/data.md | 213 --- DotNet/doc/controllers/database.md | 221 --- DotNet/doc/controllers/group.md | 469 ----- DotNet/doc/controllers/logs.md | 60 - DotNet/doc/controllers/materialization.md | 49 - DotNet/doc/controllers/metadata.md | 890 --------- DotNet/doc/controllers/org.md | 227 --- DotNet/doc/controllers/report.md | 108 -- DotNet/doc/controllers/security.md | 314 ---- DotNet/doc/controllers/session.md | 125 -- DotNet/doc/controllers/user.md | 421 ----- .../doc/http-client-configuration-builder.md | 19 - DotNet/doc/http-client-configuration.md | 26 - DotNet/doc/http-context.md | 18 - DotNet/doc/http-request.md | 29 - DotNet/doc/http-response.md | 19 - DotNet/doc/http-string-response.md | 19 - DotNet/doc/i-auth-manager.md | 12 - DotNet/doc/models/access-enum.md | 16 - DotNet/doc/models/access-level-enum.md | 14 - DotNet/doc/models/access-level-input.md | 27 - DotNet/doc/models/add-table-input.md | 32 - .../models/adminsync-principal-response.md | 31 - DotNet/doc/models/answer-query-response.md | 25 - DotNet/doc/models/client-state.md | 21 - DotNet/doc/models/columns-input.md | 23 - DotNet/doc/models/connection-column.md | 25 - DotNet/doc/models/connection-columns-shema.md | 27 - DotNet/doc/models/connection-database-type.md | 23 - DotNet/doc/models/connection-response.md | 61 - .../models/connection-table-columns-input.md | 25 - .../connection-table-columns-response.md | 23 - .../doc/models/connection-table-response.md | 23 - DotNet/doc/models/connection-table-schema.md | 23 - .../doc/models/create-connection-response.md | 61 - DotNet/doc/models/create-table-response.md | 23 - DotNet/doc/models/dependent-permission.md | 31 - DotNet/doc/models/error-response-exception.md | 21 - DotNet/doc/models/format-type-3-enum.md | 16 - DotNet/doc/models/format-type-enum.md | 20 - .../doc/models/from-user-name-and-id-input.md | 29 - DotNet/doc/models/group-name-and-id-input.md | 23 - DotNet/doc/models/group-name-and-id.md | 23 - DotNet/doc/models/group-permission.md | 25 - DotNet/doc/models/group-response.md | 79 - DotNet/doc/models/home-liveboard-response.md | 27 - DotNet/doc/models/import-policy-enum.md | 17 - DotNet/doc/models/liveboard-name-and-id.md | 23 - DotNet/doc/models/liveboard-query-response.md | 25 - DotNet/doc/models/logical-table-header.md | 51 - DotNet/doc/models/logs-response.md | 23 - DotNet/doc/models/metadata-tag-response.md | 47 - DotNet/doc/models/name-and-id-input.md | 23 - DotNet/doc/models/org-type.md | 23 - DotNet/doc/models/orgs-response.md | 31 - DotNet/doc/models/orientation-enum.md | 16 - DotNet/doc/models/pdf-options-input.md | 33 - DotNet/doc/models/permissions-type-search.md | 23 - DotNet/doc/models/pinboard-details.md | 27 - .../doc/models/principal-search-response.md | 27 - DotNet/doc/models/privilege-enum.md | 31 - DotNet/doc/models/secuirity-dependents.md | 31 - .../models/security-permission-response.md | 33 - DotNet/doc/models/security-permission.md | 31 - DotNet/doc/models/session-login-response.md | 31 - DotNet/doc/models/sort-by-1-enum.md | 26 - DotNet/doc/models/sort-by-enum.md | 26 - DotNet/doc/models/sort-order-1-enum.md | 17 - DotNet/doc/models/sort-order-enum.md | 17 - DotNet/doc/models/state-1-enum.md | 19 - DotNet/doc/models/state-enum.md | 17 - DotNet/doc/models/table-columns.md | 23 - DotNet/doc/models/table-input.md | 23 - DotNet/doc/models/table-list.md | 53 - DotNet/doc/models/tag-name-and-id-input.md | 23 - DotNet/doc/models/tag-name-and-id.md | 23 - .../doc/models/to-user-name-and-id-input.md | 25 - DotNet/doc/models/topic-enum.md | 13 - DotNet/doc/models/ts-object-input.md | 23 - DotNet/doc/models/ts-object-search-input.md | 25 - DotNet/doc/models/ts-object-type-serach.md | 33 - ...blic-rest-v2-admin-assignauthor-request.md | 29 - ...blic-rest-v2-admin-changeauthor-request.md | 35 - ...t-v2-admin-configuration-update-request.md | 21 - ...ublic-rest-v2-admin-forcelogout-request.md | 21 - ...lic-rest-v2-admin-resetpassword-request.md | 25 - ...lic-rest-v2-admin-syncprincipal-request.md | 40 - ...lic-rest-v2-connection-addtable-request.md | 35 - ...ublic-rest-v2-connection-create-request.md | 27 - ...-rest-v2-connection-removetable-request.md | 28 - ...ublic-rest-v2-connection-search-request.md | 39 - ...public-rest-v2-connection-table-request.md | 25 - ...rest-v2-connection-tablecoloumn-request.md | 31 - ...ublic-rest-v2-connection-update-request.md | 27 - ...customaction-association-update-request.md | 23 - ...lic-rest-v2-customaction-create-request.md | 21 - ...lic-rest-v2-customaction-search-request.md | 21 - ...lic-rest-v2-customaction-update-request.md | 23 - .../tspublic-rest-v2-data-answer-request.md | 29 - ...tspublic-rest-v2-data-liveboard-request.md | 37 - .../tspublic-rest-v2-data-search-request.md | 31 - ...c-rest-v2-database-table-create-request.md | 23 - ...rest-v2-database-table-runquery-request.md | 23 - ...tspublic-rest-v2-group-addgroup-request.md | 38 - ...blic-rest-v2-group-addprivilege-request.md | 25 - .../tspublic-rest-v2-group-adduser-request.md | 34 - .../tspublic-rest-v2-group-create-request.md | 37 - ...ublic-rest-v2-group-removegroup-request.md | 38 - ...c-rest-v2-group-removeprivilege-request.md | 25 - ...public-rest-v2-group-removeuser-request.md | 34 - .../tspublic-rest-v2-group-search-request.md | 39 - .../tspublic-rest-v2-group-update-request.md | 39 - ...-v2-materialization-refreshview-request.md | 21 - ...lic-rest-v2-metadata-dependency-request.md | 27 - ...-rest-v2-metadata-detail-search-request.md | 31 - ...est-v2-metadata-favorite-assign-request.md | 34 - ...t-v2-metadata-favorite-unassign-request.md | 34 - ...-rest-v2-metadata-header-search-request.md | 53 - ...2-metadata-homeliveboard-assign-request.md | 25 - ...metadata-homeliveboard-unassign-request.md | 23 - ...lic-rest-v2-metadata-tag-assign-request.md | 34 - ...lic-rest-v2-metadata-tag-create-request.md | 23 - ...c-rest-v2-metadata-tag-unassign-request.md | 34 - ...lic-rest-v2-metadata-tag-update-request.md | 25 - ...lic-rest-v2-metadata-tml-export-request.md | 27 - ...lic-rest-v2-metadata-tml-import-request.md | 27 - .../tspublic-rest-v2-org-create-request.md | 23 - .../tspublic-rest-v2-org-search-request.md | 25 - .../tspublic-rest-v2-org-update-request.md | 27 - ...ity-permission-principal-search-request.md | 32 - ...rity-permission-tsobject-search-request.md | 39 - ...rest-v2-security-share-tsobject-request.md | 35 - ...v2-security-share-visualization-request.md | 37 - .../tspublic-rest-v2-user-addgroup-request.md | 38 - .../tspublic-rest-v2-user-addorg-request.md | 32 - ...lic-rest-v2-user-changepassword-request.md | 27 - ...public-rest-v2-user-removegroup-request.md | 38 - .../tspublic-rest-v2-user-search-request.md | 45 - .../tspublic-rest-v2-user-update-request.md | 41 - DotNet/doc/models/type-1-enum.md | 16 - DotNet/doc/models/type-10-enum.md | 16 - DotNet/doc/models/type-13-enum.md | 18 - DotNet/doc/models/type-14-enum.md | 25 - DotNet/doc/models/type-15-enum.md | 25 - DotNet/doc/models/type-16-enum.md | 16 - DotNet/doc/models/type-18-enum.md | 18 - DotNet/doc/models/type-2-enum.md | 18 - DotNet/doc/models/type-3-enum.md | 33 - DotNet/doc/models/type-4-enum.md | 21 - DotNet/doc/models/type-5-enum.md | 31 - DotNet/doc/models/type-6-enum.md | 23 - DotNet/doc/models/type-7-enum.md | 16 - DotNet/doc/models/type-8-enum.md | 17 - DotNet/doc/models/type-9-enum.md | 19 - DotNet/doc/models/type-enum.md | 18 - DotNet/doc/models/user-name-and-id-input.md | 23 - DotNet/doc/models/user-name-and-id.md | 23 - DotNet/doc/models/user-response.md | 83 - DotNet/doc/models/visibility-1-enum.md | 17 - DotNet/doc/models/visibility-2-enum.md | 17 - DotNet/doc/models/visibility-enum.md | 15 - DotNet/doc/models/viz-type.md | 25 - DotNet/doc/utility-classes.md | 28 - Java/.classpath | 27 - Java/.project | 28 - Java/.settings/.org.eclipse.jdt.core.prefs | 5 - Java/.settings/.org.eclipse.m2e.core.prefs | 4 - Java/LICENSE | 28 - Java/README.md | 89 - Java/doc/api-exception.md | 19 - Java/doc/client.md | 61 - Java/doc/configuration-interface.md | 16 - Java/doc/controllers/admin.md | 281 --- Java/doc/controllers/connection.md | 526 ------ Java/doc/controllers/custom-actions.md | 341 ---- Java/doc/controllers/data.md | 218 --- Java/doc/controllers/database.md | 226 --- Java/doc/controllers/group.md | 480 ----- Java/doc/controllers/logs.md | 61 - Java/doc/controllers/materialization.md | 50 - Java/doc/controllers/metadata.md | 910 ---------- Java/doc/controllers/org.md | 232 --- Java/doc/controllers/report.md | 110 -- Java/doc/controllers/security.md | 320 ---- Java/doc/controllers/session.md | 127 -- Java/doc/controllers/user.md | 430 ----- Java/doc/headers.md | 31 - Java/doc/http-body-request.md | 17 - Java/doc/http-callback-interface.md | 12 - Java/doc/http-client-configuration-builder.md | 28 - Java/doc/http-client-configuration.md | 23 - Java/doc/http-context.md | 18 - Java/doc/http-request.md | 22 - Java/doc/http-response.md | 19 - Java/doc/http-string-response.md | 19 - Java/doc/models/access-enum.md | 16 - Java/doc/models/access-level-enum.md | 14 - Java/doc/models/access-level-input.md | 27 - Java/doc/models/add-table-input.md | 32 - .../models/adminsync-principal-response.md | 31 - Java/doc/models/answer-query-response.md | 25 - Java/doc/models/client-state.md | 21 - Java/doc/models/columns-input.md | 23 - Java/doc/models/connection-column.md | 25 - Java/doc/models/connection-columns-shema.md | 27 - Java/doc/models/connection-database-type.md | 23 - Java/doc/models/connection-response.md | 61 - .../models/connection-table-columns-input.md | 25 - .../connection-table-columns-response.md | 23 - Java/doc/models/connection-table-response.md | 23 - Java/doc/models/connection-table-schema.md | 23 - Java/doc/models/create-connection-response.md | 61 - Java/doc/models/create-table-response.md | 23 - Java/doc/models/dependent-permission.md | 31 - Java/doc/models/error-response-exception.md | 21 - Java/doc/models/format-type-3-enum.md | 16 - Java/doc/models/format-type-enum.md | 20 - .../doc/models/from-user-name-and-id-input.md | 29 - Java/doc/models/group-name-and-id-input.md | 23 - Java/doc/models/group-name-and-id.md | 23 - Java/doc/models/group-permission.md | 25 - Java/doc/models/group-response.md | 79 - Java/doc/models/home-liveboard-response.md | 27 - Java/doc/models/import-policy-enum.md | 17 - Java/doc/models/liveboard-name-and-id.md | 23 - Java/doc/models/liveboard-query-response.md | 25 - Java/doc/models/logical-table-header.md | 51 - Java/doc/models/logs-response.md | 23 - Java/doc/models/metadata-tag-response.md | 47 - Java/doc/models/name-and-id-input.md | 23 - Java/doc/models/org-type.md | 23 - Java/doc/models/orgs-response.md | 31 - Java/doc/models/orientation-enum.md | 16 - Java/doc/models/pdf-options-input.md | 33 - Java/doc/models/permissions-type-search.md | 23 - Java/doc/models/pinboard-details.md | 27 - Java/doc/models/principal-search-response.md | 27 - Java/doc/models/privilege-enum.md | 31 - Java/doc/models/secuirity-dependents.md | 31 - .../models/security-permission-response.md | 33 - Java/doc/models/security-permission.md | 31 - Java/doc/models/session-login-response.md | 31 - Java/doc/models/sort-by-1-enum.md | 26 - Java/doc/models/sort-by-enum.md | 26 - Java/doc/models/sort-order-1-enum.md | 17 - Java/doc/models/sort-order-enum.md | 17 - Java/doc/models/state-1-enum.md | 19 - Java/doc/models/state-enum.md | 17 - Java/doc/models/table-columns.md | 23 - Java/doc/models/table-input.md | 23 - Java/doc/models/table-list.md | 53 - Java/doc/models/tag-name-and-id-input.md | 23 - Java/doc/models/tag-name-and-id.md | 23 - Java/doc/models/to-user-name-and-id-input.md | 25 - Java/doc/models/topic-enum.md | 13 - Java/doc/models/ts-object-input.md | 23 - Java/doc/models/ts-object-search-input.md | 25 - Java/doc/models/ts-object-type-serach.md | 33 - ...blic-rest-v2-admin-assignauthor-request.md | 29 - ...blic-rest-v2-admin-changeauthor-request.md | 35 - ...t-v2-admin-configuration-update-request.md | 21 - ...ublic-rest-v2-admin-forcelogout-request.md | 21 - ...lic-rest-v2-admin-resetpassword-request.md | 25 - ...lic-rest-v2-admin-syncprincipal-request.md | 40 - ...lic-rest-v2-connection-addtable-request.md | 35 - ...ublic-rest-v2-connection-create-request.md | 27 - ...-rest-v2-connection-removetable-request.md | 28 - ...ublic-rest-v2-connection-search-request.md | 39 - ...public-rest-v2-connection-table-request.md | 25 - ...rest-v2-connection-tablecoloumn-request.md | 31 - ...ublic-rest-v2-connection-update-request.md | 27 - ...customaction-association-update-request.md | 23 - ...lic-rest-v2-customaction-create-request.md | 21 - ...lic-rest-v2-customaction-search-request.md | 21 - ...lic-rest-v2-customaction-update-request.md | 23 - .../tspublic-rest-v2-data-answer-request.md | 29 - ...tspublic-rest-v2-data-liveboard-request.md | 37 - .../tspublic-rest-v2-data-search-request.md | 31 - ...c-rest-v2-database-table-create-request.md | 23 - ...rest-v2-database-table-runquery-request.md | 23 - ...tspublic-rest-v2-group-addgroup-request.md | 38 - ...blic-rest-v2-group-addprivilege-request.md | 25 - .../tspublic-rest-v2-group-adduser-request.md | 34 - .../tspublic-rest-v2-group-create-request.md | 37 - ...ublic-rest-v2-group-removegroup-request.md | 38 - ...c-rest-v2-group-removeprivilege-request.md | 25 - ...public-rest-v2-group-removeuser-request.md | 34 - .../tspublic-rest-v2-group-search-request.md | 39 - .../tspublic-rest-v2-group-update-request.md | 39 - ...-v2-materialization-refreshview-request.md | 21 - ...lic-rest-v2-metadata-dependency-request.md | 27 - ...-rest-v2-metadata-detail-search-request.md | 31 - ...est-v2-metadata-favorite-assign-request.md | 34 - ...t-v2-metadata-favorite-unassign-request.md | 34 - ...-rest-v2-metadata-header-search-request.md | 53 - ...2-metadata-homeliveboard-assign-request.md | 25 - ...metadata-homeliveboard-unassign-request.md | 23 - ...lic-rest-v2-metadata-tag-assign-request.md | 34 - ...lic-rest-v2-metadata-tag-create-request.md | 23 - ...c-rest-v2-metadata-tag-unassign-request.md | 34 - ...lic-rest-v2-metadata-tag-update-request.md | 25 - ...lic-rest-v2-metadata-tml-export-request.md | 27 - ...lic-rest-v2-metadata-tml-import-request.md | 27 - .../tspublic-rest-v2-org-create-request.md | 23 - .../tspublic-rest-v2-org-search-request.md | 25 - .../tspublic-rest-v2-org-update-request.md | 27 - ...ity-permission-principal-search-request.md | 32 - ...rity-permission-tsobject-search-request.md | 39 - ...rest-v2-security-share-tsobject-request.md | 35 - ...v2-security-share-visualization-request.md | 37 - .../tspublic-rest-v2-user-addgroup-request.md | 38 - .../tspublic-rest-v2-user-addorg-request.md | 32 - ...lic-rest-v2-user-changepassword-request.md | 27 - ...public-rest-v2-user-removegroup-request.md | 38 - .../tspublic-rest-v2-user-search-request.md | 45 - .../tspublic-rest-v2-user-update-request.md | 41 - Java/doc/models/type-1-enum.md | 16 - Java/doc/models/type-10-enum.md | 16 - Java/doc/models/type-13-enum.md | 18 - Java/doc/models/type-14-enum.md | 25 - Java/doc/models/type-15-enum.md | 25 - Java/doc/models/type-16-enum.md | 16 - Java/doc/models/type-18-enum.md | 18 - Java/doc/models/type-2-enum.md | 18 - Java/doc/models/type-3-enum.md | 33 - Java/doc/models/type-4-enum.md | 21 - Java/doc/models/type-5-enum.md | 31 - Java/doc/models/type-6-enum.md | 23 - Java/doc/models/type-7-enum.md | 16 - Java/doc/models/type-8-enum.md | 17 - Java/doc/models/type-9-enum.md | 19 - Java/doc/models/type-enum.md | 18 - Java/doc/models/user-name-and-id-input.md | 23 - Java/doc/models/user-name-and-id.md | 23 - Java/doc/models/user-response.md | 83 - Java/doc/models/visibility-1-enum.md | 17 - Java/doc/models/visibility-2-enum.md | 17 - Java/doc/models/visibility-enum.md | 15 - Java/doc/models/viz-type.md | 25 - Java/doc/utility-classes.md | 42 - Java/pom.xml | 119 -- Java/src/main/java/localhost/ApiHelper.java | 16 - .../java/localhost/BearerAuthCredentials.java | 26 - .../java/localhost/BearerAuthManager.java | 55 - .../localhost/CompatibilityFactoryImpl.java | 88 - .../main/java/localhost/Configuration.java | 58 - Java/src/main/java/localhost/Environment.java | 71 - Java/src/main/java/localhost/Server.java | 71 - .../ThoughtSpotPublicRESTAPIClient.java | 495 ------ .../controllers/AdminController.java | 405 ----- .../localhost/controllers/BaseController.java | 57 - .../controllers/ConnectionController.java | 643 ------- .../controllers/CustomActionsController.java | 510 ------ .../localhost/controllers/DataController.java | 339 ---- .../controllers/DatabaseController.java | 346 ---- .../controllers/GroupController.java | 728 -------- .../localhost/controllers/LogsController.java | 125 -- .../MaterializationController.java | 95 - .../controllers/MetadataController.java | 1284 ------------- .../localhost/controllers/OrgController.java | 355 ---- .../controllers/ReportController.java | 238 --- .../controllers/SecurityController.java | 456 ----- .../controllers/SessionController.java | 240 --- .../localhost/controllers/UserController.java | 712 -------- .../localhost/exceptions/ApiException.java | 38 - .../exceptions/ErrorResponseException.java | 47 - .../src/main/java/localhost/http/Headers.java | 243 --- .../localhost/http/client/HttpCallback.java | 16 - .../http/client/HttpClientConfiguration.java | 317 ---- .../localhost/http/client/HttpContext.java | 54 - .../ReadonlyHttpClientConfiguration.java | 84 - .../http/request/HttpBodyRequest.java | 40 - .../localhost/http/request/HttpMethod.java | 21 - .../localhost/http/request/HttpRequest.java | 152 -- .../localhost/http/response/HttpResponse.java | 116 -- .../http/response/HttpStringResponse.java | 37 - .../java/localhost/models/AccessEnum.java | 75 - .../localhost/models/AccessLevelEnum.java | 75 - .../localhost/models/AccessLevelInput.java | 216 --- .../java/localhost/models/AddTableInput.java | 224 --- .../models/AdminsyncPrincipalResponse.java | 291 --- .../localhost/models/AnswerQueryResponse.java | 177 -- .../java/localhost/models/ClientState.java | 102 -- .../java/localhost/models/ColumnsInput.java | 148 -- .../localhost/models/ConnectionColumn.java | 178 -- .../models/ConnectionColumnsShema.java | 215 --- .../models/ConnectionDatabaseType.java | 140 -- .../localhost/models/ConnectionResponse.java | 841 --------- .../models/ConnectionTableColumnsInput.java | 186 -- .../ConnectionTableColumnsResponse.java | 140 -- .../models/ConnectionTableResponse.java | 140 -- .../models/ConnectionTableSchema.java | 140 -- .../models/CreateConnectionResponse.java | 841 --------- .../localhost/models/CreateTableResponse.java | 136 -- .../localhost/models/DependentPermission.java | 295 --- .../localhost/models/FormatType3Enum.java | 75 - .../java/localhost/models/FormatTypeEnum.java | 75 - .../models/FromUserNameAndIDInput.java | 139 -- .../java/localhost/models/GroupNameAndID.java | 139 -- .../localhost/models/GroupNameAndIDInput.java | 139 -- .../localhost/models/GroupPermission.java | 177 -- .../java/localhost/models/GroupResponse.java | 1173 ------------ .../models/HomeLiveboardResponse.java | 214 --- .../localhost/models/ImportPolicyEnum.java | 79 - .../localhost/models/LiveboardNameAndID.java | 139 -- .../models/LiveboardQueryResponse.java | 177 -- .../localhost/models/LogicalTableHeader.java | 632 ------- .../java/localhost/models/LogsResponse.java | 143 -- .../localhost/models/MetadataTagResponse.java | 576 ------ .../java/localhost/models/NameAndIdInput.java | 139 -- .../main/java/localhost/models/OrgType.java | 139 -- .../java/localhost/models/OrgsResponse.java | 290 --- .../localhost/models/OrientationEnum.java | 75 - .../localhost/models/PdfOptionsInput.java | 332 ---- .../models/PermissionsTypeSearch.java | 140 -- .../localhost/models/PinboardDetails.java | 214 --- .../models/PrincipalSearchResponse.java | 215 --- .../java/localhost/models/PrivilegeEnum.java | 143 -- .../localhost/models/SecuirityDependents.java | 285 --- .../localhost/models/SecurityPermission.java | 295 --- .../models/SecurityPermissionResponse.java | 326 ---- .../models/SessionLoginResponse.java | 253 --- .../java/localhost/models/SortBy1Enum.java | 115 -- .../java/localhost/models/SortByEnum.java | 115 -- .../java/localhost/models/SortOrder1Enum.java | 79 - .../java/localhost/models/SortOrderEnum.java | 79 - .../java/localhost/models/State1Enum.java | 87 - .../main/java/localhost/models/StateEnum.java | 87 - .../java/localhost/models/TableColumns.java | 139 -- .../java/localhost/models/TableInput.java | 139 -- .../main/java/localhost/models/TableList.java | 691 ------- .../java/localhost/models/TagNameAndID.java | 139 -- .../localhost/models/TagNameAndIdInput.java | 139 -- .../models/ToUserNameAndIDInput.java | 139 -- .../main/java/localhost/models/TopicEnum.java | 71 - .../java/localhost/models/TsObjectInput.java | 148 -- .../localhost/models/TsObjectSearchInput.java | 149 -- .../localhost/models/TsObjectTypeSerach.java | 330 ---- ...spublicRestV2AdminAssignauthorRequest.java | 188 -- ...spublicRestV2AdminChangeauthorRequest.java | 200 --- ...RestV2AdminConfigurationUpdateRequest.java | 106 -- ...TspublicRestV2AdminForcelogoutRequest.java | 105 -- ...publicRestV2AdminResetpasswordRequest.java | 187 -- ...publicRestV2AdminSyncprincipalRequest.java | 255 --- ...publicRestV2ConnectionAddtableRequest.java | 149 -- ...TspublicRestV2ConnectionCreateRequest.java | 227 --- ...licRestV2ConnectionRemovetableRequest.java | 153 -- ...TspublicRestV2ConnectionSearchRequest.java | 472 ----- .../TspublicRestV2ConnectionTableRequest.java | 198 --- ...icRestV2ConnectionTablecoloumnRequest.java | 199 --- ...TspublicRestV2ConnectionUpdateRequest.java | 226 --- ...2CustomactionAssociationUpdateRequest.java | 156 -- ...publicRestV2CustomactionCreateRequest.java | 117 -- ...publicRestV2CustomactionSearchRequest.java | 107 -- ...publicRestV2CustomactionUpdateRequest.java | 155 -- .../TspublicRestV2DataAnswerRequest.java | 285 --- .../TspublicRestV2DataLiveboardRequest.java | 443 ----- .../TspublicRestV2DataSearchRequest.java | 322 ---- ...ublicRestV2DatabaseTableCreateRequest.java | 146 -- ...licRestV2DatabaseTableRunqueryRequest.java | 123 -- .../TspublicRestV2GroupAddgroupRequest.java | 188 -- ...spublicRestV2GroupAddprivilegeRequest.java | 180 -- .../TspublicRestV2GroupAdduserRequest.java | 188 -- .../TspublicRestV2GroupCreateRequest.java | 423 ----- ...TspublicRestV2GroupRemovegroupRequest.java | 188 -- ...blicRestV2GroupRemoveprivilegeRequest.java | 181 -- .../TspublicRestV2GroupRemoveuserRequest.java | 188 -- .../TspublicRestV2GroupSearchRequest.java | 446 ----- .../TspublicRestV2GroupUpdateRequest.java | 448 ----- ...stV2MaterializationRefreshviewRequest.java | 112 -- ...publicRestV2MetadataDependencyRequest.java | 193 -- ...blicRestV2MetadataDetailSearchRequest.java | 273 --- ...icRestV2MetadataFavoriteAssignRequest.java | 189 -- ...RestV2MetadataFavoriteUnassignRequest.java | 189 -- ...blicRestV2MetadataHeaderSearchRequest.java | 759 -------- ...tV2MetadataHomeliveboardAssignRequest.java | 179 -- ...2MetadataHomeliveboardUnassignRequest.java | 141 -- ...spublicRestV2MetadataTagAssignRequest.java | 188 -- ...spublicRestV2MetadataTagCreateRequest.java | 150 -- ...ublicRestV2MetadataTagUnassignRequest.java | 189 -- ...spublicRestV2MetadataTagUpdateRequest.java | 177 -- ...spublicRestV2MetadataTmlExportRequest.java | 196 -- ...spublicRestV2MetadataTmlImportRequest.java | 226 --- .../TspublicRestV2OrgCreateRequest.java | 150 -- .../TspublicRestV2OrgSearchRequest.java | 178 -- .../TspublicRestV2OrgUpdateRequest.java | 214 --- ...urityPermissionPrincipalSearchRequest.java | 154 -- ...curityPermissionTsobjectSearchRequest.java | 193 -- ...licRestV2SecurityShareTsobjectRequest.java | 355 ---- ...stV2SecurityShareVisualizationRequest.java | 343 ---- .../TspublicRestV2UserAddgroupRequest.java | 188 -- .../TspublicRestV2UserAddorgRequest.java | 152 -- ...publicRestV2UserChangepasswordRequest.java | 225 --- .../TspublicRestV2UserRemovegroupRequest.java | 188 -- .../TspublicRestV2UserSearchRequest.java | 568 ------ .../TspublicRestV2UserUpdateRequest.java | 498 ------ .../java/localhost/models/Type10Enum.java | 75 - .../java/localhost/models/Type13Enum.java | 83 - .../java/localhost/models/Type14Enum.java | 111 -- .../java/localhost/models/Type15Enum.java | 111 -- .../java/localhost/models/Type16Enum.java | 83 - .../java/localhost/models/Type18Enum.java | 83 - .../main/java/localhost/models/Type1Enum.java | 75 - .../main/java/localhost/models/Type2Enum.java | 83 - .../main/java/localhost/models/Type3Enum.java | 143 -- .../main/java/localhost/models/Type4Enum.java | 103 -- .../main/java/localhost/models/Type5Enum.java | 143 -- .../main/java/localhost/models/Type6Enum.java | 103 -- .../main/java/localhost/models/Type7Enum.java | 83 - .../main/java/localhost/models/Type8Enum.java | 87 - .../main/java/localhost/models/Type9Enum.java | 87 - .../main/java/localhost/models/TypeEnum.java | 83 - .../java/localhost/models/UserNameAndID.java | 139 -- .../localhost/models/UserNameAndIDInput.java | 139 -- .../java/localhost/models/UserResponse.java | 1254 ------------- .../localhost/models/Visibility1Enum.java | 79 - .../localhost/models/Visibility2Enum.java | 79 - .../java/localhost/models/VisibilityEnum.java | 79 - .../main/java/localhost/models/VizType.java | 176 -- .../java/localhost/utilities/FileWrapper.java | 56 - .../controllers/BaseControllerTest.java | 97 - .../controllers/GroupControllerTest.java | 120 -- .../controllers/MetadataControllerTest.java | 155 -- .../controllers/OrgControllerTest.java | 122 -- .../controllers/SecurityControllerTest.java | 87 - .../controllers/SessionControllerTest.java | 89 - .../controllers/UserControllerTest.java | 122 -- .../testing/HttpCallbackCatcher.java | 70 - Python/.gitignore | 1 - Python/LICENSE | 28 - Python/MANIFEST.in | 2 - Python/README.md | 86 - Python/doc/client.md | 55 - Python/doc/controllers/admin.md | 248 --- Python/doc/controllers/connection.md | 460 ----- Python/doc/controllers/custom-actions.md | 301 ---- Python/doc/controllers/data.md | 193 -- Python/doc/controllers/database.md | 199 --- Python/doc/controllers/group.md | 421 ----- Python/doc/controllers/logs.md | 56 - Python/doc/controllers/materialization.md | 45 - Python/doc/controllers/metadata.md | 788 -------- Python/doc/controllers/org.md | 207 --- Python/doc/controllers/report.md | 100 -- Python/doc/controllers/security.md | 276 --- Python/doc/controllers/session.md | 117 -- Python/doc/controllers/user.md | 382 ---- Python/doc/http-request.md | 16 - Python/doc/http-response.md | 15 - Python/doc/models/access-enum.md | 16 - Python/doc/models/access-level-enum.md | 14 - Python/doc/models/access-level-input.md | 27 - Python/doc/models/add-table-input.md | 32 - .../models/adminsync-principal-response.md | 31 - Python/doc/models/answer-query-response.md | 25 - Python/doc/models/client-state.md | 21 - Python/doc/models/columns-input.md | 23 - Python/doc/models/connection-column.md | 25 - Python/doc/models/connection-columns-shema.md | 27 - Python/doc/models/connection-database-type.md | 23 - Python/doc/models/connection-response.md | 61 - .../models/connection-table-columns-input.md | 25 - .../connection-table-columns-response.md | 23 - .../doc/models/connection-table-response.md | 23 - Python/doc/models/connection-table-schema.md | 23 - .../doc/models/create-connection-response.md | 61 - Python/doc/models/create-table-response.md | 23 - Python/doc/models/dependent-permission.md | 31 - Python/doc/models/error-response-exception.md | 21 - Python/doc/models/format-type-3-enum.md | 16 - Python/doc/models/format-type-enum.md | 20 - .../doc/models/from-user-name-and-id-input.md | 29 - Python/doc/models/group-name-and-id-input.md | 23 - Python/doc/models/group-name-and-id.md | 23 - Python/doc/models/group-permission.md | 25 - Python/doc/models/group-response.md | 79 - Python/doc/models/home-liveboard-response.md | 27 - Python/doc/models/import-policy-enum.md | 17 - Python/doc/models/liveboard-name-and-id.md | 23 - Python/doc/models/liveboard-query-response.md | 25 - Python/doc/models/logical-table-header.md | 51 - Python/doc/models/logs-response.md | 23 - Python/doc/models/metadata-tag-response.md | 47 - Python/doc/models/name-and-id-input.md | 23 - Python/doc/models/org-type.md | 23 - Python/doc/models/orgs-response.md | 31 - Python/doc/models/orientation-enum.md | 16 - Python/doc/models/pdf-options-input.md | 33 - Python/doc/models/permissions-type-search.md | 23 - Python/doc/models/pinboard-details.md | 27 - .../doc/models/principal-search-response.md | 27 - Python/doc/models/privilege-enum.md | 31 - Python/doc/models/secuirity-dependents.md | 31 - .../models/security-permission-response.md | 33 - Python/doc/models/security-permission.md | 31 - Python/doc/models/session-login-response.md | 31 - Python/doc/models/sort-by-1-enum.md | 26 - Python/doc/models/sort-by-enum.md | 26 - Python/doc/models/sort-order-1-enum.md | 17 - Python/doc/models/sort-order-enum.md | 17 - Python/doc/models/state-1-enum.md | 19 - Python/doc/models/state-enum.md | 17 - Python/doc/models/table-columns.md | 23 - Python/doc/models/table-input.md | 23 - Python/doc/models/table-list.md | 53 - Python/doc/models/tag-name-and-id-input.md | 23 - Python/doc/models/tag-name-and-id.md | 23 - .../doc/models/to-user-name-and-id-input.md | 25 - Python/doc/models/topic-enum.md | 13 - Python/doc/models/ts-object-input.md | 23 - Python/doc/models/ts-object-search-input.md | 25 - Python/doc/models/ts-object-type-serach.md | 33 - ...blic-rest-v2-admin-assignauthor-request.md | 29 - ...blic-rest-v2-admin-changeauthor-request.md | 35 - ...t-v2-admin-configuration-update-request.md | 21 - ...ublic-rest-v2-admin-forcelogout-request.md | 21 - ...lic-rest-v2-admin-resetpassword-request.md | 25 - ...lic-rest-v2-admin-syncprincipal-request.md | 40 - ...lic-rest-v2-connection-addtable-request.md | 35 - ...ublic-rest-v2-connection-create-request.md | 27 - ...-rest-v2-connection-removetable-request.md | 28 - ...ublic-rest-v2-connection-search-request.md | 39 - ...public-rest-v2-connection-table-request.md | 25 - ...rest-v2-connection-tablecoloumn-request.md | 31 - ...ublic-rest-v2-connection-update-request.md | 27 - ...customaction-association-update-request.md | 23 - ...lic-rest-v2-customaction-create-request.md | 21 - ...lic-rest-v2-customaction-search-request.md | 21 - ...lic-rest-v2-customaction-update-request.md | 23 - .../tspublic-rest-v2-data-answer-request.md | 29 - ...tspublic-rest-v2-data-liveboard-request.md | 37 - .../tspublic-rest-v2-data-search-request.md | 31 - ...c-rest-v2-database-table-create-request.md | 23 - ...rest-v2-database-table-runquery-request.md | 23 - ...tspublic-rest-v2-group-addgroup-request.md | 38 - ...blic-rest-v2-group-addprivilege-request.md | 25 - .../tspublic-rest-v2-group-adduser-request.md | 34 - .../tspublic-rest-v2-group-create-request.md | 37 - ...ublic-rest-v2-group-removegroup-request.md | 38 - ...c-rest-v2-group-removeprivilege-request.md | 25 - ...public-rest-v2-group-removeuser-request.md | 34 - .../tspublic-rest-v2-group-search-request.md | 39 - .../tspublic-rest-v2-group-update-request.md | 39 - ...-v2-materialization-refreshview-request.md | 21 - ...lic-rest-v2-metadata-dependency-request.md | 27 - ...-rest-v2-metadata-detail-search-request.md | 31 - ...est-v2-metadata-favorite-assign-request.md | 34 - ...t-v2-metadata-favorite-unassign-request.md | 34 - ...-rest-v2-metadata-header-search-request.md | 53 - ...2-metadata-homeliveboard-assign-request.md | 25 - ...metadata-homeliveboard-unassign-request.md | 23 - ...lic-rest-v2-metadata-tag-assign-request.md | 34 - ...lic-rest-v2-metadata-tag-create-request.md | 23 - ...c-rest-v2-metadata-tag-unassign-request.md | 34 - ...lic-rest-v2-metadata-tag-update-request.md | 25 - ...lic-rest-v2-metadata-tml-export-request.md | 27 - ...lic-rest-v2-metadata-tml-import-request.md | 27 - .../tspublic-rest-v2-org-create-request.md | 23 - .../tspublic-rest-v2-org-search-request.md | 25 - .../tspublic-rest-v2-org-update-request.md | 27 - ...ity-permission-principal-search-request.md | 32 - ...rity-permission-tsobject-search-request.md | 39 - ...rest-v2-security-share-tsobject-request.md | 35 - ...v2-security-share-visualization-request.md | 37 - .../tspublic-rest-v2-user-addgroup-request.md | 38 - .../tspublic-rest-v2-user-addorg-request.md | 32 - ...lic-rest-v2-user-changepassword-request.md | 27 - ...public-rest-v2-user-removegroup-request.md | 38 - .../tspublic-rest-v2-user-search-request.md | 45 - .../tspublic-rest-v2-user-update-request.md | 41 - Python/doc/models/type-1-enum.md | 16 - Python/doc/models/type-10-enum.md | 16 - Python/doc/models/type-13-enum.md | 18 - Python/doc/models/type-14-enum.md | 25 - Python/doc/models/type-15-enum.md | 25 - Python/doc/models/type-16-enum.md | 16 - Python/doc/models/type-18-enum.md | 18 - Python/doc/models/type-2-enum.md | 18 - Python/doc/models/type-3-enum.md | 33 - Python/doc/models/type-4-enum.md | 21 - Python/doc/models/type-5-enum.md | 31 - Python/doc/models/type-6-enum.md | 23 - Python/doc/models/type-7-enum.md | 16 - Python/doc/models/type-8-enum.md | 17 - Python/doc/models/type-9-enum.md | 19 - Python/doc/models/type-enum.md | 18 - Python/doc/models/user-name-and-id-input.md | 23 - Python/doc/models/user-name-and-id.md | 23 - Python/doc/models/user-response.md | 83 - Python/doc/models/visibility-1-enum.md | 17 - Python/doc/models/visibility-2-enum.md | 17 - Python/doc/models/visibility-enum.md | 15 - Python/doc/models/viz-type.md | 25 - Python/doc/utility-classes.md | 21 - Python/requirements.txt | 5 - Python/setup.py | 33 - Python/test-requirements.txt | 1 - Python/tests/__init__.py | 0 Python/tests/controllers/__init__.py | 0 .../tests/controllers/controller_test_base.py | 33 - .../controllers/test_group_controller.py | 64 - .../controllers/test_metadata_controller.py | 82 - .../tests/controllers/test_org_controller.py | 71 - .../controllers/test_security_controller.py | 46 - .../controllers/test_session_controller.py | 49 - .../tests/controllers/test_user_controller.py | 65 - Python/tests/http_response_catcher.py | 28 - Python/thoughtspotpublicrestapi/__init__.py | 9 - Python/thoughtspotpublicrestapi/api_helper.py | 22 - .../thoughtspotpublicrestapi/configuration.py | 134 -- .../controllers/__init__.py | 17 - .../controllers/admin_controller.py | 290 --- .../controllers/base_controller.py | 67 - .../controllers/connection_controller.py | 463 ----- .../controllers/custom_actions_controller.py | 370 ---- .../controllers/data_controller.py | 246 --- .../controllers/database_controller.py | 249 --- .../controllers/group_controller.py | 508 ------ .../controllers/logs_controller.py | 91 - .../controllers/materialization_controller.py | 70 - .../controllers/metadata_controller.py | 899 ---------- .../controllers/org_controller.py | 257 --- .../controllers/report_controller.py | 173 -- .../controllers/security_controller.py | 326 ---- .../controllers/session_controller.py | 176 -- .../controllers/user_controller.py | 503 ------ .../exceptions/__init__.py | 4 - .../exceptions/api_exception.py | 35 - .../exceptions/error_response_exception.py | 38 - .../thoughtspotpublicrestapi/http/__init__.py | 7 - .../http/auth/__init__.py | 3 - .../http/auth/o_auth_2.py | 29 - .../http/http_call_back.py | 21 - .../http/http_method_enum.py | 24 - .../http/http_request.py | 54 - .../http/http_response.py | 45 - .../models/__init__.py | 145 -- .../models/access_enum.py | 26 - .../models/access_level_enum.py | 25 - .../models/access_level_input.py | 87 - .../models/add_table_input.py | 76 - .../models/adminsync_principal_response.py | 101 -- .../models/answer_query_response.py | 77 - .../models/client_state.py | 61 - .../models/columns_input.py | 61 - .../models/connection_column.py | 82 - .../models/connection_columns_shema.py | 90 - .../models/connection_database_type.py | 74 - .../models/connection_response.py | 232 --- .../models/connection_table_columns_input.py | 67 - .../connection_table_columns_response.py | 74 - .../models/connection_table_response.py | 74 - .../models/connection_table_schema.py | 74 - .../models/create_connection_response.py | 227 --- .../models/create_table_response.py | 71 - .../models/dependent_permission.py | 111 -- .../models/format_type_3_enum.py | 25 - .../models/format_type_enum.py | 27 - .../models/from_user_name_and_id_input.py | 75 - .../models/group_name_and_id.py | 69 - .../models/group_name_and_id_input.py | 69 - .../models/group_permission.py | 78 - .../models/group_response.py | 317 ---- .../models/home_liveboard_response.py | 85 - .../models/import_policy_enum.py | 28 - .../models/liveboard_name_and_id.py | 69 - .../models/liveboard_query_response.py | 82 - .../models/logical_table_header.py | 181 -- .../models/logs_response.py | 72 - .../models/metadata_tag_response.py | 167 -- .../models/name_and_id_input.py | 69 - .../models/org_type.py | 69 - .../models/orgs_response.py | 102 -- .../models/orientation_enum.py | 25 - .../models/pdf_options_input.py | 118 -- .../models/permissions_type_search.py | 75 - .../models/pinboard_details.py | 85 - .../models/principal_search_response.py | 91 - .../models/privilege_enum.py | 76 - .../models/secuirity_dependents.py | 108 -- .../models/security_permission.py | 111 -- .../models/security_permission_response.py | 122 -- .../models/session_login_response.py | 97 - .../models/sort_by_1_enum.py | 55 - .../models/sort_by_enum.py | 55 - .../models/sort_order_1_enum.py | 28 - .../models/sort_order_enum.py | 28 - .../models/state_1_enum.py | 34 - .../models/state_enum.py | 34 - .../models/table_columns.py | 69 - .../models/table_input.py | 69 - .../models/table_list.py | 191 -- .../models/tag_name_and_id.py | 69 - .../models/tag_name_and_id_input.py | 69 - .../models/to_user_name_and_id_input.py | 70 - .../models/topic_enum.py | 22 - .../models/ts_object_input.py | 61 - .../models/ts_object_search_input.py | 61 - .../models/ts_object_type_serach.py | 120 -- ...lic_rest_v_2_admin_assignauthor_request.py | 76 - ...lic_rest_v_2_admin_changeauthor_request.py | 80 - ..._v_2_admin_configuration_update_request.py | 63 - ...blic_rest_v_2_admin_forcelogout_request.py | 67 - ...ic_rest_v_2_admin_resetpassword_request.py | 75 - ...ic_rest_v_2_admin_syncprincipal_request.py | 103 -- ...ic_rest_v_2_connection_addtable_request.py | 64 - ...blic_rest_v_2_connection_create_request.py | 81 - ...rest_v_2_connection_removetable_request.py | 66 - ...blic_rest_v_2_connection_search_request.py | 153 -- ...ublic_rest_v_2_connection_table_request.py | 83 - ...est_v_2_connection_tablecoloumn_request.py | 84 - ...blic_rest_v_2_connection_update_request.py | 84 - ...customaction_association_update_request.py | 70 - ...ic_rest_v_2_customaction_create_request.py | 67 - ...ic_rest_v_2_customaction_search_request.py | 64 - ...ic_rest_v_2_customaction_update_request.py | 73 - .../tspublic_rest_v_2_data_answer_request.py | 101 -- ...spublic_rest_v_2_data_liveboard_request.py | 152 -- .../tspublic_rest_v_2_data_search_request.py | 109 -- ..._rest_v_2_database_table_create_request.py | 77 - ...est_v_2_database_table_runquery_request.py | 63 - ...spublic_rest_v_2_group_addgroup_request.py | 79 - ...lic_rest_v_2_group_addprivilege_request.py | 78 - ...tspublic_rest_v_2_group_adduser_request.py | 79 - .../tspublic_rest_v_2_group_create_request.py | 140 -- ...blic_rest_v_2_group_removegroup_request.py | 79 - ..._rest_v_2_group_removeprivilege_request.py | 78 - ...ublic_rest_v_2_group_removeuser_request.py | 79 - .../tspublic_rest_v_2_group_search_request.py | 152 -- .../tspublic_rest_v_2_group_update_request.py | 151 -- ...v_2_materialization_refreshview_request.py | 55 - ...ic_rest_v_2_metadata_dependency_request.py | 75 - ...rest_v_2_metadata_detail_search_request.py | 91 - ...st_v_2_metadata_favorite_assign_request.py | 79 - ..._v_2_metadata_favorite_unassign_request.py | 79 - ...rest_v_2_metadata_header_search_request.py | 243 --- ...2_metadata_homeliveboard_assign_request.py | 77 - ...metadata_homeliveboard_unassign_request.py | 69 - ...ic_rest_v_2_metadata_tag_assign_request.py | 79 - ...ic_rest_v_2_metadata_tag_create_request.py | 67 - ..._rest_v_2_metadata_tag_unassign_request.py | 79 - ...ic_rest_v_2_metadata_tag_update_request.py | 77 - ...ic_rest_v_2_metadata_tml_export_request.py | 79 - ...ic_rest_v_2_metadata_tml_import_request.py | 101 -- .../tspublic_rest_v_2_org_create_request.py | 67 - .../tspublic_rest_v_2_org_search_request.py | 77 - .../tspublic_rest_v_2_org_update_request.py | 85 - ...ity_permission_principal_search_request.py | 78 - ...rity_permission_tsobject_search_request.py | 86 - ...est_v_2_security_share_tsobject_request.py | 116 -- ..._2_security_share_visualization_request.py | 105 -- ...tspublic_rest_v_2_user_addgroup_request.py | 79 - .../tspublic_rest_v_2_user_addorg_request.py | 72 - ...ic_rest_v_2_user_changepassword_request.py | 81 - ...ublic_rest_v_2_user_removegroup_request.py | 79 - .../tspublic_rest_v_2_user_search_request.py | 178 -- .../tspublic_rest_v_2_user_update_request.py | 154 -- .../models/type_10_enum.py | 26 - .../models/type_13_enum.py | 31 - .../models/type_14_enum.py | 52 - .../models/type_15_enum.py | 54 - .../models/type_16_enum.py | 31 - .../models/type_18_enum.py | 31 - .../models/type_1_enum.py | 25 - .../models/type_2_enum.py | 31 - .../models/type_3_enum.py | 76 - .../models/type_4_enum.py | 46 - .../models/type_5_enum.py | 76 - .../models/type_6_enum.py | 46 - .../models/type_7_enum.py | 31 - .../models/type_8_enum.py | 34 - .../models/type_9_enum.py | 35 - .../models/type_enum.py | 31 - .../models/user_name_and_id.py | 69 - .../models/user_name_and_id_input.py | 69 - .../models/user_response.py | 329 ---- .../models/visibility_1_enum.py | 30 - .../models/visibility_2_enum.py | 30 - .../models/visibility_enum.py | 28 - .../models/viz_type.py | 77 - .../thoughtspotpublicrestapi_client.py | 137 -- .../utilities/__init__.py | 3 - .../utilities/file_wrapper.py | 17 - Python/tox.ini | 7 - Typescript/.editorconfig | 15 - Typescript/.gitignore | 5 - Typescript/LICENSE | 28 - Typescript/README.md | 83 - Typescript/doc/api-error.md | 17 - Typescript/doc/api-response.md | 15 - Typescript/doc/client.md | 68 - Typescript/doc/controllers/admin.md | 337 ---- Typescript/doc/controllers/connection.md | 639 ------- Typescript/doc/controllers/custom-actions.md | 400 ----- Typescript/doc/controllers/data.md | 256 --- Typescript/doc/controllers/database.md | 260 --- Typescript/doc/controllers/group.md | 579 ------ Typescript/doc/controllers/logs.md | 67 - Typescript/doc/controllers/materialization.md | 59 - Typescript/doc/controllers/metadata.md | 1091 ------------ Typescript/doc/controllers/org.md | 271 --- Typescript/doc/controllers/report.md | 120 -- Typescript/doc/controllers/security.md | 373 ---- Typescript/doc/controllers/session.md | 140 -- Typescript/doc/controllers/user.md | 506 ------ Typescript/doc/models/access-enum.md | 16 - Typescript/doc/models/access-level-enum.md | 14 - Typescript/doc/models/access-level-input.md | 27 - Typescript/doc/models/add-table-input.md | 32 - .../models/adminsync-principal-response.md | 31 - .../doc/models/answer-query-response.md | 25 - Typescript/doc/models/client-state.md | 21 - Typescript/doc/models/columns-input.md | 23 - Typescript/doc/models/connection-column.md | 25 - .../doc/models/connection-columns-shema.md | 27 - .../doc/models/connection-database-type.md | 23 - Typescript/doc/models/connection-response.md | 61 - .../models/connection-table-columns-input.md | 25 - .../connection-table-columns-response.md | 23 - .../doc/models/connection-table-response.md | 23 - .../doc/models/connection-table-schema.md | 23 - .../doc/models/create-connection-response.md | 61 - .../doc/models/create-table-response.md | 23 - Typescript/doc/models/dependent-permission.md | 31 - Typescript/doc/models/error-response-error.md | 21 - Typescript/doc/models/format-type-3-enum.md | 16 - Typescript/doc/models/format-type-enum.md | 20 - .../doc/models/from-user-name-and-id-input.md | 29 - .../doc/models/group-name-and-id-input.md | 23 - Typescript/doc/models/group-name-and-id.md | 23 - Typescript/doc/models/group-permission.md | 25 - Typescript/doc/models/group-response.md | 79 - .../doc/models/home-liveboard-response.md | 27 - Typescript/doc/models/import-policy-enum.md | 17 - .../doc/models/liveboard-name-and-id.md | 23 - .../doc/models/liveboard-query-response.md | 25 - Typescript/doc/models/logical-table-header.md | 51 - Typescript/doc/models/logs-response.md | 23 - .../doc/models/metadata-tag-response.md | 47 - Typescript/doc/models/name-and-id-input.md | 23 - Typescript/doc/models/org-type.md | 23 - Typescript/doc/models/orgs-response.md | 31 - Typescript/doc/models/orientation-enum.md | 16 - Typescript/doc/models/pdf-options-input.md | 33 - .../doc/models/permissions-type-search.md | 23 - Typescript/doc/models/pinboard-details.md | 27 - .../doc/models/principal-search-response.md | 27 - Typescript/doc/models/privilege-enum.md | 31 - Typescript/doc/models/secuirity-dependents.md | 31 - .../models/security-permission-response.md | 33 - Typescript/doc/models/security-permission.md | 31 - .../doc/models/session-login-response.md | 31 - Typescript/doc/models/sort-by-1-enum.md | 26 - Typescript/doc/models/sort-by-enum.md | 26 - Typescript/doc/models/sort-order-1-enum.md | 17 - Typescript/doc/models/sort-order-enum.md | 17 - Typescript/doc/models/state-1-enum.md | 19 - Typescript/doc/models/state-enum.md | 17 - Typescript/doc/models/table-columns.md | 23 - Typescript/doc/models/table-input.md | 23 - Typescript/doc/models/table-list.md | 53 - .../doc/models/tag-name-and-id-input.md | 23 - Typescript/doc/models/tag-name-and-id.md | 23 - .../doc/models/to-user-name-and-id-input.md | 25 - Typescript/doc/models/topic-enum.md | 13 - Typescript/doc/models/ts-object-input.md | 23 - .../doc/models/ts-object-search-input.md | 25 - .../doc/models/ts-object-type-serach.md | 33 - ...blic-rest-v2-admin-assignauthor-request.md | 29 - ...blic-rest-v2-admin-changeauthor-request.md | 35 - ...t-v2-admin-configuration-update-request.md | 21 - ...ublic-rest-v2-admin-forcelogout-request.md | 21 - ...lic-rest-v2-admin-resetpassword-request.md | 25 - ...lic-rest-v2-admin-syncprincipal-request.md | 40 - ...lic-rest-v2-connection-addtable-request.md | 35 - ...ublic-rest-v2-connection-create-request.md | 27 - ...-rest-v2-connection-removetable-request.md | 28 - ...ublic-rest-v2-connection-search-request.md | 39 - ...public-rest-v2-connection-table-request.md | 25 - ...rest-v2-connection-tablecoloumn-request.md | 31 - ...ublic-rest-v2-connection-update-request.md | 27 - ...customaction-association-update-request.md | 23 - ...lic-rest-v2-customaction-create-request.md | 21 - ...lic-rest-v2-customaction-search-request.md | 21 - ...lic-rest-v2-customaction-update-request.md | 23 - .../tspublic-rest-v2-data-answer-request.md | 29 - ...tspublic-rest-v2-data-liveboard-request.md | 37 - .../tspublic-rest-v2-data-search-request.md | 31 - ...c-rest-v2-database-table-create-request.md | 23 - ...rest-v2-database-table-runquery-request.md | 23 - ...tspublic-rest-v2-group-addgroup-request.md | 38 - ...blic-rest-v2-group-addprivilege-request.md | 25 - .../tspublic-rest-v2-group-adduser-request.md | 34 - .../tspublic-rest-v2-group-create-request.md | 37 - ...ublic-rest-v2-group-removegroup-request.md | 38 - ...c-rest-v2-group-removeprivilege-request.md | 25 - ...public-rest-v2-group-removeuser-request.md | 34 - .../tspublic-rest-v2-group-search-request.md | 39 - .../tspublic-rest-v2-group-update-request.md | 39 - ...-v2-materialization-refreshview-request.md | 21 - ...lic-rest-v2-metadata-dependency-request.md | 27 - ...-rest-v2-metadata-detail-search-request.md | 31 - ...est-v2-metadata-favorite-assign-request.md | 34 - ...t-v2-metadata-favorite-unassign-request.md | 34 - ...-rest-v2-metadata-header-search-request.md | 53 - ...2-metadata-homeliveboard-assign-request.md | 25 - ...metadata-homeliveboard-unassign-request.md | 23 - ...lic-rest-v2-metadata-tag-assign-request.md | 34 - ...lic-rest-v2-metadata-tag-create-request.md | 23 - ...c-rest-v2-metadata-tag-unassign-request.md | 34 - ...lic-rest-v2-metadata-tag-update-request.md | 25 - ...lic-rest-v2-metadata-tml-export-request.md | 27 - ...lic-rest-v2-metadata-tml-import-request.md | 27 - .../tspublic-rest-v2-org-create-request.md | 23 - .../tspublic-rest-v2-org-search-request.md | 25 - .../tspublic-rest-v2-org-update-request.md | 27 - ...ity-permission-principal-search-request.md | 32 - ...rity-permission-tsobject-search-request.md | 39 - ...rest-v2-security-share-tsobject-request.md | 35 - ...v2-security-share-visualization-request.md | 37 - .../tspublic-rest-v2-user-addgroup-request.md | 38 - .../tspublic-rest-v2-user-addorg-request.md | 32 - ...lic-rest-v2-user-changepassword-request.md | 27 - ...public-rest-v2-user-removegroup-request.md | 38 - .../tspublic-rest-v2-user-search-request.md | 45 - .../tspublic-rest-v2-user-update-request.md | 41 - Typescript/doc/models/type-1-enum.md | 16 - Typescript/doc/models/type-10-enum.md | 16 - Typescript/doc/models/type-13-enum.md | 18 - Typescript/doc/models/type-14-enum.md | 25 - Typescript/doc/models/type-15-enum.md | 25 - Typescript/doc/models/type-16-enum.md | 16 - Typescript/doc/models/type-18-enum.md | 18 - Typescript/doc/models/type-2-enum.md | 18 - Typescript/doc/models/type-3-enum.md | 33 - Typescript/doc/models/type-4-enum.md | 21 - Typescript/doc/models/type-5-enum.md | 31 - Typescript/doc/models/type-6-enum.md | 23 - Typescript/doc/models/type-7-enum.md | 16 - Typescript/doc/models/type-8-enum.md | 17 - Typescript/doc/models/type-9-enum.md | 19 - Typescript/doc/models/type-enum.md | 18 - .../doc/models/user-name-and-id-input.md | 23 - Typescript/doc/models/user-name-and-id.md | 23 - Typescript/doc/models/user-response.md | 83 - Typescript/doc/models/visibility-1-enum.md | 17 - Typescript/doc/models/visibility-2-enum.md | 17 - Typescript/doc/models/visibility-enum.md | 15 - Typescript/doc/models/viz-type.md | 25 - Typescript/jest.config.js | 6 - Typescript/src/authentication.ts | 31 - Typescript/src/client.ts | 150 -- Typescript/src/clientInterface.ts | 22 - Typescript/src/configuration.ts | 22 - Typescript/src/controllers/adminController.ts | 205 --- Typescript/src/controllers/baseController.ts | 17 - .../src/controllers/connectionController.ts | 296 --- .../controllers/customActionsController.ts | 212 --- Typescript/src/controllers/dataController.ts | 141 -- .../src/controllers/databaseController.ts | 143 -- Typescript/src/controllers/groupController.ts | 308 ---- Typescript/src/controllers/logsController.ts | 54 - .../controllers/materializationController.ts | 39 - .../src/controllers/metadataController.ts | 569 ------ Typescript/src/controllers/orgController.ts | 152 -- .../src/controllers/reportController.ts | 97 - .../src/controllers/securityController.ts | 228 --- .../src/controllers/sessionController.ts | 131 -- Typescript/src/controllers/userController.ts | 312 ---- Typescript/src/core.ts | 7 - Typescript/src/defaultConfiguration.ts | 27 - Typescript/src/errors/errorResponseError.ts | 16 - Typescript/src/http/xmlSerialization.ts | 15 - Typescript/src/index.ts | 177 -- Typescript/src/models/accessEnum.ts | 20 - Typescript/src/models/accessLevelEnum.ts | 20 - Typescript/src/models/accessLevelInput.ts | 27 - Typescript/src/models/addTableInput.ts | 26 - .../src/models/adminsyncPrincipalResponse.ts | 33 - Typescript/src/models/answerQueryResponse.ts | 22 - Typescript/src/models/clientState.ts | 16 - Typescript/src/models/columnsInput.ts | 19 - Typescript/src/models/connectionColumn.ts | 23 - .../src/models/connectionColumnsShema.ts | 28 - .../src/models/connectionDatabaseType.ts | 28 - Typescript/src/models/connectionResponse.ts | 80 - .../src/models/connectionTableColumnsInput.ts | 24 - .../models/connectionTableColumnsResponse.ts | 25 - .../src/models/connectionTableResponse.ts | 28 - .../src/models/connectionTableSchema.ts | 22 - .../src/models/createConnectionResponse.ts | 81 - Typescript/src/models/createTableResponse.ts | 24 - Typescript/src/models/dependentPermission.ts | 35 - Typescript/src/models/formatType3Enum.ts | 20 - Typescript/src/models/formatTypeEnum.ts | 20 - .../src/models/fromUserNameAndIDInput.ts | 23 - Typescript/src/models/groupNameAndID.ts | 19 - Typescript/src/models/groupNameAndIDInput.ts | 19 - Typescript/src/models/groupPermission.ts | 22 - Typescript/src/models/groupResponse.ts | 114 -- .../src/models/homeLiveboardResponse.ts | 27 - Typescript/src/models/importPolicyEnum.ts | 21 - Typescript/src/models/liveboardNameAndID.ts | 19 - .../src/models/liveboardQueryResponse.ts | 25 - Typescript/src/models/logicalTableHeader.ts | 45 - Typescript/src/models/logsResponse.ts | 19 - Typescript/src/models/metadataTagResponse.ts | 58 - Typescript/src/models/nameAndIdInput.ts | 19 - Typescript/src/models/orgType.ts | 19 - Typescript/src/models/orgsResponse.ts | 31 - Typescript/src/models/orientationEnum.ts | 20 - Typescript/src/models/pdfOptionsInput.ts | 38 - .../src/models/permissionsTypeSearch.ts | 28 - Typescript/src/models/pinboardDetails.ts | 25 - .../src/models/principalSearchResponse.ts | 34 - Typescript/src/models/privilegeEnum.ts | 37 - Typescript/src/models/secuirityDependents.ts | 37 - Typescript/src/models/securityPermission.ts | 35 - .../src/models/securityPermissionResponse.ts | 50 - Typescript/src/models/sessionLoginResponse.ts | 29 - Typescript/src/models/sortBy1Enum.ts | 30 - Typescript/src/models/sortByEnum.ts | 30 - Typescript/src/models/sortOrder1Enum.ts | 21 - Typescript/src/models/sortOrderEnum.ts | 21 - Typescript/src/models/state1Enum.ts | 23 - Typescript/src/models/stateEnum.ts | 23 - Typescript/src/models/tableColumns.ts | 19 - Typescript/src/models/tableInput.ts | 19 - Typescript/src/models/tableList.ts | 68 - Typescript/src/models/tagNameAndID.ts | 19 - Typescript/src/models/tagNameAndIdInput.ts | 19 - Typescript/src/models/toUserNameAndIDInput.ts | 20 - Typescript/src/models/topicEnum.ts | 19 - Typescript/src/models/tsObjectInput.ts | 20 - Typescript/src/models/tsObjectSearchInput.ts | 20 - Typescript/src/models/tsObjectTypeSerach.ts | 38 - .../tspublicRestV2AdminAssignauthorRequest.ts | 24 - .../tspublicRestV2AdminChangeauthorRequest.ts | 40 - ...icRestV2AdminConfigurationUpdateRequest.ts | 19 - .../tspublicRestV2AdminForcelogoutRequest.ts | 17 - ...tspublicRestV2AdminResetpasswordRequest.ts | 24 - ...tspublicRestV2AdminSyncprincipalRequest.ts | 64 - ...tspublicRestV2ConnectionAddtableRequest.ts | 22 - .../tspublicRestV2ConnectionCreateRequest.ts | 28 - ...ublicRestV2ConnectionRemovetableRequest.ts | 22 - .../tspublicRestV2ConnectionSearchRequest.ts | 60 - .../tspublicRestV2ConnectionTableRequest.ts | 30 - ...blicRestV2ConnectionTablecoloumnRequest.ts | 34 - .../tspublicRestV2ConnectionUpdateRequest.ts | 27 - ...tV2CustomactionAssociationUpdateRequest.ts | 22 - ...tspublicRestV2CustomactionCreateRequest.ts | 20 - ...tspublicRestV2CustomactionSearchRequest.ts | 19 - ...tspublicRestV2CustomactionUpdateRequest.ts | 22 - .../models/tspublicRestV2DataAnswerRequest.ts | 48 - .../tspublicRestV2DataLiveboardRequest.ts | 68 - .../models/tspublicRestV2DataSearchRequest.ts | 51 - ...spublicRestV2DatabaseTableCreateRequest.ts | 21 - ...ublicRestV2DatabaseTableRunqueryRequest.ts | 16 - .../tspublicRestV2GroupAddgroupRequest.ts | 28 - .../tspublicRestV2GroupAddprivilegeRequest.ts | 25 - .../tspublicRestV2GroupAdduserRequest.ts | 28 - .../tspublicRestV2GroupCreateRequest.ts | 61 - .../tspublicRestV2GroupRemovegroupRequest.ts | 28 - ...publicRestV2GroupRemoveprivilegeRequest.ts | 25 - .../tspublicRestV2GroupRemoveuserRequest.ts | 28 - .../tspublicRestV2GroupSearchRequest.ts | 54 - .../tspublicRestV2GroupUpdateRequest.ts | 56 - ...RestV2MaterializationRefreshviewRequest.ts | 16 - ...tspublicRestV2MetadataDependencyRequest.ts | 25 - ...publicRestV2MetadataDetailSearchRequest.ts | 31 - ...blicRestV2MetadataFavoriteAssignRequest.ts | 25 - ...icRestV2MetadataFavoriteUnassignRequest.ts | 25 - ...publicRestV2MetadataHeaderSearchRequest.ts | 107 -- ...estV2MetadataHomeliveboardAssignRequest.ts | 24 - ...tV2MetadataHomeliveboardUnassignRequest.ts | 21 - .../tspublicRestV2MetadataTagAssignRequest.ts | 25 - .../tspublicRestV2MetadataTagCreateRequest.ts | 18 - ...spublicRestV2MetadataTagUnassignRequest.ts | 25 - .../tspublicRestV2MetadataTagUpdateRequest.ts | 24 - .../tspublicRestV2MetadataTmlExportRequest.ts | 25 - .../tspublicRestV2MetadataTmlImportRequest.ts | 33 - .../models/tspublicRestV2OrgCreateRequest.ts | 18 - .../models/tspublicRestV2OrgSearchRequest.ts | 24 - .../models/tspublicRestV2OrgUpdateRequest.ts | 27 - ...ecurityPermissionPrincipalSearchRequest.ts | 32 - ...SecurityPermissionTsobjectSearchRequest.ts | 35 - ...ublicRestV2SecurityShareTsobjectRequest.ts | 42 - ...RestV2SecurityShareVisualizationRequest.ts | 36 - .../tspublicRestV2UserAddgroupRequest.ts | 28 - .../models/tspublicRestV2UserAddorgRequest.ts | 25 - ...tspublicRestV2UserChangepasswordRequest.ts | 27 - .../tspublicRestV2UserRemovegroupRequest.ts | 28 - .../models/tspublicRestV2UserSearchRequest.ts | 70 - .../models/tspublicRestV2UserUpdateRequest.ts | 66 - Typescript/src/models/type10Enum.ts | 20 - Typescript/src/models/type13Enum.ts | 22 - Typescript/src/models/type14Enum.ts | 29 - Typescript/src/models/type15Enum.ts | 29 - Typescript/src/models/type16Enum.ts | 22 - Typescript/src/models/type18Enum.ts | 22 - Typescript/src/models/type1Enum.ts | 20 - Typescript/src/models/type2Enum.ts | 22 - Typescript/src/models/type3Enum.ts | 37 - Typescript/src/models/type4Enum.ts | 27 - Typescript/src/models/type5Enum.ts | 37 - Typescript/src/models/type6Enum.ts | 27 - Typescript/src/models/type7Enum.ts | 22 - Typescript/src/models/type8Enum.ts | 23 - Typescript/src/models/type9Enum.ts | 23 - Typescript/src/models/typeEnum.ts | 22 - Typescript/src/models/userNameAndID.ts | 19 - Typescript/src/models/userNameAndIDInput.ts | 19 - Typescript/src/models/userResponse.ts | 118 -- Typescript/src/models/visibility1Enum.ts | 21 - Typescript/src/models/visibility2Enum.ts | 21 - Typescript/src/models/visibilityEnum.ts | 21 - Typescript/src/models/vizType.ts | 22 - Typescript/src/schema.ts | 7 - Typescript/tsconfig.json | 20 - Typescript/tsdx.config.js | 11 - openspecapi.json | 1 - 1426 files changed, 129694 deletions(-) delete mode 100644 DotNet/LICENSE delete mode 100644 DotNet/README.md delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/BearerAuthManager.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IAuthManager.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IBearerAuthCredentials.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/AdminController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/BaseController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ConnectionController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/CustomActionsController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DataController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DatabaseController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/GroupController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/LogsController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MaterializationController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MetadataController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/OrgController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ReportController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SecurityController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SessionController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/UserController.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Environment.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ApiException.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ErrorResponseException.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/FileStreamInfo.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpCallBack.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientConfiguration.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientWrapper.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpContext.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpEventHandlers.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClient.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClientConfiguration.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartByteArrayContent.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartContent.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartFileContent.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryConfiguration.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryOption.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/HttpRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpStringResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/IConfiguration.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AddTableInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AdminsyncPrincipalResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AnswerQueryResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ClientState.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ColumnsInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumn.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumnsShema.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionDatabaseType.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableSchema.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateConnectionResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateTableResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/DependentPermission.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatType3Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatTypeEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FromUserNameAndIDInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndID.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndIDInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupPermission.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/HomeLiveboardResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ImportPolicyEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardNameAndID.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardQueryResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogicalTableHeader.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogsResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/MetadataTagResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/NameAndIdInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgType.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgsResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrientationEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PdfOptionsInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PermissionsTypeSearch.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PinboardDetails.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrincipalSearchResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrivilegeEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecuirityDependents.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermission.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermissionResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SessionLoginResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortBy1Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortByEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrder1Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrderEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/State1Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/StateEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableColumns.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableList.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndID.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndIdInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ToUserNameAndIDInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TopicEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectSearchInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectTypeSerach.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminAssignauthorRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminChangeauthorRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminConfigurationUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminForcelogoutRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminResetpasswordRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminSyncprincipalRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionAddtableRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionCreateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionRemovetableRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTableRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTablecoloumnRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionAssociationUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionCreateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataAnswerRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataLiveboardRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableCreateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableRunqueryRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddgroupRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddprivilegeRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAdduserRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupCreateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemovegroupRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveprivilegeRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveuserRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MaterializationRefreshviewRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDependencyRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDetailSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteAssignRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteUnassignRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHeaderSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardAssignRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardUnassignRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagAssignRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagCreateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUnassignRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlExportRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlImportRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgCreateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareTsobjectRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareVisualizationRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddgroupRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddorgRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserChangepasswordRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserRemovegroupRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserSearchRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserUpdateRequest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type10Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type13Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type14Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type15Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type16Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type18Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type1Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type2Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type3Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type4Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type5Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type6Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type7Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type8Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type9Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TypeEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndID.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndIDInput.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserResponse.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility1Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility2Enum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VisibilityEnum.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VizType.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Server.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPI.Standard.csproj delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPIClient.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ApiHelper.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ArrayDeserialization.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/ControllerTestBase.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/GroupControllerTest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/HttpCallBackEventsHandler.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/TestHelper.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/MetadataControllerTest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/OrgControllerTest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/Properties/AssemblyInfo.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/SecurityControllerTest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/SessionControllerTest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/ThoughtSpotPublicRESTAPI.Tests.csproj delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.Tests/UserControllerTest.cs delete mode 100644 DotNet/ThoughtSpotPublicRESTAPI.sln delete mode 100644 DotNet/doc/api-exception.md delete mode 100644 DotNet/doc/client.md delete mode 100644 DotNet/doc/controllers/admin.md delete mode 100644 DotNet/doc/controllers/connection.md delete mode 100644 DotNet/doc/controllers/custom-actions.md delete mode 100644 DotNet/doc/controllers/data.md delete mode 100644 DotNet/doc/controllers/database.md delete mode 100644 DotNet/doc/controllers/group.md delete mode 100644 DotNet/doc/controllers/logs.md delete mode 100644 DotNet/doc/controllers/materialization.md delete mode 100644 DotNet/doc/controllers/metadata.md delete mode 100644 DotNet/doc/controllers/org.md delete mode 100644 DotNet/doc/controllers/report.md delete mode 100644 DotNet/doc/controllers/security.md delete mode 100644 DotNet/doc/controllers/session.md delete mode 100644 DotNet/doc/controllers/user.md delete mode 100644 DotNet/doc/http-client-configuration-builder.md delete mode 100644 DotNet/doc/http-client-configuration.md delete mode 100644 DotNet/doc/http-context.md delete mode 100644 DotNet/doc/http-request.md delete mode 100644 DotNet/doc/http-response.md delete mode 100644 DotNet/doc/http-string-response.md delete mode 100644 DotNet/doc/i-auth-manager.md delete mode 100644 DotNet/doc/models/access-enum.md delete mode 100644 DotNet/doc/models/access-level-enum.md delete mode 100644 DotNet/doc/models/access-level-input.md delete mode 100644 DotNet/doc/models/add-table-input.md delete mode 100644 DotNet/doc/models/adminsync-principal-response.md delete mode 100644 DotNet/doc/models/answer-query-response.md delete mode 100644 DotNet/doc/models/client-state.md delete mode 100644 DotNet/doc/models/columns-input.md delete mode 100644 DotNet/doc/models/connection-column.md delete mode 100644 DotNet/doc/models/connection-columns-shema.md delete mode 100644 DotNet/doc/models/connection-database-type.md delete mode 100644 DotNet/doc/models/connection-response.md delete mode 100644 DotNet/doc/models/connection-table-columns-input.md delete mode 100644 DotNet/doc/models/connection-table-columns-response.md delete mode 100644 DotNet/doc/models/connection-table-response.md delete mode 100644 DotNet/doc/models/connection-table-schema.md delete mode 100644 DotNet/doc/models/create-connection-response.md delete mode 100644 DotNet/doc/models/create-table-response.md delete mode 100644 DotNet/doc/models/dependent-permission.md delete mode 100644 DotNet/doc/models/error-response-exception.md delete mode 100644 DotNet/doc/models/format-type-3-enum.md delete mode 100644 DotNet/doc/models/format-type-enum.md delete mode 100644 DotNet/doc/models/from-user-name-and-id-input.md delete mode 100644 DotNet/doc/models/group-name-and-id-input.md delete mode 100644 DotNet/doc/models/group-name-and-id.md delete mode 100644 DotNet/doc/models/group-permission.md delete mode 100644 DotNet/doc/models/group-response.md delete mode 100644 DotNet/doc/models/home-liveboard-response.md delete mode 100644 DotNet/doc/models/import-policy-enum.md delete mode 100644 DotNet/doc/models/liveboard-name-and-id.md delete mode 100644 DotNet/doc/models/liveboard-query-response.md delete mode 100644 DotNet/doc/models/logical-table-header.md delete mode 100644 DotNet/doc/models/logs-response.md delete mode 100644 DotNet/doc/models/metadata-tag-response.md delete mode 100644 DotNet/doc/models/name-and-id-input.md delete mode 100644 DotNet/doc/models/org-type.md delete mode 100644 DotNet/doc/models/orgs-response.md delete mode 100644 DotNet/doc/models/orientation-enum.md delete mode 100644 DotNet/doc/models/pdf-options-input.md delete mode 100644 DotNet/doc/models/permissions-type-search.md delete mode 100644 DotNet/doc/models/pinboard-details.md delete mode 100644 DotNet/doc/models/principal-search-response.md delete mode 100644 DotNet/doc/models/privilege-enum.md delete mode 100644 DotNet/doc/models/secuirity-dependents.md delete mode 100644 DotNet/doc/models/security-permission-response.md delete mode 100644 DotNet/doc/models/security-permission.md delete mode 100644 DotNet/doc/models/session-login-response.md delete mode 100644 DotNet/doc/models/sort-by-1-enum.md delete mode 100644 DotNet/doc/models/sort-by-enum.md delete mode 100644 DotNet/doc/models/sort-order-1-enum.md delete mode 100644 DotNet/doc/models/sort-order-enum.md delete mode 100644 DotNet/doc/models/state-1-enum.md delete mode 100644 DotNet/doc/models/state-enum.md delete mode 100644 DotNet/doc/models/table-columns.md delete mode 100644 DotNet/doc/models/table-input.md delete mode 100644 DotNet/doc/models/table-list.md delete mode 100644 DotNet/doc/models/tag-name-and-id-input.md delete mode 100644 DotNet/doc/models/tag-name-and-id.md delete mode 100644 DotNet/doc/models/to-user-name-and-id-input.md delete mode 100644 DotNet/doc/models/topic-enum.md delete mode 100644 DotNet/doc/models/ts-object-input.md delete mode 100644 DotNet/doc/models/ts-object-search-input.md delete mode 100644 DotNet/doc/models/ts-object-type-serach.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-admin-assignauthor-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-admin-changeauthor-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-admin-configuration-update-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-admin-forcelogout-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-admin-resetpassword-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-connection-addtable-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-connection-create-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-connection-removetable-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-connection-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-connection-table-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-connection-update-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-customaction-association-update-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-customaction-create-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-customaction-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-customaction-update-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-data-answer-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-data-liveboard-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-data-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-database-table-create-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-database-table-runquery-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-addgroup-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-addprivilege-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-adduser-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-create-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-removegroup-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-removeprivilege-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-removeuser-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-group-update-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-materialization-refreshview-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-dependency-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-detail-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-header-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-tag-create-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-tag-update-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-tml-export-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-metadata-tml-import-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-org-create-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-org-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-org-update-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-security-share-tsobject-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-security-share-visualization-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-user-addgroup-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-user-addorg-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-user-changepassword-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-user-removegroup-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-user-search-request.md delete mode 100644 DotNet/doc/models/tspublic-rest-v2-user-update-request.md delete mode 100644 DotNet/doc/models/type-1-enum.md delete mode 100644 DotNet/doc/models/type-10-enum.md delete mode 100644 DotNet/doc/models/type-13-enum.md delete mode 100644 DotNet/doc/models/type-14-enum.md delete mode 100644 DotNet/doc/models/type-15-enum.md delete mode 100644 DotNet/doc/models/type-16-enum.md delete mode 100644 DotNet/doc/models/type-18-enum.md delete mode 100644 DotNet/doc/models/type-2-enum.md delete mode 100644 DotNet/doc/models/type-3-enum.md delete mode 100644 DotNet/doc/models/type-4-enum.md delete mode 100644 DotNet/doc/models/type-5-enum.md delete mode 100644 DotNet/doc/models/type-6-enum.md delete mode 100644 DotNet/doc/models/type-7-enum.md delete mode 100644 DotNet/doc/models/type-8-enum.md delete mode 100644 DotNet/doc/models/type-9-enum.md delete mode 100644 DotNet/doc/models/type-enum.md delete mode 100644 DotNet/doc/models/user-name-and-id-input.md delete mode 100644 DotNet/doc/models/user-name-and-id.md delete mode 100644 DotNet/doc/models/user-response.md delete mode 100644 DotNet/doc/models/visibility-1-enum.md delete mode 100644 DotNet/doc/models/visibility-2-enum.md delete mode 100644 DotNet/doc/models/visibility-enum.md delete mode 100644 DotNet/doc/models/viz-type.md delete mode 100644 DotNet/doc/utility-classes.md delete mode 100644 Java/.classpath delete mode 100644 Java/.project delete mode 100644 Java/.settings/.org.eclipse.jdt.core.prefs delete mode 100644 Java/.settings/.org.eclipse.m2e.core.prefs delete mode 100644 Java/LICENSE delete mode 100644 Java/README.md delete mode 100644 Java/doc/api-exception.md delete mode 100644 Java/doc/client.md delete mode 100644 Java/doc/configuration-interface.md delete mode 100644 Java/doc/controllers/admin.md delete mode 100644 Java/doc/controllers/connection.md delete mode 100644 Java/doc/controllers/custom-actions.md delete mode 100644 Java/doc/controllers/data.md delete mode 100644 Java/doc/controllers/database.md delete mode 100644 Java/doc/controllers/group.md delete mode 100644 Java/doc/controllers/logs.md delete mode 100644 Java/doc/controllers/materialization.md delete mode 100644 Java/doc/controllers/metadata.md delete mode 100644 Java/doc/controllers/org.md delete mode 100644 Java/doc/controllers/report.md delete mode 100644 Java/doc/controllers/security.md delete mode 100644 Java/doc/controllers/session.md delete mode 100644 Java/doc/controllers/user.md delete mode 100644 Java/doc/headers.md delete mode 100644 Java/doc/http-body-request.md delete mode 100644 Java/doc/http-callback-interface.md delete mode 100644 Java/doc/http-client-configuration-builder.md delete mode 100644 Java/doc/http-client-configuration.md delete mode 100644 Java/doc/http-context.md delete mode 100644 Java/doc/http-request.md delete mode 100644 Java/doc/http-response.md delete mode 100644 Java/doc/http-string-response.md delete mode 100644 Java/doc/models/access-enum.md delete mode 100644 Java/doc/models/access-level-enum.md delete mode 100644 Java/doc/models/access-level-input.md delete mode 100644 Java/doc/models/add-table-input.md delete mode 100644 Java/doc/models/adminsync-principal-response.md delete mode 100644 Java/doc/models/answer-query-response.md delete mode 100644 Java/doc/models/client-state.md delete mode 100644 Java/doc/models/columns-input.md delete mode 100644 Java/doc/models/connection-column.md delete mode 100644 Java/doc/models/connection-columns-shema.md delete mode 100644 Java/doc/models/connection-database-type.md delete mode 100644 Java/doc/models/connection-response.md delete mode 100644 Java/doc/models/connection-table-columns-input.md delete mode 100644 Java/doc/models/connection-table-columns-response.md delete mode 100644 Java/doc/models/connection-table-response.md delete mode 100644 Java/doc/models/connection-table-schema.md delete mode 100644 Java/doc/models/create-connection-response.md delete mode 100644 Java/doc/models/create-table-response.md delete mode 100644 Java/doc/models/dependent-permission.md delete mode 100644 Java/doc/models/error-response-exception.md delete mode 100644 Java/doc/models/format-type-3-enum.md delete mode 100644 Java/doc/models/format-type-enum.md delete mode 100644 Java/doc/models/from-user-name-and-id-input.md delete mode 100644 Java/doc/models/group-name-and-id-input.md delete mode 100644 Java/doc/models/group-name-and-id.md delete mode 100644 Java/doc/models/group-permission.md delete mode 100644 Java/doc/models/group-response.md delete mode 100644 Java/doc/models/home-liveboard-response.md delete mode 100644 Java/doc/models/import-policy-enum.md delete mode 100644 Java/doc/models/liveboard-name-and-id.md delete mode 100644 Java/doc/models/liveboard-query-response.md delete mode 100644 Java/doc/models/logical-table-header.md delete mode 100644 Java/doc/models/logs-response.md delete mode 100644 Java/doc/models/metadata-tag-response.md delete mode 100644 Java/doc/models/name-and-id-input.md delete mode 100644 Java/doc/models/org-type.md delete mode 100644 Java/doc/models/orgs-response.md delete mode 100644 Java/doc/models/orientation-enum.md delete mode 100644 Java/doc/models/pdf-options-input.md delete mode 100644 Java/doc/models/permissions-type-search.md delete mode 100644 Java/doc/models/pinboard-details.md delete mode 100644 Java/doc/models/principal-search-response.md delete mode 100644 Java/doc/models/privilege-enum.md delete mode 100644 Java/doc/models/secuirity-dependents.md delete mode 100644 Java/doc/models/security-permission-response.md delete mode 100644 Java/doc/models/security-permission.md delete mode 100644 Java/doc/models/session-login-response.md delete mode 100644 Java/doc/models/sort-by-1-enum.md delete mode 100644 Java/doc/models/sort-by-enum.md delete mode 100644 Java/doc/models/sort-order-1-enum.md delete mode 100644 Java/doc/models/sort-order-enum.md delete mode 100644 Java/doc/models/state-1-enum.md delete mode 100644 Java/doc/models/state-enum.md delete mode 100644 Java/doc/models/table-columns.md delete mode 100644 Java/doc/models/table-input.md delete mode 100644 Java/doc/models/table-list.md delete mode 100644 Java/doc/models/tag-name-and-id-input.md delete mode 100644 Java/doc/models/tag-name-and-id.md delete mode 100644 Java/doc/models/to-user-name-and-id-input.md delete mode 100644 Java/doc/models/topic-enum.md delete mode 100644 Java/doc/models/ts-object-input.md delete mode 100644 Java/doc/models/ts-object-search-input.md delete mode 100644 Java/doc/models/ts-object-type-serach.md delete mode 100644 Java/doc/models/tspublic-rest-v2-admin-assignauthor-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-admin-changeauthor-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-admin-configuration-update-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-admin-forcelogout-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-admin-resetpassword-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-connection-addtable-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-connection-create-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-connection-removetable-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-connection-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-connection-table-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-connection-update-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-customaction-association-update-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-customaction-create-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-customaction-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-customaction-update-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-data-answer-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-data-liveboard-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-data-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-database-table-create-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-database-table-runquery-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-addgroup-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-addprivilege-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-adduser-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-create-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-removegroup-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-removeprivilege-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-removeuser-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-group-update-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-materialization-refreshview-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-dependency-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-detail-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-header-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-tag-create-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-tag-update-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-tml-export-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-metadata-tml-import-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-org-create-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-org-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-org-update-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-security-share-tsobject-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-security-share-visualization-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-user-addgroup-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-user-addorg-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-user-changepassword-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-user-removegroup-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-user-search-request.md delete mode 100644 Java/doc/models/tspublic-rest-v2-user-update-request.md delete mode 100644 Java/doc/models/type-1-enum.md delete mode 100644 Java/doc/models/type-10-enum.md delete mode 100644 Java/doc/models/type-13-enum.md delete mode 100644 Java/doc/models/type-14-enum.md delete mode 100644 Java/doc/models/type-15-enum.md delete mode 100644 Java/doc/models/type-16-enum.md delete mode 100644 Java/doc/models/type-18-enum.md delete mode 100644 Java/doc/models/type-2-enum.md delete mode 100644 Java/doc/models/type-3-enum.md delete mode 100644 Java/doc/models/type-4-enum.md delete mode 100644 Java/doc/models/type-5-enum.md delete mode 100644 Java/doc/models/type-6-enum.md delete mode 100644 Java/doc/models/type-7-enum.md delete mode 100644 Java/doc/models/type-8-enum.md delete mode 100644 Java/doc/models/type-9-enum.md delete mode 100644 Java/doc/models/type-enum.md delete mode 100644 Java/doc/models/user-name-and-id-input.md delete mode 100644 Java/doc/models/user-name-and-id.md delete mode 100644 Java/doc/models/user-response.md delete mode 100644 Java/doc/models/visibility-1-enum.md delete mode 100644 Java/doc/models/visibility-2-enum.md delete mode 100644 Java/doc/models/visibility-enum.md delete mode 100644 Java/doc/models/viz-type.md delete mode 100644 Java/doc/utility-classes.md delete mode 100644 Java/pom.xml delete mode 100644 Java/src/main/java/localhost/ApiHelper.java delete mode 100644 Java/src/main/java/localhost/BearerAuthCredentials.java delete mode 100644 Java/src/main/java/localhost/BearerAuthManager.java delete mode 100644 Java/src/main/java/localhost/CompatibilityFactoryImpl.java delete mode 100644 Java/src/main/java/localhost/Configuration.java delete mode 100644 Java/src/main/java/localhost/Environment.java delete mode 100644 Java/src/main/java/localhost/Server.java delete mode 100644 Java/src/main/java/localhost/ThoughtSpotPublicRESTAPIClient.java delete mode 100644 Java/src/main/java/localhost/controllers/AdminController.java delete mode 100644 Java/src/main/java/localhost/controllers/BaseController.java delete mode 100644 Java/src/main/java/localhost/controllers/ConnectionController.java delete mode 100644 Java/src/main/java/localhost/controllers/CustomActionsController.java delete mode 100644 Java/src/main/java/localhost/controllers/DataController.java delete mode 100644 Java/src/main/java/localhost/controllers/DatabaseController.java delete mode 100644 Java/src/main/java/localhost/controllers/GroupController.java delete mode 100644 Java/src/main/java/localhost/controllers/LogsController.java delete mode 100644 Java/src/main/java/localhost/controllers/MaterializationController.java delete mode 100644 Java/src/main/java/localhost/controllers/MetadataController.java delete mode 100644 Java/src/main/java/localhost/controllers/OrgController.java delete mode 100644 Java/src/main/java/localhost/controllers/ReportController.java delete mode 100644 Java/src/main/java/localhost/controllers/SecurityController.java delete mode 100644 Java/src/main/java/localhost/controllers/SessionController.java delete mode 100644 Java/src/main/java/localhost/controllers/UserController.java delete mode 100644 Java/src/main/java/localhost/exceptions/ApiException.java delete mode 100644 Java/src/main/java/localhost/exceptions/ErrorResponseException.java delete mode 100644 Java/src/main/java/localhost/http/Headers.java delete mode 100644 Java/src/main/java/localhost/http/client/HttpCallback.java delete mode 100644 Java/src/main/java/localhost/http/client/HttpClientConfiguration.java delete mode 100644 Java/src/main/java/localhost/http/client/HttpContext.java delete mode 100644 Java/src/main/java/localhost/http/client/ReadonlyHttpClientConfiguration.java delete mode 100644 Java/src/main/java/localhost/http/request/HttpBodyRequest.java delete mode 100644 Java/src/main/java/localhost/http/request/HttpMethod.java delete mode 100644 Java/src/main/java/localhost/http/request/HttpRequest.java delete mode 100644 Java/src/main/java/localhost/http/response/HttpResponse.java delete mode 100644 Java/src/main/java/localhost/http/response/HttpStringResponse.java delete mode 100644 Java/src/main/java/localhost/models/AccessEnum.java delete mode 100644 Java/src/main/java/localhost/models/AccessLevelEnum.java delete mode 100644 Java/src/main/java/localhost/models/AccessLevelInput.java delete mode 100644 Java/src/main/java/localhost/models/AddTableInput.java delete mode 100644 Java/src/main/java/localhost/models/AdminsyncPrincipalResponse.java delete mode 100644 Java/src/main/java/localhost/models/AnswerQueryResponse.java delete mode 100644 Java/src/main/java/localhost/models/ClientState.java delete mode 100644 Java/src/main/java/localhost/models/ColumnsInput.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionColumn.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionColumnsShema.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionDatabaseType.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionResponse.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionTableColumnsInput.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionTableColumnsResponse.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionTableResponse.java delete mode 100644 Java/src/main/java/localhost/models/ConnectionTableSchema.java delete mode 100644 Java/src/main/java/localhost/models/CreateConnectionResponse.java delete mode 100644 Java/src/main/java/localhost/models/CreateTableResponse.java delete mode 100644 Java/src/main/java/localhost/models/DependentPermission.java delete mode 100644 Java/src/main/java/localhost/models/FormatType3Enum.java delete mode 100644 Java/src/main/java/localhost/models/FormatTypeEnum.java delete mode 100644 Java/src/main/java/localhost/models/FromUserNameAndIDInput.java delete mode 100644 Java/src/main/java/localhost/models/GroupNameAndID.java delete mode 100644 Java/src/main/java/localhost/models/GroupNameAndIDInput.java delete mode 100644 Java/src/main/java/localhost/models/GroupPermission.java delete mode 100644 Java/src/main/java/localhost/models/GroupResponse.java delete mode 100644 Java/src/main/java/localhost/models/HomeLiveboardResponse.java delete mode 100644 Java/src/main/java/localhost/models/ImportPolicyEnum.java delete mode 100644 Java/src/main/java/localhost/models/LiveboardNameAndID.java delete mode 100644 Java/src/main/java/localhost/models/LiveboardQueryResponse.java delete mode 100644 Java/src/main/java/localhost/models/LogicalTableHeader.java delete mode 100644 Java/src/main/java/localhost/models/LogsResponse.java delete mode 100644 Java/src/main/java/localhost/models/MetadataTagResponse.java delete mode 100644 Java/src/main/java/localhost/models/NameAndIdInput.java delete mode 100644 Java/src/main/java/localhost/models/OrgType.java delete mode 100644 Java/src/main/java/localhost/models/OrgsResponse.java delete mode 100644 Java/src/main/java/localhost/models/OrientationEnum.java delete mode 100644 Java/src/main/java/localhost/models/PdfOptionsInput.java delete mode 100644 Java/src/main/java/localhost/models/PermissionsTypeSearch.java delete mode 100644 Java/src/main/java/localhost/models/PinboardDetails.java delete mode 100644 Java/src/main/java/localhost/models/PrincipalSearchResponse.java delete mode 100644 Java/src/main/java/localhost/models/PrivilegeEnum.java delete mode 100644 Java/src/main/java/localhost/models/SecuirityDependents.java delete mode 100644 Java/src/main/java/localhost/models/SecurityPermission.java delete mode 100644 Java/src/main/java/localhost/models/SecurityPermissionResponse.java delete mode 100644 Java/src/main/java/localhost/models/SessionLoginResponse.java delete mode 100644 Java/src/main/java/localhost/models/SortBy1Enum.java delete mode 100644 Java/src/main/java/localhost/models/SortByEnum.java delete mode 100644 Java/src/main/java/localhost/models/SortOrder1Enum.java delete mode 100644 Java/src/main/java/localhost/models/SortOrderEnum.java delete mode 100644 Java/src/main/java/localhost/models/State1Enum.java delete mode 100644 Java/src/main/java/localhost/models/StateEnum.java delete mode 100644 Java/src/main/java/localhost/models/TableColumns.java delete mode 100644 Java/src/main/java/localhost/models/TableInput.java delete mode 100644 Java/src/main/java/localhost/models/TableList.java delete mode 100644 Java/src/main/java/localhost/models/TagNameAndID.java delete mode 100644 Java/src/main/java/localhost/models/TagNameAndIdInput.java delete mode 100644 Java/src/main/java/localhost/models/ToUserNameAndIDInput.java delete mode 100644 Java/src/main/java/localhost/models/TopicEnum.java delete mode 100644 Java/src/main/java/localhost/models/TsObjectInput.java delete mode 100644 Java/src/main/java/localhost/models/TsObjectSearchInput.java delete mode 100644 Java/src/main/java/localhost/models/TsObjectTypeSerach.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2AdminAssignauthorRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2AdminChangeauthorRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2AdminConfigurationUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2AdminForcelogoutRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2AdminResetpasswordRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2AdminSyncprincipalRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2ConnectionAddtableRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2ConnectionCreateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2ConnectionRemovetableRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2ConnectionSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2ConnectionTableRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2ConnectionTablecoloumnRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2ConnectionUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2CustomactionAssociationUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2CustomactionCreateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2CustomactionSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2CustomactionUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2DataAnswerRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2DataLiveboardRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2DataSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableCreateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableRunqueryRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupAddgroupRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupAddprivilegeRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupAdduserRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupCreateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupRemovegroupRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveprivilegeRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveuserRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2GroupUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MaterializationRefreshviewRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataDependencyRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataDetailSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteAssignRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteUnassignRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataHeaderSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardAssignRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardUnassignRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataTagAssignRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataTagCreateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUnassignRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlExportRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlImportRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2OrgCreateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2OrgSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2OrgUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2SecurityShareTsobjectRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2SecurityShareVisualizationRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2UserAddgroupRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2UserAddorgRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2UserChangepasswordRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2UserRemovegroupRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2UserSearchRequest.java delete mode 100644 Java/src/main/java/localhost/models/TspublicRestV2UserUpdateRequest.java delete mode 100644 Java/src/main/java/localhost/models/Type10Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type13Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type14Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type15Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type16Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type18Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type1Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type2Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type3Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type4Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type5Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type6Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type7Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type8Enum.java delete mode 100644 Java/src/main/java/localhost/models/Type9Enum.java delete mode 100644 Java/src/main/java/localhost/models/TypeEnum.java delete mode 100644 Java/src/main/java/localhost/models/UserNameAndID.java delete mode 100644 Java/src/main/java/localhost/models/UserNameAndIDInput.java delete mode 100644 Java/src/main/java/localhost/models/UserResponse.java delete mode 100644 Java/src/main/java/localhost/models/Visibility1Enum.java delete mode 100644 Java/src/main/java/localhost/models/Visibility2Enum.java delete mode 100644 Java/src/main/java/localhost/models/VisibilityEnum.java delete mode 100644 Java/src/main/java/localhost/models/VizType.java delete mode 100644 Java/src/main/java/localhost/utilities/FileWrapper.java delete mode 100644 Java/src/test/java/localhost/controllers/BaseControllerTest.java delete mode 100644 Java/src/test/java/localhost/controllers/GroupControllerTest.java delete mode 100644 Java/src/test/java/localhost/controllers/MetadataControllerTest.java delete mode 100644 Java/src/test/java/localhost/controllers/OrgControllerTest.java delete mode 100644 Java/src/test/java/localhost/controllers/SecurityControllerTest.java delete mode 100644 Java/src/test/java/localhost/controllers/SessionControllerTest.java delete mode 100644 Java/src/test/java/localhost/controllers/UserControllerTest.java delete mode 100644 Java/src/test/java/localhost/testing/HttpCallbackCatcher.java delete mode 100644 Python/.gitignore delete mode 100644 Python/LICENSE delete mode 100644 Python/MANIFEST.in delete mode 100644 Python/README.md delete mode 100644 Python/doc/client.md delete mode 100644 Python/doc/controllers/admin.md delete mode 100644 Python/doc/controllers/connection.md delete mode 100644 Python/doc/controllers/custom-actions.md delete mode 100644 Python/doc/controllers/data.md delete mode 100644 Python/doc/controllers/database.md delete mode 100644 Python/doc/controllers/group.md delete mode 100644 Python/doc/controllers/logs.md delete mode 100644 Python/doc/controllers/materialization.md delete mode 100644 Python/doc/controllers/metadata.md delete mode 100644 Python/doc/controllers/org.md delete mode 100644 Python/doc/controllers/report.md delete mode 100644 Python/doc/controllers/security.md delete mode 100644 Python/doc/controllers/session.md delete mode 100644 Python/doc/controllers/user.md delete mode 100644 Python/doc/http-request.md delete mode 100644 Python/doc/http-response.md delete mode 100644 Python/doc/models/access-enum.md delete mode 100644 Python/doc/models/access-level-enum.md delete mode 100644 Python/doc/models/access-level-input.md delete mode 100644 Python/doc/models/add-table-input.md delete mode 100644 Python/doc/models/adminsync-principal-response.md delete mode 100644 Python/doc/models/answer-query-response.md delete mode 100644 Python/doc/models/client-state.md delete mode 100644 Python/doc/models/columns-input.md delete mode 100644 Python/doc/models/connection-column.md delete mode 100644 Python/doc/models/connection-columns-shema.md delete mode 100644 Python/doc/models/connection-database-type.md delete mode 100644 Python/doc/models/connection-response.md delete mode 100644 Python/doc/models/connection-table-columns-input.md delete mode 100644 Python/doc/models/connection-table-columns-response.md delete mode 100644 Python/doc/models/connection-table-response.md delete mode 100644 Python/doc/models/connection-table-schema.md delete mode 100644 Python/doc/models/create-connection-response.md delete mode 100644 Python/doc/models/create-table-response.md delete mode 100644 Python/doc/models/dependent-permission.md delete mode 100644 Python/doc/models/error-response-exception.md delete mode 100644 Python/doc/models/format-type-3-enum.md delete mode 100644 Python/doc/models/format-type-enum.md delete mode 100644 Python/doc/models/from-user-name-and-id-input.md delete mode 100644 Python/doc/models/group-name-and-id-input.md delete mode 100644 Python/doc/models/group-name-and-id.md delete mode 100644 Python/doc/models/group-permission.md delete mode 100644 Python/doc/models/group-response.md delete mode 100644 Python/doc/models/home-liveboard-response.md delete mode 100644 Python/doc/models/import-policy-enum.md delete mode 100644 Python/doc/models/liveboard-name-and-id.md delete mode 100644 Python/doc/models/liveboard-query-response.md delete mode 100644 Python/doc/models/logical-table-header.md delete mode 100644 Python/doc/models/logs-response.md delete mode 100644 Python/doc/models/metadata-tag-response.md delete mode 100644 Python/doc/models/name-and-id-input.md delete mode 100644 Python/doc/models/org-type.md delete mode 100644 Python/doc/models/orgs-response.md delete mode 100644 Python/doc/models/orientation-enum.md delete mode 100644 Python/doc/models/pdf-options-input.md delete mode 100644 Python/doc/models/permissions-type-search.md delete mode 100644 Python/doc/models/pinboard-details.md delete mode 100644 Python/doc/models/principal-search-response.md delete mode 100644 Python/doc/models/privilege-enum.md delete mode 100644 Python/doc/models/secuirity-dependents.md delete mode 100644 Python/doc/models/security-permission-response.md delete mode 100644 Python/doc/models/security-permission.md delete mode 100644 Python/doc/models/session-login-response.md delete mode 100644 Python/doc/models/sort-by-1-enum.md delete mode 100644 Python/doc/models/sort-by-enum.md delete mode 100644 Python/doc/models/sort-order-1-enum.md delete mode 100644 Python/doc/models/sort-order-enum.md delete mode 100644 Python/doc/models/state-1-enum.md delete mode 100644 Python/doc/models/state-enum.md delete mode 100644 Python/doc/models/table-columns.md delete mode 100644 Python/doc/models/table-input.md delete mode 100644 Python/doc/models/table-list.md delete mode 100644 Python/doc/models/tag-name-and-id-input.md delete mode 100644 Python/doc/models/tag-name-and-id.md delete mode 100644 Python/doc/models/to-user-name-and-id-input.md delete mode 100644 Python/doc/models/topic-enum.md delete mode 100644 Python/doc/models/ts-object-input.md delete mode 100644 Python/doc/models/ts-object-search-input.md delete mode 100644 Python/doc/models/ts-object-type-serach.md delete mode 100644 Python/doc/models/tspublic-rest-v2-admin-assignauthor-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-admin-changeauthor-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-admin-configuration-update-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-admin-forcelogout-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-admin-resetpassword-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-connection-addtable-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-connection-create-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-connection-removetable-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-connection-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-connection-table-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-connection-update-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-customaction-association-update-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-customaction-create-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-customaction-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-customaction-update-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-data-answer-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-data-liveboard-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-data-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-database-table-create-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-database-table-runquery-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-addgroup-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-addprivilege-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-adduser-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-create-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-removegroup-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-removeprivilege-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-removeuser-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-group-update-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-materialization-refreshview-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-dependency-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-detail-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-header-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-tag-create-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-tag-update-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-tml-export-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-metadata-tml-import-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-org-create-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-org-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-org-update-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-security-share-tsobject-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-security-share-visualization-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-user-addgroup-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-user-addorg-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-user-changepassword-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-user-removegroup-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-user-search-request.md delete mode 100644 Python/doc/models/tspublic-rest-v2-user-update-request.md delete mode 100644 Python/doc/models/type-1-enum.md delete mode 100644 Python/doc/models/type-10-enum.md delete mode 100644 Python/doc/models/type-13-enum.md delete mode 100644 Python/doc/models/type-14-enum.md delete mode 100644 Python/doc/models/type-15-enum.md delete mode 100644 Python/doc/models/type-16-enum.md delete mode 100644 Python/doc/models/type-18-enum.md delete mode 100644 Python/doc/models/type-2-enum.md delete mode 100644 Python/doc/models/type-3-enum.md delete mode 100644 Python/doc/models/type-4-enum.md delete mode 100644 Python/doc/models/type-5-enum.md delete mode 100644 Python/doc/models/type-6-enum.md delete mode 100644 Python/doc/models/type-7-enum.md delete mode 100644 Python/doc/models/type-8-enum.md delete mode 100644 Python/doc/models/type-9-enum.md delete mode 100644 Python/doc/models/type-enum.md delete mode 100644 Python/doc/models/user-name-and-id-input.md delete mode 100644 Python/doc/models/user-name-and-id.md delete mode 100644 Python/doc/models/user-response.md delete mode 100644 Python/doc/models/visibility-1-enum.md delete mode 100644 Python/doc/models/visibility-2-enum.md delete mode 100644 Python/doc/models/visibility-enum.md delete mode 100644 Python/doc/models/viz-type.md delete mode 100644 Python/doc/utility-classes.md delete mode 100644 Python/requirements.txt delete mode 100644 Python/setup.py delete mode 100644 Python/test-requirements.txt delete mode 100644 Python/tests/__init__.py delete mode 100644 Python/tests/controllers/__init__.py delete mode 100644 Python/tests/controllers/controller_test_base.py delete mode 100644 Python/tests/controllers/test_group_controller.py delete mode 100644 Python/tests/controllers/test_metadata_controller.py delete mode 100644 Python/tests/controllers/test_org_controller.py delete mode 100644 Python/tests/controllers/test_security_controller.py delete mode 100644 Python/tests/controllers/test_session_controller.py delete mode 100644 Python/tests/controllers/test_user_controller.py delete mode 100644 Python/tests/http_response_catcher.py delete mode 100644 Python/thoughtspotpublicrestapi/__init__.py delete mode 100644 Python/thoughtspotpublicrestapi/api_helper.py delete mode 100644 Python/thoughtspotpublicrestapi/configuration.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/__init__.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/admin_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/base_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/connection_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/custom_actions_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/data_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/database_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/group_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/logs_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/materialization_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/metadata_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/org_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/report_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/security_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/session_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/controllers/user_controller.py delete mode 100644 Python/thoughtspotpublicrestapi/exceptions/__init__.py delete mode 100644 Python/thoughtspotpublicrestapi/exceptions/api_exception.py delete mode 100644 Python/thoughtspotpublicrestapi/exceptions/error_response_exception.py delete mode 100644 Python/thoughtspotpublicrestapi/http/__init__.py delete mode 100644 Python/thoughtspotpublicrestapi/http/auth/__init__.py delete mode 100644 Python/thoughtspotpublicrestapi/http/auth/o_auth_2.py delete mode 100644 Python/thoughtspotpublicrestapi/http/http_call_back.py delete mode 100644 Python/thoughtspotpublicrestapi/http/http_method_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/http/http_request.py delete mode 100644 Python/thoughtspotpublicrestapi/http/http_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/__init__.py delete mode 100644 Python/thoughtspotpublicrestapi/models/access_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/access_level_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/access_level_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/add_table_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/adminsync_principal_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/answer_query_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/client_state.py delete mode 100644 Python/thoughtspotpublicrestapi/models/columns_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_column.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_columns_shema.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_database_type.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_table_columns_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_table_columns_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_table_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/connection_table_schema.py delete mode 100644 Python/thoughtspotpublicrestapi/models/create_connection_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/create_table_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/dependent_permission.py delete mode 100644 Python/thoughtspotpublicrestapi/models/format_type_3_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/format_type_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/from_user_name_and_id_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/group_name_and_id.py delete mode 100644 Python/thoughtspotpublicrestapi/models/group_name_and_id_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/group_permission.py delete mode 100644 Python/thoughtspotpublicrestapi/models/group_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/home_liveboard_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/import_policy_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/liveboard_name_and_id.py delete mode 100644 Python/thoughtspotpublicrestapi/models/liveboard_query_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/logical_table_header.py delete mode 100644 Python/thoughtspotpublicrestapi/models/logs_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/metadata_tag_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/name_and_id_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/org_type.py delete mode 100644 Python/thoughtspotpublicrestapi/models/orgs_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/orientation_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/pdf_options_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/permissions_type_search.py delete mode 100644 Python/thoughtspotpublicrestapi/models/pinboard_details.py delete mode 100644 Python/thoughtspotpublicrestapi/models/principal_search_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/privilege_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/secuirity_dependents.py delete mode 100644 Python/thoughtspotpublicrestapi/models/security_permission.py delete mode 100644 Python/thoughtspotpublicrestapi/models/security_permission_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/session_login_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/sort_by_1_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/sort_by_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/sort_order_1_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/sort_order_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/state_1_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/state_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/table_columns.py delete mode 100644 Python/thoughtspotpublicrestapi/models/table_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/table_list.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tag_name_and_id.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tag_name_and_id_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/to_user_name_and_id_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/topic_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/ts_object_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/ts_object_search_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/ts_object_type_serach.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_assignauthor_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_changeauthor_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_configuration_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_forcelogout_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_resetpassword_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_syncprincipal_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_addtable_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_create_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_removetable_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_table_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_tablecoloumn_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_association_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_create_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_answer_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_liveboard_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_create_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_runquery_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addgroup_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addprivilege_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_adduser_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_create_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removegroup_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeprivilege_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeuser_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_materialization_refreshview_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_dependency_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_detail_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_assign_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_unassign_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_header_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_assign_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_unassign_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_assign_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_create_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_unassign_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_export_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_import_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_create_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_principal_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_tsobject_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_tsobject_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_visualization_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addgroup_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addorg_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_changepassword_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_removegroup_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_search_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_update_request.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_10_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_13_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_14_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_15_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_16_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_18_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_1_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_2_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_3_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_4_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_5_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_6_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_7_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_8_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_9_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/type_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/user_name_and_id.py delete mode 100644 Python/thoughtspotpublicrestapi/models/user_name_and_id_input.py delete mode 100644 Python/thoughtspotpublicrestapi/models/user_response.py delete mode 100644 Python/thoughtspotpublicrestapi/models/visibility_1_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/visibility_2_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/visibility_enum.py delete mode 100644 Python/thoughtspotpublicrestapi/models/viz_type.py delete mode 100644 Python/thoughtspotpublicrestapi/thoughtspotpublicrestapi_client.py delete mode 100644 Python/thoughtspotpublicrestapi/utilities/__init__.py delete mode 100644 Python/thoughtspotpublicrestapi/utilities/file_wrapper.py delete mode 100644 Python/tox.ini delete mode 100644 Typescript/.editorconfig delete mode 100644 Typescript/.gitignore delete mode 100644 Typescript/LICENSE delete mode 100644 Typescript/README.md delete mode 100644 Typescript/doc/api-error.md delete mode 100644 Typescript/doc/api-response.md delete mode 100644 Typescript/doc/client.md delete mode 100644 Typescript/doc/controllers/admin.md delete mode 100644 Typescript/doc/controllers/connection.md delete mode 100644 Typescript/doc/controllers/custom-actions.md delete mode 100644 Typescript/doc/controllers/data.md delete mode 100644 Typescript/doc/controllers/database.md delete mode 100644 Typescript/doc/controllers/group.md delete mode 100644 Typescript/doc/controllers/logs.md delete mode 100644 Typescript/doc/controllers/materialization.md delete mode 100644 Typescript/doc/controllers/metadata.md delete mode 100644 Typescript/doc/controllers/org.md delete mode 100644 Typescript/doc/controllers/report.md delete mode 100644 Typescript/doc/controllers/security.md delete mode 100644 Typescript/doc/controllers/session.md delete mode 100644 Typescript/doc/controllers/user.md delete mode 100644 Typescript/doc/models/access-enum.md delete mode 100644 Typescript/doc/models/access-level-enum.md delete mode 100644 Typescript/doc/models/access-level-input.md delete mode 100644 Typescript/doc/models/add-table-input.md delete mode 100644 Typescript/doc/models/adminsync-principal-response.md delete mode 100644 Typescript/doc/models/answer-query-response.md delete mode 100644 Typescript/doc/models/client-state.md delete mode 100644 Typescript/doc/models/columns-input.md delete mode 100644 Typescript/doc/models/connection-column.md delete mode 100644 Typescript/doc/models/connection-columns-shema.md delete mode 100644 Typescript/doc/models/connection-database-type.md delete mode 100644 Typescript/doc/models/connection-response.md delete mode 100644 Typescript/doc/models/connection-table-columns-input.md delete mode 100644 Typescript/doc/models/connection-table-columns-response.md delete mode 100644 Typescript/doc/models/connection-table-response.md delete mode 100644 Typescript/doc/models/connection-table-schema.md delete mode 100644 Typescript/doc/models/create-connection-response.md delete mode 100644 Typescript/doc/models/create-table-response.md delete mode 100644 Typescript/doc/models/dependent-permission.md delete mode 100644 Typescript/doc/models/error-response-error.md delete mode 100644 Typescript/doc/models/format-type-3-enum.md delete mode 100644 Typescript/doc/models/format-type-enum.md delete mode 100644 Typescript/doc/models/from-user-name-and-id-input.md delete mode 100644 Typescript/doc/models/group-name-and-id-input.md delete mode 100644 Typescript/doc/models/group-name-and-id.md delete mode 100644 Typescript/doc/models/group-permission.md delete mode 100644 Typescript/doc/models/group-response.md delete mode 100644 Typescript/doc/models/home-liveboard-response.md delete mode 100644 Typescript/doc/models/import-policy-enum.md delete mode 100644 Typescript/doc/models/liveboard-name-and-id.md delete mode 100644 Typescript/doc/models/liveboard-query-response.md delete mode 100644 Typescript/doc/models/logical-table-header.md delete mode 100644 Typescript/doc/models/logs-response.md delete mode 100644 Typescript/doc/models/metadata-tag-response.md delete mode 100644 Typescript/doc/models/name-and-id-input.md delete mode 100644 Typescript/doc/models/org-type.md delete mode 100644 Typescript/doc/models/orgs-response.md delete mode 100644 Typescript/doc/models/orientation-enum.md delete mode 100644 Typescript/doc/models/pdf-options-input.md delete mode 100644 Typescript/doc/models/permissions-type-search.md delete mode 100644 Typescript/doc/models/pinboard-details.md delete mode 100644 Typescript/doc/models/principal-search-response.md delete mode 100644 Typescript/doc/models/privilege-enum.md delete mode 100644 Typescript/doc/models/secuirity-dependents.md delete mode 100644 Typescript/doc/models/security-permission-response.md delete mode 100644 Typescript/doc/models/security-permission.md delete mode 100644 Typescript/doc/models/session-login-response.md delete mode 100644 Typescript/doc/models/sort-by-1-enum.md delete mode 100644 Typescript/doc/models/sort-by-enum.md delete mode 100644 Typescript/doc/models/sort-order-1-enum.md delete mode 100644 Typescript/doc/models/sort-order-enum.md delete mode 100644 Typescript/doc/models/state-1-enum.md delete mode 100644 Typescript/doc/models/state-enum.md delete mode 100644 Typescript/doc/models/table-columns.md delete mode 100644 Typescript/doc/models/table-input.md delete mode 100644 Typescript/doc/models/table-list.md delete mode 100644 Typescript/doc/models/tag-name-and-id-input.md delete mode 100644 Typescript/doc/models/tag-name-and-id.md delete mode 100644 Typescript/doc/models/to-user-name-and-id-input.md delete mode 100644 Typescript/doc/models/topic-enum.md delete mode 100644 Typescript/doc/models/ts-object-input.md delete mode 100644 Typescript/doc/models/ts-object-search-input.md delete mode 100644 Typescript/doc/models/ts-object-type-serach.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-admin-assignauthor-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-admin-changeauthor-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-admin-configuration-update-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-admin-forcelogout-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-admin-resetpassword-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-connection-addtable-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-connection-create-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-connection-removetable-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-connection-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-connection-table-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-connection-update-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-customaction-association-update-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-customaction-create-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-customaction-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-customaction-update-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-data-answer-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-data-liveboard-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-data-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-database-table-create-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-database-table-runquery-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-addgroup-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-addprivilege-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-adduser-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-create-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-removegroup-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-removeprivilege-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-removeuser-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-group-update-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-materialization-refreshview-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-dependency-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-detail-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-header-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-tag-create-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-tag-update-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-tml-export-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-metadata-tml-import-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-org-create-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-org-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-org-update-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-security-share-tsobject-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-security-share-visualization-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-user-addgroup-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-user-addorg-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-user-changepassword-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-user-removegroup-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-user-search-request.md delete mode 100644 Typescript/doc/models/tspublic-rest-v2-user-update-request.md delete mode 100644 Typescript/doc/models/type-1-enum.md delete mode 100644 Typescript/doc/models/type-10-enum.md delete mode 100644 Typescript/doc/models/type-13-enum.md delete mode 100644 Typescript/doc/models/type-14-enum.md delete mode 100644 Typescript/doc/models/type-15-enum.md delete mode 100644 Typescript/doc/models/type-16-enum.md delete mode 100644 Typescript/doc/models/type-18-enum.md delete mode 100644 Typescript/doc/models/type-2-enum.md delete mode 100644 Typescript/doc/models/type-3-enum.md delete mode 100644 Typescript/doc/models/type-4-enum.md delete mode 100644 Typescript/doc/models/type-5-enum.md delete mode 100644 Typescript/doc/models/type-6-enum.md delete mode 100644 Typescript/doc/models/type-7-enum.md delete mode 100644 Typescript/doc/models/type-8-enum.md delete mode 100644 Typescript/doc/models/type-9-enum.md delete mode 100644 Typescript/doc/models/type-enum.md delete mode 100644 Typescript/doc/models/user-name-and-id-input.md delete mode 100644 Typescript/doc/models/user-name-and-id.md delete mode 100644 Typescript/doc/models/user-response.md delete mode 100644 Typescript/doc/models/visibility-1-enum.md delete mode 100644 Typescript/doc/models/visibility-2-enum.md delete mode 100644 Typescript/doc/models/visibility-enum.md delete mode 100644 Typescript/doc/models/viz-type.md delete mode 100644 Typescript/jest.config.js delete mode 100644 Typescript/src/authentication.ts delete mode 100644 Typescript/src/client.ts delete mode 100644 Typescript/src/clientInterface.ts delete mode 100644 Typescript/src/configuration.ts delete mode 100644 Typescript/src/controllers/adminController.ts delete mode 100644 Typescript/src/controllers/baseController.ts delete mode 100644 Typescript/src/controllers/connectionController.ts delete mode 100644 Typescript/src/controllers/customActionsController.ts delete mode 100644 Typescript/src/controllers/dataController.ts delete mode 100644 Typescript/src/controllers/databaseController.ts delete mode 100644 Typescript/src/controllers/groupController.ts delete mode 100644 Typescript/src/controllers/logsController.ts delete mode 100644 Typescript/src/controllers/materializationController.ts delete mode 100644 Typescript/src/controllers/metadataController.ts delete mode 100644 Typescript/src/controllers/orgController.ts delete mode 100644 Typescript/src/controllers/reportController.ts delete mode 100644 Typescript/src/controllers/securityController.ts delete mode 100644 Typescript/src/controllers/sessionController.ts delete mode 100644 Typescript/src/controllers/userController.ts delete mode 100644 Typescript/src/core.ts delete mode 100644 Typescript/src/defaultConfiguration.ts delete mode 100644 Typescript/src/errors/errorResponseError.ts delete mode 100644 Typescript/src/http/xmlSerialization.ts delete mode 100644 Typescript/src/index.ts delete mode 100644 Typescript/src/models/accessEnum.ts delete mode 100644 Typescript/src/models/accessLevelEnum.ts delete mode 100644 Typescript/src/models/accessLevelInput.ts delete mode 100644 Typescript/src/models/addTableInput.ts delete mode 100644 Typescript/src/models/adminsyncPrincipalResponse.ts delete mode 100644 Typescript/src/models/answerQueryResponse.ts delete mode 100644 Typescript/src/models/clientState.ts delete mode 100644 Typescript/src/models/columnsInput.ts delete mode 100644 Typescript/src/models/connectionColumn.ts delete mode 100644 Typescript/src/models/connectionColumnsShema.ts delete mode 100644 Typescript/src/models/connectionDatabaseType.ts delete mode 100644 Typescript/src/models/connectionResponse.ts delete mode 100644 Typescript/src/models/connectionTableColumnsInput.ts delete mode 100644 Typescript/src/models/connectionTableColumnsResponse.ts delete mode 100644 Typescript/src/models/connectionTableResponse.ts delete mode 100644 Typescript/src/models/connectionTableSchema.ts delete mode 100644 Typescript/src/models/createConnectionResponse.ts delete mode 100644 Typescript/src/models/createTableResponse.ts delete mode 100644 Typescript/src/models/dependentPermission.ts delete mode 100644 Typescript/src/models/formatType3Enum.ts delete mode 100644 Typescript/src/models/formatTypeEnum.ts delete mode 100644 Typescript/src/models/fromUserNameAndIDInput.ts delete mode 100644 Typescript/src/models/groupNameAndID.ts delete mode 100644 Typescript/src/models/groupNameAndIDInput.ts delete mode 100644 Typescript/src/models/groupPermission.ts delete mode 100644 Typescript/src/models/groupResponse.ts delete mode 100644 Typescript/src/models/homeLiveboardResponse.ts delete mode 100644 Typescript/src/models/importPolicyEnum.ts delete mode 100644 Typescript/src/models/liveboardNameAndID.ts delete mode 100644 Typescript/src/models/liveboardQueryResponse.ts delete mode 100644 Typescript/src/models/logicalTableHeader.ts delete mode 100644 Typescript/src/models/logsResponse.ts delete mode 100644 Typescript/src/models/metadataTagResponse.ts delete mode 100644 Typescript/src/models/nameAndIdInput.ts delete mode 100644 Typescript/src/models/orgType.ts delete mode 100644 Typescript/src/models/orgsResponse.ts delete mode 100644 Typescript/src/models/orientationEnum.ts delete mode 100644 Typescript/src/models/pdfOptionsInput.ts delete mode 100644 Typescript/src/models/permissionsTypeSearch.ts delete mode 100644 Typescript/src/models/pinboardDetails.ts delete mode 100644 Typescript/src/models/principalSearchResponse.ts delete mode 100644 Typescript/src/models/privilegeEnum.ts delete mode 100644 Typescript/src/models/secuirityDependents.ts delete mode 100644 Typescript/src/models/securityPermission.ts delete mode 100644 Typescript/src/models/securityPermissionResponse.ts delete mode 100644 Typescript/src/models/sessionLoginResponse.ts delete mode 100644 Typescript/src/models/sortBy1Enum.ts delete mode 100644 Typescript/src/models/sortByEnum.ts delete mode 100644 Typescript/src/models/sortOrder1Enum.ts delete mode 100644 Typescript/src/models/sortOrderEnum.ts delete mode 100644 Typescript/src/models/state1Enum.ts delete mode 100644 Typescript/src/models/stateEnum.ts delete mode 100644 Typescript/src/models/tableColumns.ts delete mode 100644 Typescript/src/models/tableInput.ts delete mode 100644 Typescript/src/models/tableList.ts delete mode 100644 Typescript/src/models/tagNameAndID.ts delete mode 100644 Typescript/src/models/tagNameAndIdInput.ts delete mode 100644 Typescript/src/models/toUserNameAndIDInput.ts delete mode 100644 Typescript/src/models/topicEnum.ts delete mode 100644 Typescript/src/models/tsObjectInput.ts delete mode 100644 Typescript/src/models/tsObjectSearchInput.ts delete mode 100644 Typescript/src/models/tsObjectTypeSerach.ts delete mode 100644 Typescript/src/models/tspublicRestV2AdminAssignauthorRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2AdminChangeauthorRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2AdminConfigurationUpdateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2AdminForcelogoutRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2AdminResetpasswordRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2AdminSyncprincipalRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2ConnectionAddtableRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2ConnectionCreateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2ConnectionRemovetableRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2ConnectionSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2ConnectionTableRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2ConnectionTablecoloumnRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2ConnectionUpdateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2CustomactionAssociationUpdateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2CustomactionCreateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2CustomactionSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2CustomactionUpdateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2DataAnswerRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2DataLiveboardRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2DataSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2DatabaseTableCreateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2DatabaseTableRunqueryRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupAddgroupRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupAddprivilegeRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupAdduserRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupCreateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupRemovegroupRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupRemoveprivilegeRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupRemoveuserRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2GroupUpdateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MaterializationRefreshviewRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataDependencyRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataDetailSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataFavoriteAssignRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataFavoriteUnassignRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataHeaderSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataHomeliveboardAssignRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataHomeliveboardUnassignRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataTagAssignRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataTagCreateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataTagUnassignRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataTagUpdateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataTmlExportRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2MetadataTmlImportRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2OrgCreateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2OrgSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2OrgUpdateRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2SecurityPermissionPrincipalSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2SecurityPermissionTsobjectSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2SecurityShareTsobjectRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2SecurityShareVisualizationRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2UserAddgroupRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2UserAddorgRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2UserChangepasswordRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2UserRemovegroupRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2UserSearchRequest.ts delete mode 100644 Typescript/src/models/tspublicRestV2UserUpdateRequest.ts delete mode 100644 Typescript/src/models/type10Enum.ts delete mode 100644 Typescript/src/models/type13Enum.ts delete mode 100644 Typescript/src/models/type14Enum.ts delete mode 100644 Typescript/src/models/type15Enum.ts delete mode 100644 Typescript/src/models/type16Enum.ts delete mode 100644 Typescript/src/models/type18Enum.ts delete mode 100644 Typescript/src/models/type1Enum.ts delete mode 100644 Typescript/src/models/type2Enum.ts delete mode 100644 Typescript/src/models/type3Enum.ts delete mode 100644 Typescript/src/models/type4Enum.ts delete mode 100644 Typescript/src/models/type5Enum.ts delete mode 100644 Typescript/src/models/type6Enum.ts delete mode 100644 Typescript/src/models/type7Enum.ts delete mode 100644 Typescript/src/models/type8Enum.ts delete mode 100644 Typescript/src/models/type9Enum.ts delete mode 100644 Typescript/src/models/typeEnum.ts delete mode 100644 Typescript/src/models/userNameAndID.ts delete mode 100644 Typescript/src/models/userNameAndIDInput.ts delete mode 100644 Typescript/src/models/userResponse.ts delete mode 100644 Typescript/src/models/visibility1Enum.ts delete mode 100644 Typescript/src/models/visibility2Enum.ts delete mode 100644 Typescript/src/models/visibilityEnum.ts delete mode 100644 Typescript/src/models/vizType.ts delete mode 100644 Typescript/src/schema.ts delete mode 100644 Typescript/tsconfig.json delete mode 100644 Typescript/tsdx.config.js delete mode 100644 openspecapi.json diff --git a/DotNet/LICENSE b/DotNet/LICENSE deleted file mode 100644 index c571aa529..000000000 --- a/DotNet/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -License: -======== -The MIT License (MIT) -http://opensource.org/licenses/MIT - -Copyright (c) 2014 - 2022 APIMATIC Limited - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Trade Mark: -========== -APIMATIC is a trade mark for APIMATIC Limited \ No newline at end of file diff --git a/DotNet/README.md b/DotNet/README.md deleted file mode 100644 index 44638e7f4..000000000 --- a/DotNet/README.md +++ /dev/null @@ -1,72 +0,0 @@ - -# Getting Started with ThoughtSpot Public REST API - -## Install the Package - -If you are building with .NET CLI tools then you can also use the following command: - -```bash -dotnet add package thoughtspot.rest.api.sdk --version 1.13.1 -``` - -## Test the SDK - -The generated SDK also contain one or more Tests, which are contained in the Tests project. In order to invoke these test cases, you will need `NUnit 3.0 Test Adapter Extension` for Visual Studio. Once the SDK is complied, the test cases should appear in the Test Explorer window. Here, you can click `Run All` to execute these test cases. - -## Initialize the API Client - -**_Note:_** Documentation for the client can be found [here.](doc/client.md) - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `BaseUrl` | `string` | *Default*: `"https://localhost:443"` | -| `Environment` | Environment | The API environment.
**Default: `Environment.Production`** | -| `Timeout` | `TimeSpan` | Http client timeout.
*Default*: `TimeSpan.FromSeconds(100)` | -| `AccessToken` | `string` | The OAuth 2.0 Access Token to use for API requests. | - -The API client can be initialized as follows: - -```csharp -ThoughtSpotPublicRESTAPI.Standard.ThoughtSpotPublicRESTAPIClient client = new ThoughtSpotPublicRESTAPI.Standard.ThoughtSpotPublicRESTAPIClient.Builder() - .AccessToken("AccessToken") - .Environment(ThoughtSpotPublicRESTAPI.Standard.Environment.Production) - .BaseUrl("https://localhost:443") - .HttpClientConfig(config => config.NumberOfRetries(0)) - .Build(); -``` - -## Authorization - -This API uses `OAuth 2 Bearer token`. - -## List of APIs - -* [User](doc/controllers/user.md) -* [Group](doc/controllers/group.md) -* [Metadata](doc/controllers/metadata.md) -* [Database](doc/controllers/database.md) -* [Connection](doc/controllers/connection.md) -* [Data](doc/controllers/data.md) -* [Logs](doc/controllers/logs.md) -* [Custom Actions](doc/controllers/custom-actions.md) -* [Security](doc/controllers/security.md) -* [Org](doc/controllers/org.md) -* [Session](doc/controllers/session.md) -* [Admin](doc/controllers/admin.md) -* [Report](doc/controllers/report.md) -* [Materialization](doc/controllers/materialization.md) - -## Classes Documentation - -* [Utility Classes](doc/utility-classes.md) -* [HttpRequest](doc/http-request.md) -* [HttpResponse](doc/http-response.md) -* [HttpStringResponse](doc/http-string-response.md) -* [HttpContext](doc/http-context.md) -* [HttpClientConfiguration](doc/http-client-configuration.md) -* [HttpClientConfiguration Builder](doc/http-client-configuration-builder.md) -* [IAuthManager](doc/i-auth-manager.md) -* [ApiException](doc/api-exception.md) - diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/BearerAuthManager.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/BearerAuthManager.cs deleted file mode 100644 index 3cc9e02aa..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/BearerAuthManager.cs +++ /dev/null @@ -1,62 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Authentication -{ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - -/// -/// BearerAuthManager. -/// -internal class BearerAuthManager : IBearerAuthCredentials, IAuthManager -{ - /// - /// Initializes a new instance of the class. - /// - /// accessToken. - public BearerAuthManager(string accessToken) - { - this.AccessToken = accessToken; - } - - /// - /// Gets string value for accessToken. - /// - public string AccessToken { get; } - - /// - /// Check if credentials match. - /// - /// The string value for credentials. - /// True if credentials matched. - public bool Equals(string accessToken) - { - return accessToken.Equals(this.AccessToken); - } - - /// - /// Adds authentication to the given HttpRequest. - /// - /// Http Request. - /// Returns the httpRequest after adding authentication. - public HttpRequest Apply(HttpRequest httpRequest) - { - httpRequest.Headers["Authorization"] = "Bearer " + this.AccessToken; - return httpRequest; - } - - /// - /// Adds authentication to the given HttpRequest. - /// - /// Http Request. - /// Returns the httpRequest after adding authentication. - public Task ApplyAsync(HttpRequest httpRequest) - { - httpRequest.Headers["Authorization"] = "Bearer " + this.AccessToken; - return Task.FromResult(httpRequest); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IAuthManager.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IAuthManager.cs deleted file mode 100644 index 9ec7bec53..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IAuthManager.cs +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Authentication -{ - using System.Threading.Tasks; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - - /// - /// IAuthManager adds the authenticaion layer to the http calls. - /// - internal interface IAuthManager - { - /// - /// Add authentication information to the HTTP Request. - /// - /// The http request object on which authentication will be applied. - /// HttpRequest. - HttpRequest Apply(HttpRequest httpRequest); - - /// - /// Asynchronously add authentication information to the HTTP Request. - /// - /// The http request object on which authentication will be applied. - /// A representing the asynchronous operation. - Task ApplyAsync(HttpRequest httpRequest); - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IBearerAuthCredentials.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IBearerAuthCredentials.cs deleted file mode 100644 index 949289df7..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Authentication/IBearerAuthCredentials.cs +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Authentication -{ - using System; - - public interface IBearerAuthCredentials - { - /// - /// Gets string value for accessToken. - /// - string AccessToken { get; } - - /// - /// Returns true if credentials matched. - /// - /// The string value for credentials. - /// True if credentials matched. - bool Equals(string accessToken); - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/AdminController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/AdminController.cs deleted file mode 100644 index 28c515b4a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/AdminController.cs +++ /dev/null @@ -1,513 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// AdminController. - /// - public class AdminController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal AdminController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To update the Thoughtspot cluster configuration, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UpdateClusterConfig( - Models.TspublicRestV2AdminConfigurationUpdateRequest body) - { - Task t = this.RestapiV2UpdateClusterConfigAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To update the Thoughtspot cluster configuration, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UpdateClusterConfigAsync( - Models.TspublicRestV2AdminConfigurationUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/admin/configuration/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To reset the password of a ThoughtSpot user account, use this endpoint. . - /// It is mandatory to use Authorization header with token of a user with admin access to successfully run this endpoint. . - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2ResetUserPassword( - Models.TspublicRestV2AdminResetpasswordRequest body) - { - Task t = this.RestapiV2ResetUserPasswordAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To reset the password of a ThoughtSpot user account, use this endpoint. . - /// It is mandatory to use Authorization header with token of a user with admin access to successfully run this endpoint. . - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2ResetUserPasswordAsync( - Models.TspublicRestV2AdminResetpasswordRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/admin/resetpassword"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, use this endpoint. . - /// The payload takes principals containing all users and groups present in the external system. . - /// The users and user groups in Thoughtspot get updated for any matching inputs. . - /// Any user and user group present in the input, but not present in the cluster, gets created in cluster. . - /// n You can optionally choose to delete the user and groups from the cluster, that are not present in the input. - /// - /// Required parameter: Example: . - /// Returns the Models.AdminsyncPrincipalResponse response from the API call. - public Models.AdminsyncPrincipalResponse RestapiV2SyncPrincipal( - Models.TspublicRestV2AdminSyncprincipalRequest body) - { - Task t = this.RestapiV2SyncPrincipalAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, use this endpoint. . - /// The payload takes principals containing all users and groups present in the external system. . - /// The users and user groups in Thoughtspot get updated for any matching inputs. . - /// Any user and user group present in the input, but not present in the cluster, gets created in cluster. . - /// n You can optionally choose to delete the user and groups from the cluster, that are not present in the input. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.AdminsyncPrincipalResponse response from the API call. - public async Task RestapiV2SyncPrincipalAsync( - Models.TspublicRestV2AdminSyncprincipalRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/admin/syncprincipal"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To programmatically change the owner of one or several objects from one user account to another, use this endpoint. . - /// You might want to transfer ownership of objects owned by a user to another active user, when the account is removed from the ThoughtSpot application. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2ChangeAuthorOfObjects( - Models.TspublicRestV2AdminChangeauthorRequest body) - { - Task t = this.RestapiV2ChangeAuthorOfObjectsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically change the owner of one or several objects from one user account to another, use this endpoint. . - /// You might want to transfer ownership of objects owned by a user to another active user, when the account is removed from the ThoughtSpot application. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2ChangeAuthorOfObjectsAsync( - Models.TspublicRestV2AdminChangeauthorRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/admin/changeauthor"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically assign an author to one or several objects, use this endpoint. . - /// Provide either user name or id as input. When both are given user id will be considered. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AssignAuthorToObjects( - Models.TspublicRestV2AdminAssignauthorRequest body) - { - Task t = this.RestapiV2AssignAuthorToObjectsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically assign an author to one or several objects, use this endpoint. . - /// Provide either user name or id as input. When both are given user id will be considered. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AssignAuthorToObjectsAsync( - Models.TspublicRestV2AdminAssignauthorRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/admin/assignauthor"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To logout one or more users from logged in session, use this endpoint. If no input is provided then all logged in users are force logged out. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2ForceLogoutUsers( - Models.TspublicRestV2AdminForcelogoutRequest body) - { - Task t = this.RestapiV2ForceLogoutUsersAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To logout one or more users from logged in session, use this endpoint. If no input is provided then all logged in users are force logged out. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2ForceLogoutUsersAsync( - Models.TspublicRestV2AdminForcelogoutRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/admin/forcelogout"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/BaseController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/BaseController.cs deleted file mode 100644 index cc7ecc5c0..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/BaseController.cs +++ /dev/null @@ -1,137 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Text; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// The base class for all controller classes. - /// - public class BaseController - { - /// - /// HttpClient instance. - /// - private readonly IHttpClient httpClient; - private string internalUserAgent = string.Empty; - - - /// - /// Initializes a new instance of the class. - /// - /// Configuration for the API. - /// HTTP callback to catch before/after HTTP request/response events. - /// HttpClient for the API. - /// AuthManagers for the API. - internal BaseController( - IConfiguration config, - IHttpClient httpClient, - IDictionary authManagers, - HttpCallBack httpCallBack = null) - { - this.Config = config; - this.httpClient = httpClient; - this.AuthManagers = authManagers; - this.HttpCallBack = httpCallBack; - this.UpdateUserAgent(); - } - - /// - /// Gets AuthManager instance. - /// - internal IDictionary AuthManagers { get; } - - /// - /// Gets HttpCallBack instance. - /// - internal HttpCallBack HttpCallBack { get; } - - /// - /// Gets array deserialization format. - /// - protected ArrayDeserialization ArrayDeserializationFormat => ArrayDeserialization.Plain; - - /// - /// Gets configuration instance. - /// - protected IConfiguration Config { get; } - - /// - /// Gets User-Agent header value. - /// - protected string UserAgent => internalUserAgent; - - /// - /// Create JSON-encoded multipart content from input. - /// - /// input object. - /// Headers dictionary. - /// MultipartContent. - internal static MultipartContent CreateJsonEncodedMultipartContent(object input, Dictionary> headers) - { - if (input == null) - { - return null; - } - return new MultipartByteArrayContent(Encoding.ASCII.GetBytes(ApiHelper.JsonSerialize(input)), headers); - } - - /// - /// Create binary multipart content from file. - /// - /// FileStreamInfo object. - /// Headers dictionary. - /// MultipartContent. - internal static MultipartContent CreateFileMultipartContent(FileStreamInfo input, Dictionary> headers = null) - { - if (input == null) - { - return null; - } - if (headers == null) - { - return new MultipartFileContent(input); - } - return new MultipartFileContent(input, headers); - } - - /// - /// Get default HTTP client instance. - /// - /// IHttpClient. - internal IHttpClient GetClientInstance() - { - return this.httpClient; - } - - /// - /// Validates the response against HTTP errors defined at the API level. - /// - /// The response recieved. - /// Context of the request and the recieved response. - protected void ValidateResponse(HttpResponse response, HttpContext context) - { - // [200, 208] = HTTP OK - if ((response.StatusCode < 200) || (response.StatusCode > 208)) - { - throw new ApiException(@"HTTP Response Not OK", context); - } - } - /// - /// Adds runtime information to the placeholders in User-Agent. - /// - private void UpdateUserAgent() - { - internalUserAgent = "RestAPI V2 SDK"; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ConnectionController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ConnectionController.cs deleted file mode 100644 index 6918c96a6..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ConnectionController.cs +++ /dev/null @@ -1,828 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionController. - /// - public class ConnectionController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal ConnectionController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To get the details of a specific connection use this endpoint. - /// - /// Required parameter: The GUID of the connection to query. - /// Returns the Models.ConnectionResponse response from the API call. - public Models.ConnectionResponse RestapiV2GetConnection( - string id) - { - Task t = this.RestapiV2GetConnectionAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific connection use this endpoint. - /// - /// Required parameter: The GUID of the connection to query. - /// cancellationToken. - /// Returns the Models.ConnectionResponse response from the API call. - public async Task RestapiV2GetConnectionAsync( - string id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To get the list of databases for a connection, use this endpoint. . - /// The response will include databases from the data platform corresponding to the connection id provided. - /// - /// Required parameter: The GUID of the connection. - /// Returns the List of string response from the API call. - public List RestapiV2GetConnectionDatabase( - string id) - { - Task> t = this.RestapiV2GetConnectionDatabaseAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the list of databases for a connection, use this endpoint. . - /// The response will include databases from the data platform corresponding to the connection id provided. - /// - /// Required parameter: The GUID of the connection. - /// cancellationToken. - /// Returns the List of string response from the API call. - public async Task> RestapiV2GetConnectionDatabaseAsync( - string id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/database"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize>(response.Body); - } - - /// - /// To programmatically create a connection in the ThoughtSpot system use this API endpoint. - /// Using this API, you can create a connection and assign groups. - /// To create a connection, you require admin connection privileges. - /// All connections created in the ThoughtSpot system are added to ALL_GROUP. - /// - /// Required parameter: Example: . - /// Returns the Models.CreateConnectionResponse response from the API call. - public Models.CreateConnectionResponse RestapiV2CreateConnection( - Models.TspublicRestV2ConnectionCreateRequest body) - { - Task t = this.RestapiV2CreateConnectionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically create a connection in the ThoughtSpot system use this API endpoint. - /// Using this API, you can create a connection and assign groups. - /// To create a connection, you require admin connection privileges. - /// All connections created in the ThoughtSpot system are added to ALL_GROUP. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.CreateConnectionResponse response from the API call. - public async Task RestapiV2CreateConnectionAsync( - Models.TspublicRestV2ConnectionCreateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/create"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// You can use this endpoint to programmatically modify an existing connection. - /// To modify a connection, you require admin connection privileges. - /// At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered and connectionname will be updated. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UpdateConnection( - Models.TspublicRestV2ConnectionUpdateRequest body) - { - Task t = this.RestapiV2UpdateConnectionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// You can use this endpoint to programmatically modify an existing connection. - /// To modify a connection, you require admin connection privileges. - /// At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered and connectionname will be updated. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UpdateConnectionAsync( - Models.TspublicRestV2ConnectionUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To remove a connection from the ThoughtSpot system, use this endpoint. - /// - /// Required parameter: A JSON array of GUIDs of the connection. - /// Returns the bool response from the API call. - public bool RestapiV2DeleteConnection( - List id) - { - Task t = this.RestapiV2DeleteConnectionAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To remove a connection from the ThoughtSpot system, use this endpoint. - /// - /// Required parameter: A JSON array of GUIDs of the connection. - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2DeleteConnectionAsync( - List id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically add table to an existing connection use this endpoint. - /// When you assign groups to a connection, the connection inherits the privileges assigned to those groups. - /// At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AddTableToConnection( - Models.TspublicRestV2ConnectionAddtableRequest body) - { - Task t = this.RestapiV2AddTableToConnectionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically add table to an existing connection use this endpoint. - /// When you assign groups to a connection, the connection inherits the privileges assigned to those groups. - /// At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AddTableToConnectionAsync( - Models.TspublicRestV2ConnectionAddtableRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/addtable"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically remove a table from a connection use API endpoint. - /// The API removes only the connection association. It does not delete the connection or group from the Thoughtspot system. - /// At least one of id or name of connection is required. When both are given connection id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2RemoveTableFromConnection( - Models.TspublicRestV2ConnectionRemovetableRequest body) - { - Task t = this.RestapiV2RemoveTableFromConnectionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically remove a table from a connection use API endpoint. - /// The API removes only the connection association. It does not delete the connection or group from the Thoughtspot system. - /// At least one of id or name of connection is required. When both are given connection id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2RemoveTableFromConnectionAsync( - Models.TspublicRestV2ConnectionRemovetableRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/removetable"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To get the details of a specific connection or all connections in the ThoughtSpot system use this end point. - /// - /// Required parameter: Example: . - /// Returns the List of Models.ConnectionResponse response from the API call. - public List RestapiV2SearchConnection( - Models.TspublicRestV2ConnectionSearchRequest body) - { - Task> t = this.RestapiV2SearchConnectionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific connection or all connections in the ThoughtSpot system use this end point. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the List of Models.ConnectionResponse response from the API call. - public async Task> RestapiV2SearchConnectionAsync( - Models.TspublicRestV2ConnectionSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize>(response.Body); - } - - /// - /// To get the details of tables from a connection, use this endpoint. . - /// You can get the details of tables in the data platform for the connection id provided. - /// - /// Required parameter: Example: . - /// Returns the Models.ConnectionTableResponse response from the API call. - public Models.ConnectionTableResponse RestapiV2GetConnectionTables( - Models.TspublicRestV2ConnectionTableRequest body) - { - Task t = this.RestapiV2GetConnectionTablesAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of tables from a connection, use this endpoint. . - /// You can get the details of tables in the data platform for the connection id provided. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.ConnectionTableResponse response from the API call. - public async Task RestapiV2GetConnectionTablesAsync( - Models.TspublicRestV2ConnectionTableRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/table"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To get the details of columns in a table associated to a connection, use this endpoint. . - /// You can get the columns of any table available in the data platform for the connection id provided. - /// - /// Required parameter: Example: . - /// Returns the Models.ConnectionTableColumnsResponse response from the API call. - public Models.ConnectionTableColumnsResponse RestapiV2GetConnectionTableColumns( - Models.TspublicRestV2ConnectionTablecoloumnRequest body) - { - Task t = this.RestapiV2GetConnectionTableColumnsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of columns in a table associated to a connection, use this endpoint. . - /// You can get the columns of any table available in the data platform for the connection id provided. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.ConnectionTableColumnsResponse response from the API call. - public async Task RestapiV2GetConnectionTableColumnsAsync( - Models.TspublicRestV2ConnectionTablecoloumnRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/connection/tablecoloumn"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/CustomActionsController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/CustomActionsController.cs deleted file mode 100644 index 3ec797ccd..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/CustomActionsController.cs +++ /dev/null @@ -1,668 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// CustomActionsController. - /// - public class CustomActionsController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal CustomActionsController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// Returns the object response from the API call. - public object RestapiV2GetCustomAction( - string id) - { - Task t = this.RestapiV2GetCustomActionAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2GetCustomActionAsync( - string id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customaction"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To search custom actions available on a ThoughtSpot instance, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2SearchCustomAction( - Models.TspublicRestV2CustomactionSearchRequest body) - { - Task t = this.RestapiV2SearchCustomActionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To search custom actions available on a ThoughtSpot instance, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2SearchCustomActionAsync( - Models.TspublicRestV2CustomactionSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customaction/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the details of the ThoughtSpot objects associated with a custom action, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// Returns the object response from the API call. - public object RestapiV2GetCustomActionAssociation( - string id) - { - Task t = this.RestapiV2GetCustomActionAssociationAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the details of the ThoughtSpot objects associated with a custom action, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2GetCustomActionAssociationAsync( - string id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customaction/association"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2CreateCustomAction( - Models.TspublicRestV2CustomactionCreateRequest body) - { - Task t = this.RestapiV2CreateCustomActionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2CreateCustomActionAsync( - Models.TspublicRestV2CustomactionCreateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customaction/create"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To programmatically edit an existing custom action, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2UpdateCustomAction( - Models.TspublicRestV2CustomactionUpdateRequest body) - { - Task t = this.RestapiV2UpdateCustomActionAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically edit an existing custom action, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2UpdateCustomActionAsync( - Models.TspublicRestV2CustomactionUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customaction/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To programmatically delete a custom action, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// Returns the object response from the API call. - public object RestapiV2DeleteCustomAction( - string id) - { - Task t = this.RestapiV2DeleteCustomActionAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically delete a custom action, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2DeleteCustomActionAsync( - string id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customaction/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To programmatically associate a custom action to a ThoughtSpot object, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2UpdateCustomActionAssociation( - Models.TspublicRestV2CustomactionAssociationUpdateRequest body) - { - Task t = this.RestapiV2UpdateCustomActionAssociationAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically associate a custom action to a ThoughtSpot object, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2UpdateCustomActionAssociationAsync( - Models.TspublicRestV2CustomactionAssociationUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customaction/association/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To remove custom action associations to ThoughtSpot objects, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// Required parameter: A JSON map of the attributes with association of the action to ThoughtSpot object ID Example: {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]}. - /// Returns the object response from the API call. - public object RestapiV2DeleteCustomActionAssociation( - string id, - string association) - { - Task t = this.RestapiV2DeleteCustomActionAssociationAsync(id, association); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To remove custom action associations to ThoughtSpot objects, use this endpoint. - /// - /// Required parameter: GUID of the custom action. - /// Required parameter: A JSON map of the attributes with association of the action to ThoughtSpot object ID Example: {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]}. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2DeleteCustomActionAssociationAsync( - string id, - string association, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - if (association == null) - { - throw new ArgumentNullException("association", "The parameter \"association\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/customactions/association/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - { "association", association }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DataController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DataController.cs deleted file mode 100644 index 46b0a18a7..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DataController.cs +++ /dev/null @@ -1,431 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// DataController. - /// - public class DataController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal DataController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2SearchQueryData( - Models.TspublicRestV2DataSearchRequest body) - { - Task t = this.RestapiV2SearchQueryDataAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2SearchQueryDataAsync( - Models.TspublicRestV2DataSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/data/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2LiveboardData( - Models.TspublicRestV2DataLiveboardRequest body) - { - Task t = this.RestapiV2LiveboardDataAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2LiveboardDataAsync( - Models.TspublicRestV2DataLiveboardRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/data/liveboard"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2AnswerData( - Models.TspublicRestV2DataAnswerRequest body) - { - Task t = this.RestapiV2AnswerDataAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2AnswerDataAsync( - Models.TspublicRestV2DataAnswerRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/data/answer"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To retrieve the query SQL related to an Answer that is run on the data platform, you can use this endpoint. - /// - /// Required parameter: The GUID of the Answer. - /// Returns the Models.AnswerQueryResponse response from the API call. - public Models.AnswerQueryResponse RestapiV2AnswerQuerySql( - string id) - { - Task t = this.RestapiV2AnswerQuerySqlAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To retrieve the query SQL related to an Answer that is run on the data platform, you can use this endpoint. - /// - /// Required parameter: The GUID of the Answer. - /// cancellationToken. - /// Returns the Models.AnswerQueryResponse response from the API call. - public async Task RestapiV2AnswerQuerySqlAsync( - string id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/data/answer/querysql"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, you can use this endpoint. - /// - /// Required parameter: The GUID of the Answer. - /// Optional parameter: A JSON array of GUIDs of the visualizations in the Liveboard.. - /// Returns the Models.LiveboardQueryResponse response from the API call. - public Models.LiveboardQueryResponse RestapiV2LiveboardQuerySql( - string id, - List vizId = null) - { - Task t = this.RestapiV2LiveboardQuerySqlAsync(id, vizId); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, you can use this endpoint. - /// - /// Required parameter: The GUID of the Answer. - /// Optional parameter: A JSON array of GUIDs of the visualizations in the Liveboard.. - /// cancellationToken. - /// Returns the Models.LiveboardQueryResponse response from the API call. - public async Task RestapiV2LiveboardQuerySqlAsync( - string id, - List vizId = null, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/data/liveboard/querysql"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - { "vizId", vizId }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DatabaseController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DatabaseController.cs deleted file mode 100644 index afdfb1946..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/DatabaseController.cs +++ /dev/null @@ -1,455 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// DatabaseController. - /// - public class DatabaseController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal DatabaseController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To list all the schemas in a database in Falcon, use this endpoint. - /// - /// Required parameter: Name of the Falcon database. - /// Returns the List of string response from the API call. - public List RestapiV2GetSchemas( - string database) - { - Task> t = this.RestapiV2GetSchemasAsync(database); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To list all the schemas in a database in Falcon, use this endpoint. - /// - /// Required parameter: Name of the Falcon database. - /// cancellationToken. - /// Returns the List of string response from the API call. - public async Task> RestapiV2GetSchemasAsync( - string database, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (database == null) - { - throw new ArgumentNullException("database", "The parameter \"database\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/database/schema"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "database", database }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize>(response.Body); - } - - /// - /// To list all the tables in a schema of a database in Falcon, use this endpoint. - /// - /// Required parameter: Name of the Falcon database. - /// Required parameter: Name of the schema in Falcon database. - /// Returns the List of string response from the API call. - public List RestapiV2GetTables( - string database, - string schema) - { - Task> t = this.RestapiV2GetTablesAsync(database, schema); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To list all the tables in a schema of a database in Falcon, use this endpoint. - /// - /// Required parameter: Name of the Falcon database. - /// Required parameter: Name of the schema in Falcon database. - /// cancellationToken. - /// Returns the List of string response from the API call. - public async Task> RestapiV2GetTablesAsync( - string database, - string schema, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (database == null) - { - throw new ArgumentNullException("database", "The parameter \"database\" is a required parameter and cannot be null."); - } - - if (schema == null) - { - throw new ArgumentNullException("schema", "The parameter \"schema\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/database/table"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "database", database }, - { "schema", schema }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize>(response.Body); - } - - /// - /// Note: This endpoint is applicable only for on-prem deployments. . - /// To provide details of a table in a schema of a database in Falcon, use this endpoint. - /// - /// Required parameter: Name of the Falcon database. - /// Required parameter: Name of the table in Falcon database. - /// Optional parameter: Name of the schema in Falcon database. - /// Returns the object response from the API call. - public object RestapiV2GetTableDetails( - string database, - string table, - string schema = null) - { - Task t = this.RestapiV2GetTableDetailsAsync(database, table, schema); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Note: This endpoint is applicable only for on-prem deployments. . - /// To provide details of a table in a schema of a database in Falcon, use this endpoint. - /// - /// Required parameter: Name of the Falcon database. - /// Required parameter: Name of the table in Falcon database. - /// Optional parameter: Name of the schema in Falcon database. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2GetTableDetailsAsync( - string database, - string table, - string schema = null, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (database == null) - { - throw new ArgumentNullException("database", "The parameter \"database\" is a required parameter and cannot be null."); - } - - if (table == null) - { - throw new ArgumentNullException("table", "The parameter \"table\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/database/table/detail"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "database", database }, - { "table", table }, - { "schema", schema }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To create a table in Falcon, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the Models.CreateTableResponse response from the API call. - public Models.CreateTableResponse RestapiV2CreateTable( - Models.TspublicRestV2DatabaseTableCreateRequest body) - { - Task t = this.RestapiV2CreateTableAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To create a table in Falcon, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.CreateTableResponse response from the API call. - public async Task RestapiV2CreateTableAsync( - Models.TspublicRestV2DatabaseTableCreateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/database/table/create"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To run a TQL statement in Falcon, use this endpoint. You can run only following type of statements - Table DDL alter and Table rows update and delete. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2RunQuery( - Models.TspublicRestV2DatabaseTableRunqueryRequest body) - { - Task t = this.RestapiV2RunQueryAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To run a TQL statement in Falcon, use this endpoint. You can run only following type of statements - Table DDL alter and Table rows update and delete. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2RunQueryAsync( - Models.TspublicRestV2DatabaseTableRunqueryRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/database/table/runquery"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/GroupController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/GroupController.cs deleted file mode 100644 index e40849a1b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/GroupController.cs +++ /dev/null @@ -1,882 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// GroupController. - /// - public class GroupController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal GroupController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To get the details of a specific group by name or id, use this endpoint. - /// At Least one value needed. When both are given id will be considered to fetch user information. - /// - /// Optional parameter: Name of the group. - /// Optional parameter: The GUID of the group to query.. - /// Returns the Models.GroupResponse response from the API call. - public Models.GroupResponse RestapiV2GetGroup( - string name = null, - string id = null) - { - Task t = this.RestapiV2GetGroupAsync(name, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific group by name or id, use this endpoint. - /// At Least one value needed. When both are given id will be considered to fetch user information. - /// - /// Optional parameter: Name of the group. - /// Optional parameter: The GUID of the group to query.. - /// cancellationToken. - /// Returns the Models.GroupResponse response from the API call. - public async Task RestapiV2GetGroupAsync( - string name = null, - string id = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using this API, you can create a group and assign privileges and users. For ease of user management and access control, ThoughtSpot administrators can create groups and assign privileges to these groups. The privileges determine the actions that the users belonging to a group are allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the ALL_GROUP or remove members from it. - /// - /// Required parameter: Example: . - /// Returns the Models.GroupResponse response from the API call. - public Models.GroupResponse RestapiV2CreateGroup( - Models.TspublicRestV2GroupCreateRequest body) - { - Task t = this.RestapiV2CreateGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using this API, you can create a group and assign privileges and users. For ease of user management and access control, ThoughtSpot administrators can create groups and assign privileges to these groups. The privileges determine the actions that the users belonging to a group are allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the ALL_GROUP or remove members from it. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.GroupResponse response from the API call. - public async Task RestapiV2CreateGroupAsync( - Models.TspublicRestV2GroupCreateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/create"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// You can use this endpoint to programmatically modify an existing user account. - /// To modify a user, you require admin user privileges. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UpdateGroup( - Models.TspublicRestV2GroupUpdateRequest body) - { - Task t = this.RestapiV2UpdateGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// You can use this endpoint to programmatically modify an existing user account. - /// To modify a user, you require admin user privileges. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UpdateGroupAsync( - Models.TspublicRestV2GroupUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information. - /// - /// Optional parameter: Name of the group.. - /// Optional parameter: The GUID of the group. - /// Returns the bool response from the API call. - public bool RestapiV2DeleteGroup( - string name = null, - string id = null) - { - Task t = this.RestapiV2DeleteGroupAsync(name, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information. - /// - /// Optional parameter: Name of the group.. - /// Optional parameter: The GUID of the group. - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2DeleteGroupAsync( - string name = null, - string id = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically add privileges to an existing group, use API endpoint. - /// When you assign privileges to a group, all the users under to this group inherits the privileges assigned to that group. - /// At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AddPrivilegesToGroup( - Models.TspublicRestV2GroupAddprivilegeRequest body) - { - Task t = this.RestapiV2AddPrivilegesToGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically add privileges to an existing group, use API endpoint. - /// When you assign privileges to a group, all the users under to this group inherits the privileges assigned to that group. - /// At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AddPrivilegesToGroupAsync( - Models.TspublicRestV2GroupAddprivilegeRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/addprivilege"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically remove privileges from a group, use API endpoint. The API removes only the privilege association. It does not delete the privilege or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2RemovePrivilegesFromGroup( - Models.TspublicRestV2GroupRemoveprivilegeRequest body) - { - Task t = this.RestapiV2RemovePrivilegesFromGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically remove privileges from a group, use API endpoint. The API removes only the privilege association. It does not delete the privilege or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2RemovePrivilegesFromGroupAsync( - Models.TspublicRestV2GroupRemoveprivilegeRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/removeprivilege"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When you assign users to a group, the users inherits the privileges assigned to that group. At least one of id or name of the group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AddUsersToGroup( - Models.TspublicRestV2GroupAdduserRequest body) - { - Task t = this.RestapiV2AddUsersToGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When you assign users to a group, the users inherits the privileges assigned to that group. At least one of id or name of the group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AddUsersToGroupAsync( - Models.TspublicRestV2GroupAdduserRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/adduser"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically remove users from a group, use API endpoint.The API removes only the user association. It does not delete the users or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2RemoveUsersFromGroup( - Models.TspublicRestV2GroupRemoveuserRequest body) - { - Task t = this.RestapiV2RemoveUsersFromGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically remove users from a group, use API endpoint.The API removes only the user association. It does not delete the users or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2RemoveUsersFromGroupAsync( - Models.TspublicRestV2GroupRemoveuserRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/removeuser"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically add existing groups to a group, use API endpoint. When you assign groups to a group, the group inherits the privileges assigned to those groups. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AddGroupsToGroup( - Models.TspublicRestV2GroupAddgroupRequest body) - { - Task t = this.RestapiV2AddGroupsToGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically add existing groups to a group, use API endpoint. When you assign groups to a group, the group inherits the privileges assigned to those groups. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AddGroupsToGroupAsync( - Models.TspublicRestV2GroupAddgroupRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/addgroup"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically remove groups from a group, use API endpoint.The API removes only the group association. It does not delete the group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2RemoveGroupsFromGroup( - Models.TspublicRestV2GroupRemovegroupRequest body) - { - Task t = this.RestapiV2RemoveGroupsFromGroupAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically remove groups from a group, use API endpoint.The API removes only the group association. It does not delete the group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2RemoveGroupsFromGroupAsync( - Models.TspublicRestV2GroupRemovegroupRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/removegroup"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To get the details of a specific group account or all groups in the ThoughtSpot system, use this end point. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2SearchGroups( - Models.TspublicRestV2GroupSearchRequest body) - { - Task t = this.RestapiV2SearchGroupsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific group account or all groups in the ThoughtSpot system, use this end point. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2SearchGroupsAsync( - Models.TspublicRestV2GroupSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/group/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/LogsController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/LogsController.cs deleted file mode 100644 index 64294795a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/LogsController.cs +++ /dev/null @@ -1,132 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// LogsController. - /// - public class LogsController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal LogsController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// Note: This endpoint is applicable only for SAAS deployments. . - /// The ThoughtSpot log streaming service API allows you to programmatically get a security audit event log from the ThoughtSpot system. . - /// To use this API, make sure you have admin user privileges. . - /// ThoughtSpot cloud deployments allow you to collect security audit events and send them to your Security information and event management (SIEM) application in real-time. . - /// These events can help your security operations personnel to detect potential security threats or compromised user accounts in your organization. - /// - /// Required parameter: Type of the log. - /// Optional parameter: The EPOCH time in milliseconds to set the start time for streaming logs. Example: To set the timestamp as June 1, 2021 8 am, specify 1622534400000.. - /// Optional parameter: The EPOCH time in milliseconds to set the end time for streaming logs. Example: To set the timestamp as July 1, 2021, 8 am, specify 1625126400000.. - /// Returns the Models.LogsResponse response from the API call. - public Models.LogsResponse RestapiV2GetLogEvents( - Models.TopicEnum topic, - string fromEpoch = null, - string toEpoch = null) - { - Task t = this.RestapiV2GetLogEventsAsync(topic, fromEpoch, toEpoch); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Note: This endpoint is applicable only for SAAS deployments. . - /// The ThoughtSpot log streaming service API allows you to programmatically get a security audit event log from the ThoughtSpot system. . - /// To use this API, make sure you have admin user privileges. . - /// ThoughtSpot cloud deployments allow you to collect security audit events and send them to your Security information and event management (SIEM) application in real-time. . - /// These events can help your security operations personnel to detect potential security threats or compromised user accounts in your organization. - /// - /// Required parameter: Type of the log. - /// Optional parameter: The EPOCH time in milliseconds to set the start time for streaming logs. Example: To set the timestamp as June 1, 2021 8 am, specify 1622534400000.. - /// Optional parameter: The EPOCH time in milliseconds to set the end time for streaming logs. Example: To set the timestamp as July 1, 2021, 8 am, specify 1625126400000.. - /// cancellationToken. - /// Returns the Models.LogsResponse response from the API call. - public async Task RestapiV2GetLogEventsAsync( - Models.TopicEnum topic, - string fromEpoch = null, - string toEpoch = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/logs/events"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "topic", ApiHelper.JsonSerialize(topic).Trim('\"') }, - { "fromEpoch", fromEpoch }, - { "toEpoch", toEpoch }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MaterializationController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MaterializationController.cs deleted file mode 100644 index f6be82008..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MaterializationController.cs +++ /dev/null @@ -1,118 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// MaterializationController. - /// - public class MaterializationController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal MaterializationController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// Use this endpoint to refresh data in the materialized view by running the query associated with it. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2RefreshMaterializedView( - Models.TspublicRestV2MaterializationRefreshviewRequest body) - { - Task t = this.RestapiV2RefreshMaterializedViewAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Use this endpoint to refresh data in the materialized view by running the query associated with it. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2RefreshMaterializedViewAsync( - Models.TspublicRestV2MaterializationRefreshviewRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/materialization/refreshview"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MetadataController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MetadataController.cs deleted file mode 100644 index c771d5591..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/MetadataController.cs +++ /dev/null @@ -1,1584 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// MetadataController. - /// - public class MetadataController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal MetadataController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Optional parameter: Name of the tag. - /// Optional parameter: The GUID of the tag. - /// Returns the Models.MetadataTagResponse response from the API call. - public Models.MetadataTagResponse RestapiV2GetTag( - string name = null, - string id = null) - { - Task t = this.RestapiV2GetTagAsync(name, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Optional parameter: Name of the tag. - /// Optional parameter: The GUID of the tag. - /// cancellationToken. - /// Returns the Models.MetadataTagResponse response from the API call. - public async Task RestapiV2GetTagAsync( - string name = null, - string id = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tag"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Optional parameter: Name of the tag. - /// Optional parameter: The GUID of the tag. - /// Returns the Models.HomeLiveboardResponse response from the API call. - public Models.HomeLiveboardResponse RestapiV2GetHomeLiveboard( - string userName = null, - string userId = null) - { - Task t = this.RestapiV2GetHomeLiveboardAsync(userName, userId); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Optional parameter: Name of the tag. - /// Optional parameter: The GUID of the tag. - /// cancellationToken. - /// Returns the Models.HomeLiveboardResponse response from the API call. - public async Task RestapiV2GetHomeLiveboardAsync( - string userName = null, - string userId = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/homeliveboard"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "userName", userName }, - { "userId", userId }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To get header details for metadata objects, use this endpoint. You can provide as input selective fields to get the data for. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2SearchObjectHeader( - Models.TspublicRestV2MetadataHeaderSearchRequest body) - { - Task t = this.RestapiV2SearchObjectHeaderAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get header details for metadata objects, use this endpoint. You can provide as input selective fields to get the data for. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2SearchObjectHeaderAsync( - Models.TspublicRestV2MetadataHeaderSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/header/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// Use this endpoint to get header details of visualization charts for a given liveboard or answer. At least one of id or name of liveboard or answer is required. When both are given, then id will be considered. - /// - /// Required parameter: The GUID of the liveboard or answer. - /// Returns the object response from the API call. - public object RestapiV2GetObjectVisualizationHeader( - string id) - { - Task t = this.RestapiV2GetObjectVisualizationHeaderAsync(id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Use this endpoint to get header details of visualization charts for a given liveboard or answer. At least one of id or name of liveboard or answer is required. When both are given, then id will be considered. - /// - /// Required parameter: The GUID of the liveboard or answer. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2GetObjectVisualizationHeaderAsync( - string id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/vizheader"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// Use this endpoint to get full details of metadata objects. - /// - /// Required parameter: Type of the metadata object being searched.. - /// Required parameter: A JSON array of GUIDs of the objects.. - /// Returns the object response from the API call. - public object RestapiV2GetObjectDetail( - Models.Type4Enum type, - List id) - { - Task t = this.RestapiV2GetObjectDetailAsync(type, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Use this endpoint to get full details of metadata objects. - /// - /// Required parameter: Type of the metadata object being searched.. - /// Required parameter: A JSON array of GUIDs of the objects.. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2GetObjectDetailAsync( - Models.Type4Enum type, - List id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/detail"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "type", ApiHelper.JsonSerialize(type).Trim('\"') }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To get header detail of a metadata object, use this endpoint. You can provide as input selective fields to get the data for. - /// - /// Required parameter: Type of the metadata object being searched.. - /// Required parameter: GUID of the metadata object. - /// Optional parameter: Array of header field names that need to be included in the header response. - /// Returns the object response from the API call. - public object RestapiV2GetObjectHeader( - Models.Type5Enum type, - string id, - List outputFields = null) - { - Task t = this.RestapiV2GetObjectHeaderAsync(type, id, outputFields); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get header detail of a metadata object, use this endpoint. You can provide as input selective fields to get the data for. - /// - /// Required parameter: Type of the metadata object being searched.. - /// Required parameter: GUID of the metadata object. - /// Optional parameter: Array of header field names that need to be included in the header response. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2GetObjectHeaderAsync( - Models.Type5Enum type, - string id, - List outputFields = null, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/header"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "type", ApiHelper.JsonSerialize(type).Trim('\"') }, - { "id", id }, - { "outputFields", outputFields }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// Use this endpoint to get full details of metadata objects. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2SearchObjectDetail( - Models.TspublicRestV2MetadataDetailSearchRequest body) - { - Task t = this.RestapiV2SearchObjectDetailAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Use this endpoint to get full details of metadata objects. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2SearchObjectDetailAsync( - Models.TspublicRestV2MetadataDetailSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/detail/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To programmatically create tags, use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the Models.MetadataTagResponse response from the API call. - public Models.MetadataTagResponse RestapiV2CreateTag( - Models.TspublicRestV2MetadataTagCreateRequest body) - { - Task t = this.RestapiV2CreateTagAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically create tags, use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.MetadataTagResponse response from the API call. - public async Task RestapiV2CreateTagAsync( - Models.TspublicRestV2MetadataTagCreateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tag/create"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To programmatically update tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UpdateTag( - Models.TspublicRestV2MetadataTagUpdateRequest body) - { - Task t = this.RestapiV2UpdateTagAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically update tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UpdateTagAsync( - Models.TspublicRestV2MetadataTagUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tag/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Optional parameter: Name of the tag. - /// Optional parameter: The GUID of the tag. - /// Returns the bool response from the API call. - public bool RestapiV2DeleteTag( - string name = null, - string id = null) - { - Task t = this.RestapiV2DeleteTagAsync(name, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Optional parameter: Name of the tag. - /// Optional parameter: The GUID of the tag. - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2DeleteTagAsync( - string name = null, - string id = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tag/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AssignTag( - Models.TspublicRestV2MetadataTagAssignRequest body) - { - Task t = this.RestapiV2AssignTagAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AssignTagAsync( - Models.TspublicRestV2MetadataTagAssignRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tag/assign"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UnassignTag( - Models.TspublicRestV2MetadataTagUnassignRequest body) - { - Task t = this.RestapiV2UnassignTagAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UnassignTagAsync( - Models.TspublicRestV2MetadataTagUnassignRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tag/unassign"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically assign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AssignFavorite( - Models.TspublicRestV2MetadataFavoriteAssignRequest body) - { - Task t = this.RestapiV2AssignFavoriteAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically assign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AssignFavoriteAsync( - Models.TspublicRestV2MetadataFavoriteAssignRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/favorite/assign"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically unassign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UnassignFavorite( - Models.TspublicRestV2MetadataFavoriteUnassignRequest body) - { - Task t = this.RestapiV2UnassignFavoriteAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically unassign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UnassignFavoriteAsync( - Models.TspublicRestV2MetadataFavoriteUnassignRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/favorite/unassign"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AssignHomeLiveboard( - Models.TspublicRestV2MetadataHomeliveboardAssignRequest body) - { - Task t = this.RestapiV2AssignHomeLiveboardAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AssignHomeLiveboardAsync( - Models.TspublicRestV2MetadataHomeliveboardAssignRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/homeliveboard/assign"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To unassign the home liveboard set for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UnassignHomeLiveboard( - Models.TspublicRestV2MetadataHomeliveboardUnassignRequest body) - { - Task t = this.RestapiV2UnassignHomeLiveboardAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To unassign the home liveboard set for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UnassignHomeLiveboardAsync( - Models.TspublicRestV2MetadataHomeliveboardUnassignRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/homeliveboard/unassign"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2ExportObjectTML( - Models.TspublicRestV2MetadataTmlExportRequest body) - { - Task t = this.RestapiV2ExportObjectTMLAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2ExportObjectTMLAsync( - Models.TspublicRestV2MetadataTmlExportRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tml/export"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2ImportObjectTML( - Models.TspublicRestV2MetadataTmlImportRequest body) - { - Task t = this.RestapiV2ImportObjectTMLAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2ImportObjectTMLAsync( - Models.TspublicRestV2MetadataTmlImportRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/tml/import"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// Use this endpoint to delete the metadata objects. - /// - /// Required parameter: Type of the metadata object being searched. - /// Required parameter: A JSON array of GUIDs of the objects. - /// Returns the bool response from the API call. - public bool RestapiV2DeleteObject( - Models.Type4Enum type, - List id) - { - Task t = this.RestapiV2DeleteObjectAsync(type, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Use this endpoint to delete the metadata objects. - /// - /// Required parameter: Type of the metadata object being searched. - /// Required parameter: A JSON array of GUIDs of the objects. - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2DeleteObjectAsync( - Models.Type4Enum type, - List id, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "type", ApiHelper.JsonSerialize(type).Trim('\"') }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To query the details of dependent objects and associate objects as dependents, you can use this API. Dependency is defined as relation between referenced and referencing objects. A referencing object is said to have a dependency on a referenced object, if the referenced object cannot be deleted without first deleting the referencing object. For example, consider a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion of C2 will be prevented by the relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting C1. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2GetObjectDependency( - Models.TspublicRestV2MetadataDependencyRequest body) - { - Task t = this.RestapiV2GetObjectDependencyAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To query the details of dependent objects and associate objects as dependents, you can use this API. Dependency is defined as relation between referenced and referencing objects. A referencing object is said to have a dependency on a referenced object, if the referenced object cannot be deleted without first deleting the referencing object. For example, consider a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion of C2 will be prevented by the relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting C1. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2GetObjectDependencyAsync( - Models.TspublicRestV2MetadataDependencyRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/metadata/dependency"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/OrgController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/OrgController.cs deleted file mode 100644 index 4cb607cab..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/OrgController.cs +++ /dev/null @@ -1,441 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// OrgController. - /// - public class OrgController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal OrgController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To get the details of a specific organization by name or id, use this endpoint. . - /// At least one value needed. When both are given,then id will be considered to fetch organization information. . - /// Requires Administration privilege for tenant. - /// - /// Optional parameter: Name of the organization.. - /// Optional parameter: The ID of the organization.. - /// Returns the Models.OrgsResponse response from the API call. - public Models.OrgsResponse RestapiV2GetOrg( - string name = null, - int? id = null) - { - Task t = this.RestapiV2GetOrgAsync(name, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific organization by name or id, use this endpoint. . - /// At least one value needed. When both are given,then id will be considered to fetch organization information. . - /// Requires Administration privilege for tenant. - /// - /// Optional parameter: Name of the organization.. - /// Optional parameter: The ID of the organization.. - /// cancellationToken. - /// Returns the Models.OrgsResponse response from the API call. - public async Task RestapiV2GetOrgAsync( - string name = null, - int? id = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/org"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To programmatically create an organization in the ThoughtSpot system, use this API endpoint. . - /// Requires Administration privilege for tenant. - /// - /// Required parameter: Example: . - /// Returns the Models.OrgsResponse response from the API call. - public Models.OrgsResponse RestapiV2CreateOrg( - Models.TspublicRestV2OrgCreateRequest body) - { - Task t = this.RestapiV2CreateOrgAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically create an organization in the ThoughtSpot system, use this API endpoint. . - /// Requires Administration privilege for tenant. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.OrgsResponse response from the API call. - public async Task RestapiV2CreateOrgAsync( - Models.TspublicRestV2OrgCreateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/org/create"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// You can use this endpoint to programmatically modify an existing org. . - /// Provide name or id of the organization to update the properties. When both id and name are given, then id will be considered and name of the organization will be updated. . - /// Requires Administration privilege for tenant. - /// - /// Required parameter: Example: . - /// Returns the Models.OrgsResponse response from the API call. - public Models.OrgsResponse RestapiV2UpdateOrg( - Models.TspublicRestV2OrgUpdateRequest body) - { - Task t = this.RestapiV2UpdateOrgAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// You can use this endpoint to programmatically modify an existing org. . - /// Provide name or id of the organization to update the properties. When both id and name are given, then id will be considered and name of the organization will be updated. . - /// Requires Administration privilege for tenant. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the Models.OrgsResponse response from the API call. - public async Task RestapiV2UpdateOrgAsync( - Models.TspublicRestV2OrgUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/org/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. . - /// At least one value is needed. When both id and name are given, then id will be considered. . - /// Requires Administration privilege for tenant. - /// - /// Optional parameter: Name of the organization.. - /// Optional parameter: The ID of the organization.. - /// Returns the bool response from the API call. - public bool RestapiV2DeleteOrg( - string name = null, - int? id = null) - { - Task t = this.RestapiV2DeleteOrgAsync(name, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. . - /// At least one value is needed. When both id and name are given, then id will be considered. . - /// Requires Administration privilege for tenant. - /// - /// Optional parameter: Name of the organization.. - /// Optional parameter: The ID of the organization.. - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2DeleteOrgAsync( - string name = null, - int? id = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/org/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To get the details of a specific organization or all organizations in the ThoughtSpot system use this end point. . - /// If no input is provided, then all organizations are included in the response. . - /// Requires Administration privilege for tenant. - /// - /// Required parameter: Example: . - /// Returns the List of Models.OrgsResponse response from the API call. - public List RestapiV2SearchOrgs( - Models.TspublicRestV2OrgSearchRequest body) - { - Task> t = this.RestapiV2SearchOrgsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific organization or all organizations in the ThoughtSpot system use this end point. . - /// If no input is provided, then all organizations are included in the response. . - /// Requires Administration privilege for tenant. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the List of Models.OrgsResponse response from the API call. - public async Task> RestapiV2SearchOrgsAsync( - Models.TspublicRestV2OrgSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/org/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize>(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ReportController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ReportController.cs deleted file mode 100644 index a98855bd0..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/ReportController.cs +++ /dev/null @@ -1,229 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ReportController. - /// - public class ReportController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal ReportController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To programmatically download Answer data as a file, use this endpoint. . - /// The PDF will download data in the tabular format even if Answer is saved as chart. - /// - /// Required parameter: GUID of the Answer to download.. - /// Required parameter: Type of file to be generated.. - /// Returns the object response from the API call. - public object RestapiV2AnswerReport( - string id, - Models.Type16Enum type) - { - Task t = this.RestapiV2AnswerReportAsync(id, type); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically download Answer data as a file, use this endpoint. . - /// The PDF will download data in the tabular format even if Answer is saved as chart. - /// - /// Required parameter: GUID of the Answer to download.. - /// Required parameter: Type of file to be generated.. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2AnswerReportAsync( - string id, - Models.Type16Enum type, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/report/answer"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - { "type", ApiHelper.JsonSerialize(type).Trim('\"') }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, use this endpoint. - /// - /// Required parameter: Type of file to be generated. Valid values: CSV/XLSX/PDF/PNG.. - /// Optional parameter: GUID of the Liveboard to download. This field is considered only when no input is provided for transientContent field.. - /// Optional parameter: JSON Array of GUIDs of the visualizations in the Liveboard to be included in the downloaded file. For CSV, XLSX and PNG file download, visualization id is mandatory. CSV and XLSX is valid only for visualization of type table and PNG is valid for charts. Only one value will be accepted for these formats. If multiple values are provided then first value in the array will be considered.. - /// Optional parameter: If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard.. - /// Optional parameter: If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard .. - /// Optional parameter: JSON object which provides columns to sort the data at the time of data retrieval. Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"} For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. - /// Optional parameter: Additional options that are applicable for PDF type.. - /// Returns the object response from the API call. - public object RestapiV2LiveboardReport( - Models.Type16Enum type, - string id = null, - List vizId = null, - string transientContent = null, - string runtimeFilter = null, - string runtimeSort = null, - Models.PdfOptionsInput pdfOptions = null) - { - Task t = this.RestapiV2LiveboardReportAsync(type, id, vizId, transientContent, runtimeFilter, runtimeSort, pdfOptions); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, use this endpoint. - /// - /// Required parameter: Type of file to be generated. Valid values: CSV/XLSX/PDF/PNG.. - /// Optional parameter: GUID of the Liveboard to download. This field is considered only when no input is provided for transientContent field.. - /// Optional parameter: JSON Array of GUIDs of the visualizations in the Liveboard to be included in the downloaded file. For CSV, XLSX and PNG file download, visualization id is mandatory. CSV and XLSX is valid only for visualization of type table and PNG is valid for charts. Only one value will be accepted for these formats. If multiple values are provided then first value in the array will be considered.. - /// Optional parameter: If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard.. - /// Optional parameter: If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard .. - /// Optional parameter: JSON object which provides columns to sort the data at the time of data retrieval. Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"} For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. - /// Optional parameter: Additional options that are applicable for PDF type.. - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2LiveboardReportAsync( - Models.Type16Enum type, - string id = null, - List vizId = null, - string transientContent = null, - string runtimeFilter = null, - string runtimeSort = null, - Models.PdfOptionsInput pdfOptions = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/report/liveboard"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "type", ApiHelper.JsonSerialize(type).Trim('\"') }, - { "id", id }, - { "vizId", vizId }, - { "transientContent", transientContent }, - { "runtimeFilter", runtimeFilter }, - { "runtimeSort", runtimeSort }, - { "pdfOptions", pdfOptions }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SecurityController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SecurityController.cs deleted file mode 100644 index f2ce6967a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SecurityController.cs +++ /dev/null @@ -1,533 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SecurityController. - /// - public class SecurityController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal SecurityController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To list the permissions for user and user groups on an object, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. . - /// You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - /// - /// Required parameter: GUID of the metadata object for which the permission needs to be obtained.. - /// Required parameter: Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column. - /// Optional parameter: When this field is set to true, the API returns the permission details for the dependent objects for the the object included in the request. - /// Returns the Models.SecurityPermissionResponse response from the API call. - public Models.SecurityPermissionResponse RestapiV2GetPermissionOnObject( - string id, - Models.Type7Enum type, - bool? includeDependent = null) - { - Task t = this.RestapiV2GetPermissionOnObjectAsync(id, type, includeDependent); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To list the permissions for user and user groups on an object, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. . - /// You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - /// - /// Required parameter: GUID of the metadata object for which the permission needs to be obtained.. - /// Required parameter: Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column. - /// Optional parameter: When this field is set to true, the API returns the permission details for the dependent objects for the the object included in the request. - /// cancellationToken. - /// Returns the Models.SecurityPermissionResponse response from the API call. - public async Task RestapiV2GetPermissionOnObjectAsync( - string id, - Models.Type7Enum type, - bool? includeDependent = null, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (id == null) - { - throw new ArgumentNullException("id", "The parameter \"id\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/security/permission/tsobject"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - { "type", ApiHelper.JsonSerialize(type).Trim('\"') }, - { "includeDependent", includeDependent }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. . - /// Requires administration privilege. - /// - /// Optional parameter: GUID of the user or user group for which the object permission needs to be obtained. - /// Optional parameter: Name of the ser or user group for which the object permission needs to be obtained. - /// Returns the Models.PrincipalSearchResponse response from the API call. - public Models.PrincipalSearchResponse RestapiV2GetPermissionForPrincipal( - string id = null, - string name = null) - { - Task t = this.RestapiV2GetPermissionForPrincipalAsync(id, name); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. . - /// Requires administration privilege. - /// - /// Optional parameter: GUID of the user or user group for which the object permission needs to be obtained. - /// Optional parameter: Name of the ser or user group for which the object permission needs to be obtained. - /// cancellationToken. - /// Returns the Models.PrincipalSearchResponse response from the API call. - public async Task RestapiV2GetPermissionForPrincipalAsync( - string id = null, - string name = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/security/permission/principal"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "id", id }, - { "name", name }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. . - /// When you share an object like a Liveboard or visualization, a notification with a live link is sent to the user. When the users access this object, they can view the last saved version of the object. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2ShareObject( - Models.TspublicRestV2SecurityShareTsobjectRequest body) - { - Task t = this.RestapiV2ShareObjectAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. . - /// When you share an object like a Liveboard or visualization, a notification with a live link is sent to the user. When the users access this object, they can view the last saved version of the object. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2ShareObjectAsync( - Models.TspublicRestV2SecurityShareTsobjectRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/security/share/tsobject"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// If you want to share a specific visualization from a Liveboard with another user or user group, then use this endpoint. . - /// Requires privilege to share the visualization. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2ShareVisualization( - Models.TspublicRestV2SecurityShareVisualizationRequest body) - { - Task t = this.RestapiV2ShareVisualizationAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// If you want to share a specific visualization from a Liveboard with another user or user group, then use this endpoint. . - /// Requires privilege to share the visualization. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2ShareVisualizationAsync( - Models.TspublicRestV2SecurityShareVisualizationRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/security/share/visualization"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. . - /// You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. . - /// You can optionally provide users or user groups for which the persmission needs to be displayed. . - /// You can optionally see the permission on the dependent objects as well by enabling includeDependent field. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// Returns the List of Models.SecurityPermissionResponse response from the API call. - public List RestapiV2SearchPermissionOnObjects( - Models.TspublicRestV2SecurityPermissionTsobjectSearchRequest body) - { - Task> t = this.RestapiV2SearchPermissionOnObjectsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. . - /// You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. . - /// You can optionally provide users or user groups for which the persmission needs to be displayed. . - /// You can optionally see the permission on the dependent objects as well by enabling includeDependent field. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the List of Models.SecurityPermissionResponse response from the API call. - public async Task> RestapiV2SearchPermissionOnObjectsAsync( - Models.TspublicRestV2SecurityPermissionTsobjectSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/security/permission/tsobject/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize>(response.Body); - } - - /// - /// To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. . - /// You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. . - /// You can optionally provide users or user groups for which the persmission needs to be displayed. . - /// You can optionally see the permission on the dependent objects as well by enabling includeDependent field. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// Returns the List of Models.PrincipalSearchResponse response from the API call. - public List RestapiV2SearchPermissionForPrincipals( - Models.TspublicRestV2SecurityPermissionPrincipalSearchRequest body) - { - Task> t = this.RestapiV2SearchPermissionForPrincipalsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. . - /// You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. . - /// You can optionally provide users or user groups for which the persmission needs to be displayed. . - /// You can optionally see the permission on the dependent objects as well by enabling includeDependent field. . - /// Requires administration privilege. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the List of Models.PrincipalSearchResponse response from the API call. - public async Task> RestapiV2SearchPermissionForPrincipalsAsync( - Models.TspublicRestV2SecurityPermissionPrincipalSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/security/permission/principal/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize>(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SessionController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SessionController.cs deleted file mode 100644 index 70398df17..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/SessionController.cs +++ /dev/null @@ -1,254 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SessionController. - /// - public class SessionController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal SessionController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// You can programmatically create login session for a user in ThoughtSpot using this endpoint. . - /// You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. . - /// userName and password input is given precedence over "Authorization" header, when both are included in the request. - /// - /// Optional parameter: Username of the user account. - /// Optional parameter: The password of the user account. - /// Optional parameter: A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.. - /// Returns the Models.SessionLoginResponse response from the API call. - public Models.SessionLoginResponse RestapiV2Login( - string userName = null, - string password = null, - bool? rememberMe = null) - { - Task t = this.RestapiV2LoginAsync(userName, password, rememberMe); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// You can programmatically create login session for a user in ThoughtSpot using this endpoint. . - /// You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. . - /// userName and password input is given precedence over "Authorization" header, when both are included in the request. - /// - /// Optional parameter: Username of the user account. - /// Optional parameter: The password of the user account. - /// Optional parameter: A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.. - /// cancellationToken. - /// Returns the Models.SessionLoginResponse response from the API call. - public async Task RestapiV2LoginAsync( - string userName = null, - string password = null, - bool? rememberMe = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/session/login"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "userName", userName }, - { "password", password }, - { "rememberMe", rememberMe }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To programmatically create session token for a user in ThoughtSpot, use this endpoint. . - /// You can generate the token for a user by providing password or secret key from the cluster. . - /// You need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. . - /// 1. Click the Develop tab. . - /// 2. Under Customizations, click Settings. . - /// 3. To enable trusted authentication, turn on the toggle. . - /// 4. A secret_key for trusted authentication is generated. . - /// 5. Click the clipboard icon to copy the token. . - /// . - /// Password is given precedence over secretKey input, when both are included in the request. - /// - /// Required parameter: Username of the user account. - /// Optional parameter: The password of the user account. - /// Optional parameter: The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.. - /// Optional parameter: User access privilege. FULL - Creates a session with full access. REPORT_BOOK_VIEW - Allow view access to the specified visualizations.. - /// Optional parameter: GUID of the ThoughtSpot object. If you have set the accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or visualization object.. - /// Optional parameter: Duration in seconds after which the token expires. - /// Optional parameter: Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered. - /// Returns the Models.SessionLoginResponse response from the API call. - public Models.SessionLoginResponse RestapiV2GetToken( - string userName, - string password = null, - string secretKey = null, - Models.AccessLevelEnum? accessLevel = null, - string tsObjectId = null, - string tokenExpiryDuration = null, - string orgId = null) - { - Task t = this.RestapiV2GetTokenAsync(userName, password, secretKey, accessLevel, tsObjectId, tokenExpiryDuration, orgId); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically create session token for a user in ThoughtSpot, use this endpoint. . - /// You can generate the token for a user by providing password or secret key from the cluster. . - /// You need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. . - /// 1. Click the Develop tab. . - /// 2. Under Customizations, click Settings. . - /// 3. To enable trusted authentication, turn on the toggle. . - /// 4. A secret_key for trusted authentication is generated. . - /// 5. Click the clipboard icon to copy the token. . - /// . - /// Password is given precedence over secretKey input, when both are included in the request. - /// - /// Required parameter: Username of the user account. - /// Optional parameter: The password of the user account. - /// Optional parameter: The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.. - /// Optional parameter: User access privilege. FULL - Creates a session with full access. REPORT_BOOK_VIEW - Allow view access to the specified visualizations.. - /// Optional parameter: GUID of the ThoughtSpot object. If you have set the accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or visualization object.. - /// Optional parameter: Duration in seconds after which the token expires. - /// Optional parameter: Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered. - /// cancellationToken. - /// Returns the Models.SessionLoginResponse response from the API call. - public async Task RestapiV2GetTokenAsync( - string userName, - string password = null, - string secretKey = null, - Models.AccessLevelEnum? accessLevel = null, - string tsObjectId = null, - string tokenExpiryDuration = null, - string orgId = null, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (userName == null) - { - throw new ArgumentNullException("userName", "The parameter \"userName\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/session/gettoken"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "userName", userName }, - { "password", password }, - { "secretKey", secretKey }, - { "accessLevel", (accessLevel.HasValue) ? ApiHelper.JsonSerialize(accessLevel.Value).Trim('\"') : null }, - { "tsObjectId", tsObjectId }, - { "tokenExpiryDuration", tokenExpiryDuration }, - { "orgId", orgId }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/UserController.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/UserController.cs deleted file mode 100644 index 3e581bdde..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Controllers/UserController.cs +++ /dev/null @@ -1,816 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Controllers -{ - using System; - using System.Collections.Generic; - using System.Dynamic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// UserController. - /// - public class UserController : BaseController - { - /// - /// Initializes a new instance of the class. - /// - /// config instance. - /// httpClient. - /// authManager. - /// httpCallBack. - internal UserController(IConfiguration config, IHttpClient httpClient, IDictionary authManagers, HttpCallBack httpCallBack = null) - : base(config, httpClient, authManagers, httpCallBack) - { - } - - /// - /// To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information. - /// - /// Optional parameter: Username of the user that you want to query.. - /// Optional parameter: The GUID of the user account to query. - /// Returns the Models.UserResponse response from the API call. - public Models.UserResponse RestapiV2GetUser( - string name = null, - string id = null) - { - Task t = this.RestapiV2GetUserAsync(name, id); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information. - /// - /// Optional parameter: Username of the user that you want to query.. - /// Optional parameter: The GUID of the user account to query. - /// cancellationToken. - /// Returns the Models.UserResponse response from the API call. - public async Task RestapiV2GetUserAsync( - string name = null, - string id = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// To programmatically create a user account in the ThoughtSpot system use this API endpoint. Using this API, you can create a user and assign groups. - /// To create a user, you require admin user privileges. - /// All users created in the ThoughtSpot system are added to ALL_GROUP. - /// - /// Required parameter: Name of the user. The username string must be unique.. - /// Required parameter: A unique display name string for the user account, usually their first and last name. - /// Required parameter: Password for the user account.. - /// Optional parameter: Visibility of the user. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and this allows them to share objects. - /// Optional parameter: Email of the user account. - /// Optional parameter: Array of org identifiers. If no value is provided then user will be created in the organization associated with the login session.. - /// Optional parameter: Array of objects of groups that the user belong to.. - /// Optional parameter: Status of user account. acitve or inactive.. - /// Optional parameter: User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards.. - /// Optional parameter: The user preference for revisiting the onboarding experience.. - /// Optional parameter: ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI.. - /// Optional parameter: Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system.. - /// Returns the Models.UserResponse response from the API call. - public Models.UserResponse RestapiV2CreateUser( - string name, - string displayName, - string password, - Models.VisibilityEnum? visibility = null, - string mail = null, - List orgIds = null, - List groups = null, - Models.StateEnum? state = null, - bool? notifyOnShare = null, - bool? showWalkMe = null, - bool? analystOnboardingComplete = null, - Models.Type8Enum? type = null) - { - Task t = this.RestapiV2CreateUserAsync(name, displayName, password, visibility, mail, orgIds, groups, state, notifyOnShare, showWalkMe, analystOnboardingComplete, type); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically create a user account in the ThoughtSpot system use this API endpoint. Using this API, you can create a user and assign groups. - /// To create a user, you require admin user privileges. - /// All users created in the ThoughtSpot system are added to ALL_GROUP. - /// - /// Required parameter: Name of the user. The username string must be unique.. - /// Required parameter: A unique display name string for the user account, usually their first and last name. - /// Required parameter: Password for the user account.. - /// Optional parameter: Visibility of the user. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and this allows them to share objects. - /// Optional parameter: Email of the user account. - /// Optional parameter: Array of org identifiers. If no value is provided then user will be created in the organization associated with the login session.. - /// Optional parameter: Array of objects of groups that the user belong to.. - /// Optional parameter: Status of user account. acitve or inactive.. - /// Optional parameter: User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards.. - /// Optional parameter: The user preference for revisiting the onboarding experience.. - /// Optional parameter: ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI.. - /// Optional parameter: Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system.. - /// cancellationToken. - /// Returns the Models.UserResponse response from the API call. - public async Task RestapiV2CreateUserAsync( - string name, - string displayName, - string password, - Models.VisibilityEnum? visibility = null, - string mail = null, - List orgIds = null, - List groups = null, - Models.StateEnum? state = null, - bool? notifyOnShare = null, - bool? showWalkMe = null, - bool? analystOnboardingComplete = null, - Models.Type8Enum? type = null, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (name == null) - { - throw new ArgumentNullException("name", "The parameter \"name\" is a required parameter and cannot be null."); - } - - if (displayName == null) - { - throw new ArgumentNullException("displayName", "The parameter \"displayName\" is a required parameter and cannot be null."); - } - - if (password == null) - { - throw new ArgumentNullException("password", "The parameter \"password\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/create"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "displayName", displayName }, - { "password", password }, - { "visibility", (visibility.HasValue) ? ApiHelper.JsonSerialize(visibility.Value).Trim('\"') : null }, - { "mail", mail }, - { "orgIds", orgIds }, - { "groups", groups }, - { "state", (state.HasValue) ? ApiHelper.JsonSerialize(state.Value).Trim('\"') : null }, - { "notifyOnShare", notifyOnShare }, - { "showWalkMe", showWalkMe }, - { "analystOnboardingComplete", analystOnboardingComplete }, - { "type", (type.HasValue) ? ApiHelper.JsonSerialize(type.Value).Trim('\"') : null }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Get(queryBuilder.ToString(), headers, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return ApiHelper.JsonDeserialize(response.Body); - } - - /// - /// You can use this endpoint to programmatically modify an existing user account. To modify a user, you require admin user privileges. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2UpdateUser( - Models.TspublicRestV2UserUpdateRequest body) - { - Task t = this.RestapiV2UpdateUserAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// You can use this endpoint to programmatically modify an existing user account. To modify a user, you require admin user privileges. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2UpdateUserAsync( - Models.TspublicRestV2UserUpdateRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/update"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To remove a user from the ThoughtSpot system, use this endpoint. - /// At Least one value needed. When both are given user id will be considered to delete user. - /// - /// Optional parameter: Username of the user that you want to query.. - /// Optional parameter: The GUID of the user account to query. - /// Optional parameter: Unique identifier of the organization from which the user would be deleted. If no value is provided then user will be deleted from the organization associated with the login session.. - /// Returns the bool response from the API call. - public bool RestapiV2DeleteUser( - string name = null, - string id = null, - int? orgId = null) - { - Task t = this.RestapiV2DeleteUserAsync(name, id, orgId); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To remove a user from the ThoughtSpot system, use this endpoint. - /// At Least one value needed. When both are given user id will be considered to delete user. - /// - /// Optional parameter: Username of the user that you want to query.. - /// Optional parameter: The GUID of the user account to query. - /// Optional parameter: Unique identifier of the organization from which the user would be deleted. If no value is provided then user will be deleted from the organization associated with the login session.. - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2DeleteUserAsync( - string name = null, - string id = null, - int? orgId = null, - CancellationToken cancellationToken = default) - { - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/delete"); - - // prepare specfied query parameters. - var queryParams = new Dictionary() - { - { "name", name }, - { "id", id }, - { "orgId", orgId }, - }; - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - }; - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().Delete(queryBuilder.ToString(), headers, null, queryParameters: queryParams); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically add groups to an existing ThoughtSpot user use this endpoint. - /// When you assign groups to a user, the user inherits the privileges assigned to those groups. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AddUserToGroups( - Models.TspublicRestV2UserAddgroupRequest body) - { - Task t = this.RestapiV2AddUserToGroupsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically add groups to an existing ThoughtSpot user use this endpoint. - /// When you assign groups to a user, the user inherits the privileges assigned to those groups. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AddUserToGroupsAsync( - Models.TspublicRestV2UserAddgroupRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/addgroup"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. - /// The API removes only the user association. It does not delete the user or group from the Thoughtspot system. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2RemoveUserFromGroups( - Models.TspublicRestV2UserRemovegroupRequest body) - { - Task t = this.RestapiV2RemoveUserFromGroupsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. - /// The API removes only the user association. It does not delete the user or group from the Thoughtspot system. - /// At least one of User Id or username is mandatory. When both are given, then user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2RemoveUserFromGroupsAsync( - Models.TspublicRestV2UserRemovegroupRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/removegroup"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To get the details of a specific user account or all users in the ThoughtSpot system use this end point. - /// - /// Required parameter: Example: . - /// Returns the object response from the API call. - public object RestapiV2SearchUsers( - Models.TspublicRestV2UserSearchRequest body) - { - Task t = this.RestapiV2SearchUsersAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To get the details of a specific user account or all users in the ThoughtSpot system use this end point. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the object response from the API call. - public async Task RestapiV2SearchUsersAsync( - Models.TspublicRestV2UserSearchRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/search"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "accept", "application/json" }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return response.Body; - } - - /// - /// To change the password of a ThoughtSpot user account, use this endpoint. . - /// At least one of id or name of user is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2ChangePasswordOfUser( - Models.TspublicRestV2UserChangepasswordRequest body) - { - Task t = this.RestapiV2ChangePasswordOfUserAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To change the password of a ThoughtSpot user account, use this endpoint. . - /// At least one of id or name of user is required. When both are given user id will be considered. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2ChangePasswordOfUserAsync( - Models.TspublicRestV2UserChangepasswordRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/changepassword"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - - /// - /// To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. . - /// At least one of id or name of the organization is required. When both are given, then organization id will be considered. . - /// Requires Administration access for the organization to which users need to be added. - /// - /// Required parameter: Example: . - /// Returns the bool response from the API call. - public bool RestapiV2AddUserToOrgs( - Models.TspublicRestV2UserAddorgRequest body) - { - Task t = this.RestapiV2AddUserToOrgsAsync(body); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. . - /// At least one of id or name of the organization is required. When both are given, then organization id will be considered. . - /// Requires Administration access for the organization to which users need to be added. - /// - /// Required parameter: Example: . - /// cancellationToken. - /// Returns the bool response from the API call. - public async Task RestapiV2AddUserToOrgsAsync( - Models.TspublicRestV2UserAddorgRequest body, - CancellationToken cancellationToken = default) - { - // validating required parameters. - if (body == null) - { - throw new ArgumentNullException("body", "The parameter \"body\" is a required parameter and cannot be null."); - } - - // the base uri for api requests. - string baseUri = this.Config.GetBaseUri(); - - // prepare query string for API call. - StringBuilder queryBuilder = new StringBuilder(baseUri); - queryBuilder.Append("/tspublic/rest/v2/user/addorg"); - - // append request with appropriate headers and parameters - var headers = new Dictionary() - { - { "user-agent", this.UserAgent }, - { "Content-Type", "application/json" }, - }; - - // append body params. - var bodyText = ApiHelper.JsonSerialize(body); - - // prepare the API call request to fetch the response. - HttpRequest httpRequest = this.GetClientInstance().PutBody(queryBuilder.ToString(), headers, bodyText); - - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest); - } - - httpRequest = await this.AuthManagers["global"].ApplyAsync(httpRequest).ConfigureAwait(false); - - // invoke request and get response. - HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken: cancellationToken).ConfigureAwait(false); - HttpContext context = new HttpContext(httpRequest, response); - if (this.HttpCallBack != null) - { - this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response); - } - - if (response.StatusCode == 500) - { - throw new ErrorResponseException("Operation failed", context); - } - - // handle errors defined at the API level. - this.ValidateResponse(response, context); - - return bool.Parse(response.Body); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Environment.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Environment.cs deleted file mode 100644 index 06f6b4d36..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Environment.cs +++ /dev/null @@ -1,21 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard -{ - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - /// - /// Available environments. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Environment - { - /// - /// Production. - /// - [EnumMember(Value = "production")] - Production, - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ApiException.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ApiException.cs deleted file mode 100644 index f0699e9b0..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ApiException.cs +++ /dev/null @@ -1,78 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Exceptions -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Text; - using Newtonsoft.Json; - using Newtonsoft.Json.Linq; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// This is the base class for all exceptions that represent an error response - /// from the server. - /// - [JsonObject] - public class ApiException : Exception - { - /// - /// Initializes a new instance of the class. - /// - /// The reason for throwing exception. - /// The HTTP context that encapsulates request and response objects. - public ApiException(string reason, HttpContext context = null) - : base(reason) - { - this.HttpContext = context; - - // If a derived exception class is used, then perform deserialization of response body. - if ((context == null) || (context.Response == null) - || (context.Response.RawBody == null) - || (!context.Response.RawBody.CanRead)) - { - return; - } - - using (var reader = new StreamReader(context.Response.RawBody)) - { - string responseBody = reader.ReadToEnd(); - if (!string.IsNullOrWhiteSpace(responseBody)) - { - try - { - JObject body = JObject.Parse(responseBody); - - if (!this.GetType().Name.Equals("ApiException", StringComparison.OrdinalIgnoreCase)) - { - JsonConvert.PopulateObject(responseBody, this); - } - } - catch (JsonReaderException) - { - // Ignore deserialization and IO issues to prevent exception being thrown when this exception - // instance is being constructed. - } - } - } - } - - /// - /// Gets the HTTP response code from the API request. - /// - [JsonIgnore] - public int ResponseCode - { - get { return this.HttpContext != null ? this.HttpContext.Response.StatusCode : -1; } - } - - /// - /// Gets or sets the HttpContext for the request and response. - /// - [JsonIgnore] - public HttpContext HttpContext { get; internal set; } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ErrorResponseException.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ErrorResponseException.cs deleted file mode 100644 index 1e8886be3..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Exceptions/ErrorResponseException.cs +++ /dev/null @@ -1,41 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Exceptions -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Models; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ErrorResponseException. - /// - public class ErrorResponseException : ApiException - { - /// - /// Initializes a new instance of the class. - /// - /// The reason for throwing exception. - /// The HTTP context that encapsulates request and response objects. - public ErrorResponseException(string reason, HttpContext context) - : base(reason, context) - { - } - - /// - /// Gets or sets Error. - /// - [JsonProperty("error", NullValueHandling = NullValueHandling.Ignore)] - public object Error { get; set; } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/FileStreamInfo.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/FileStreamInfo.cs deleted file mode 100644 index faa38e039..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/FileStreamInfo.cs +++ /dev/null @@ -1,42 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System; - using System.IO; - - /// - /// An DTO class to capture information for file uploads. - /// - public class FileStreamInfo - { - /// - /// Initializes a new instance of the class. - /// - /// The stream object with read access to the file data. - /// Optional file name associated with the stream. - /// Optional file content type associated with the stream. - public FileStreamInfo(Stream stream, string fileName = null, string contentType = null) - { - this.FileStream = stream; - this.FileName = fileName; - this.ContentType = contentType; - } - - /// - /// Gets the stream object with read access to the file data. - /// - public Stream FileStream { get; } - - /// - /// Gets name of the file associated with the stream. - /// - public string FileName { get; } - - /// - /// Gets content type of the file associated with the stream. - /// - public string ContentType { get; } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpCallBack.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpCallBack.cs deleted file mode 100644 index 8b5076a76..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpCallBack.cs +++ /dev/null @@ -1,44 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - - /// - /// HttpCallBack. - /// - internal sealed class HttpCallBack - { - /// - /// Gets http request. - /// - public HttpRequest Request { get; private set; } - - /// - /// Gets http response. - /// - public HttpResponse Response { get; private set; } - - /// - /// BeforeHttpRequestEventHandler. - /// - /// Http Client. - /// Http Request. - public void OnBeforeHttpRequestEventHandler(IHttpClient source, HttpRequest request) - { - this.Request = request; - } - - /// - /// AfterHttpResponseEventHandler. - /// - /// Http Client. - /// Http Response. - public void OnAfterHttpResponseEventHandler(IHttpClient source, HttpResponse response) - { - this.Response = response; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientConfiguration.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientConfiguration.cs deleted file mode 100644 index c32d9554d..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientConfiguration.cs +++ /dev/null @@ -1,274 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System; - using System.Collections.Generic; - using System.Collections.Immutable; - using System.Linq; - using System.Net.Http; - - /// - /// HttpClientConfiguration represents the current state of the Http Client. - /// - public class HttpClientConfiguration : IHttpClientConfiguration - { - /// - /// Initializes a new instance of the - /// class. - /// - private HttpClientConfiguration( - TimeSpan timeout, - bool skipSslCertVerification, - int numberOfRetries, - int backoffFactor, - double retryInterval, - TimeSpan maximumRetryWaitTime, - IList statusCodesToRetry, - IList requestMethodsToRetry, - HttpClient httpClientInstance, - bool overrideHttpClientConfiguration) - { - this.Timeout = timeout; - this.SkipSslCertVerification = skipSslCertVerification; - this.NumberOfRetries = numberOfRetries; - this.BackoffFactor = backoffFactor; - this.RetryInterval = retryInterval; - this.MaximumRetryWaitTime = maximumRetryWaitTime; - this.StatusCodesToRetry = statusCodesToRetry; - this.RequestMethodsToRetry = requestMethodsToRetry; - this.HttpClientInstance = httpClientInstance; - this.OverrideHttpClientConfiguration = overrideHttpClientConfiguration; - } - - /// - /// Gets Http client timeout. - /// - public TimeSpan Timeout { get; } - - /// - /// Gets Whether to skip verification of SSL certificates. - /// - public bool SkipSslCertVerification { get; } - - /// - /// Gets Number of times the request is retried. - /// - public int NumberOfRetries { get; } - - /// - /// Gets Exponential backoff factor for duration between retry calls. - /// - public int BackoffFactor { get; } - - /// - /// Gets The time interval between the endpoint calls. - /// - public double RetryInterval { get; } - - /// - /// Gets The maximum retry wait time. - /// - public TimeSpan MaximumRetryWaitTime { get; } - - /// - /// Gets List of Http status codes to invoke retry. - /// - public IList StatusCodesToRetry { get; } - - /// - /// Gets List of Http request methods to invoke retry. - /// - public IList RequestMethodsToRetry { get; } - - /// - /// Gets HttpClient instance used to make the HTTP calls - /// - public HttpClient HttpClientInstance { get; } - - /// - /// Gets Boolean which allows the SDK to override http client instance's settings used for features like retries, timeouts etc. - /// - public bool OverrideHttpClientConfiguration { get; } - - /// - public override string ToString() - { - return "HttpClientConfiguration: " + - $"{this.Timeout} , " + - $"{this.SkipSslCertVerification} , " + - $"{this.NumberOfRetries} , " + - $"{this.BackoffFactor} , " + - $"{this.RetryInterval} , " + - $"{this.MaximumRetryWaitTime} , " + - $"{this.StatusCodesToRetry} , " + - $"{this.RequestMethodsToRetry} , " + - $"{this.HttpClientInstance} , " + - $"{this.OverrideHttpClientConfiguration} "; - } - - /// - /// Creates an object of the HttpClientConfiguration using the values provided for the builder. - /// - /// Builder. - public Builder ToBuilder() - { - Builder builder = new Builder() - .Timeout(this.Timeout) - .SkipSslCertVerification(this.SkipSslCertVerification) - .NumberOfRetries(this.NumberOfRetries) - .BackoffFactor(this.BackoffFactor) - .RetryInterval(this.RetryInterval) - .MaximumRetryWaitTime(this.MaximumRetryWaitTime) - .StatusCodesToRetry(this.StatusCodesToRetry) - .RequestMethodsToRetry(this.RequestMethodsToRetry) - .HttpClientInstance(this.HttpClientInstance, this.OverrideHttpClientConfiguration); - - return builder; - } - - /// - /// Builder class. - /// - public class Builder - { - private TimeSpan timeout = TimeSpan.FromSeconds(100); - private bool skipSslCertVerification = true; - private int numberOfRetries = 0; - private int backoffFactor = 2; - private double retryInterval = 1; - private TimeSpan maximumRetryWaitTime = TimeSpan.FromSeconds(0); - private IList statusCodesToRetry = new List - { - 408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524 - }.ToImmutableList(); - private IList requestMethodsToRetry = new List - { - "GET", "PUT", "GET", "PUT" - }.Select(val => new HttpMethod(val)).ToImmutableList(); - private HttpClient httpClientInstance = new HttpClient(); - private bool overrideHttpClientConfiguration = true; - - /// - /// Sets the Timeout. - /// - /// Timeout. - /// Builder. - public Builder Timeout(TimeSpan timeout) - { - this.timeout = timeout.TotalSeconds <= 0 ? TimeSpan.FromSeconds(100) : timeout; - return this; - } - - /// - /// Sets SkipSslCertVerification. - /// - /// SkipSslCertVerification. - /// Builder. - public Builder SkipSslCertVerification(bool skipSslCertVerification) - { - this.skipSslCertVerification = skipSslCertVerification; - return this; - } - - /// - /// Sets the NumberOfRetries. - /// - /// NumberOfRetries. - /// Builder. - public Builder NumberOfRetries(int numberOfRetries) - { - this.numberOfRetries = numberOfRetries < 0 ? 0 : numberOfRetries; - return this; - } - - /// - /// Sets the BackoffFactor. - /// - /// BackoffFactor. - /// Builder. - public Builder BackoffFactor(int backoffFactor) - { - this.backoffFactor = backoffFactor < 1 ? 2 : backoffFactor; - return this; - } - - /// - /// Sets the RetryInterval. - /// - /// RetryInterval. - /// Builder. - public Builder RetryInterval(double retryInterval) - { - this.retryInterval = retryInterval < 0 ? 1 : retryInterval; - return this; - } - - /// - /// Sets the MaximumRetryWaitTime. - /// - /// MaximumRetryWaitTime. - /// Builder. - public Builder MaximumRetryWaitTime(TimeSpan maximumRetryWaitTime) - { - this.maximumRetryWaitTime = maximumRetryWaitTime.TotalSeconds < 0 ? TimeSpan.FromSeconds(0) : maximumRetryWaitTime; - return this; - } - - /// - /// Sets the StatusCodesToRetry. - /// - /// StatusCodesToRetry. - /// Builder. - public Builder StatusCodesToRetry(IList statusCodesToRetry) - { - this.statusCodesToRetry = statusCodesToRetry ?? new List().ToImmutableList(); - return this; - } - - /// - /// Sets the RequestMethodsToRetry. - /// - /// RequestMethodsToRetry. - /// Builder. - public Builder RequestMethodsToRetry(IList requestMethodsToRetry) - { - this.requestMethodsToRetry = requestMethodsToRetry ?? new List().ToImmutableList(); - return this; - } - - /// - /// Sets the HttpClientInstance. - /// - /// HttpClientInstance. - /// OverrideHttpClientConfiguration. - /// Builder. - public Builder HttpClientInstance(HttpClient httpClientInstance, bool overrideHttpClientConfiguration = true) - { - this.httpClientInstance = httpClientInstance ?? new HttpClient(); - this.overrideHttpClientConfiguration = overrideHttpClientConfiguration; - return this; - } - - /// - /// Creates an object of the HttpClientConfiguration using the values provided for the builder. - /// - /// HttpClientConfiguration. - public HttpClientConfiguration Build() - { - return new HttpClientConfiguration( - this.timeout, - this.skipSslCertVerification, - this.numberOfRetries, - this.backoffFactor, - this.retryInterval, - this.maximumRetryWaitTime, - this.statusCodesToRetry, - this.requestMethodsToRetry, - this.httpClientInstance, - this.overrideHttpClientConfiguration); - } - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientWrapper.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientWrapper.cs deleted file mode 100644 index 18358bb0e..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpClientWrapper.cs +++ /dev/null @@ -1,671 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System; - using System.Collections.Generic; - using System.Collections.Immutable; - using System.IO; - using System.Linq; - using System.Net; - using System.Net.Http; - using System.Net.Http.Headers; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Polly; - using Polly.Retry; - using Polly.Timeout; - using Polly.Wrap; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// HttpClientWrapper. - /// - internal sealed class HttpClientWrapper : IHttpClient - { - private static char parameterSeparator = '&'; - private readonly int numberOfRetries; - private readonly int backoffFactor; - private readonly double retryInterval; - private readonly TimeSpan maximumRetryWaitTime; - private ArrayDeserialization arrayDeserializationFormat = ArrayDeserialization.Plain; - private HttpClient client; - private IList statusCodesToRetry; - private IList requestMethodsToRetry; - private bool overrideHttpClientConfiguration; - - /// - /// Initializes a new instance of the class. - /// - /// HttpClientConfiguration object. - public HttpClientWrapper(HttpClientConfiguration httpClientConfig) - { - this.client = httpClientConfig.HttpClientInstance; - this.overrideHttpClientConfiguration = httpClientConfig.OverrideHttpClientConfiguration; - - if (overrideHttpClientConfiguration) - { - this.statusCodesToRetry = httpClientConfig.StatusCodesToRetry - .Where(val => Enum.IsDefined(typeof(HttpStatusCode), val)) - .Select(val => (HttpStatusCode)val).ToImmutableList(); - - this.requestMethodsToRetry = httpClientConfig.RequestMethodsToRetry - .Select(method => new HttpMethod(method.ToString())).ToList(); - - this.numberOfRetries = httpClientConfig.NumberOfRetries; - this.backoffFactor = httpClientConfig.BackoffFactor; - this.retryInterval = httpClientConfig.RetryInterval; - this.maximumRetryWaitTime = httpClientConfig.MaximumRetryWaitTime; - this.client.Timeout = httpClientConfig.Timeout; - } - - if(httpClientConfig.SkipSslCertVerification) - { - var httpClientHandler = new HttpClientHandler - { - ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; } - }; - - this.client = new HttpClient(httpClientHandler, disposeHandler: true); - } - } - - /// - /// OnBeforeHttpRequestEvent. - /// - public event OnBeforeHttpRequestEventHandler OnBeforeHttpRequestEvent; - - /// - /// OnAfterHttpResponseEvent. - /// - public event OnAfterHttpResponseEventHandler OnAfterHttpResponseEvent; - - /// - /// Executes the http request. - /// - /// Http request. - /// The for request. - /// HttpStringResponse. - public HttpStringResponse ExecuteAsString(HttpRequest request, RetryConfiguration retryConfiguration = null) - { - Task t = this.ExecuteAsStringAsync(request, retryConfiguration); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Executes the http request asynchronously. - /// - /// Http request. - /// cancellationToken. - /// The for request. - /// Returns the HttpStringResponse. - public async Task ExecuteAsStringAsync( - HttpRequest request, - RetryConfiguration retryConfiguration = null, - CancellationToken cancellationToken = default) - { - // raise the on before request event. - this.RaiseOnBeforeHttpRequestEvent(request); - - HttpResponseMessage responseMessage; - - if (overrideHttpClientConfiguration) - { - responseMessage = await this.GetCombinedPolicy(retryConfiguration).ExecuteAsync( - async (cancellation) => await this.HttpResponseMessage(request, cancellation).ConfigureAwait(false), cancellationToken) - .ConfigureAwait(false); - } - else - { - responseMessage = await this.HttpResponseMessage(request, cancellationToken).ConfigureAwait(false); - } - - int statusCode = (int)responseMessage.StatusCode; - var headers = GetCombinedResponseHeaders(responseMessage); - Stream rawBody = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false); - string body = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false); - - var response = new HttpStringResponse(statusCode, headers, rawBody, body); - - // raise the on after response event. - this.RaiseOnAfterHttpResponseEvent(response); - - return response; - } - - /// - /// Executes the http request. - /// - /// Http request. - /// The for request. - /// HttpResponse. - public HttpResponse ExecuteAsBinary(HttpRequest request, RetryConfiguration retryConfiguration = null) - { - Task t = this.ExecuteAsBinaryAsync(request, retryConfiguration); - ApiHelper.RunTaskSynchronously(t); - return t.Result; - } - - /// - /// Executes the http request asynchronously. - /// - /// Http request. - /// cancellationToken. - /// The for request. - /// HttpResponse. - public async Task ExecuteAsBinaryAsync( - HttpRequest request, - RetryConfiguration retryConfiguration = null, - CancellationToken cancellationToken = default) - { - // raise the on before request event. - this.RaiseOnBeforeHttpRequestEvent(request); - - HttpResponseMessage responseMessage; - - if (overrideHttpClientConfiguration) - { - responseMessage = await this.GetCombinedPolicy(retryConfiguration).ExecuteAsync( - async (cancellation) => await this.HttpResponseMessage(request, cancellation).ConfigureAwait(false), cancellationToken) - .ConfigureAwait(false); - } - else - { - responseMessage = await this.HttpResponseMessage(request, cancellationToken).ConfigureAwait(false); - } - - int statusCode = (int)responseMessage.StatusCode; - var headers = GetCombinedResponseHeaders(responseMessage); - Stream rawBody = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false); - - HttpResponse response = new HttpResponse(statusCode, headers, rawBody); - - // raise the on after response event. - this.RaiseOnAfterHttpResponseEvent(response); - - return response; - } - - /// - /// Get http request. - /// - /// queryUrl. - /// headers. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest Get( - string queryUrl, - Dictionary headers, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(HttpMethod.Get, queryUrl, headers, username, password, queryParameters: queryParameters); - } - - /// - /// Get http request. - /// - /// queryUrl. - /// HttpRequest. - public HttpRequest Get(string queryUrl) - { - return new HttpRequest(HttpMethod.Get, queryUrl); - } - - /// - /// Post http request. - /// - /// queryUrl. - /// HttpRequest. - public HttpRequest Post(string queryUrl) - { - return new HttpRequest(HttpMethod.Post, queryUrl); - } - - /// - /// Put http request. - /// - /// queryUrl. - /// HttpRequest. - public HttpRequest Put(string queryUrl) - { - return new HttpRequest(HttpMethod.Put, queryUrl); - } - - /// - /// Delete http request. - /// - /// queryUrl. - /// HttpRequest. - public HttpRequest Delete(string queryUrl) - { - return new HttpRequest(HttpMethod.Delete, queryUrl); - } - - /// - /// Patch http request. - /// - /// queryUrl. - /// HttpRequest. - public HttpRequest Patch(string queryUrl) - { - return new HttpRequest(new HttpMethod("PATCH"), queryUrl); - } - - /// - /// Post http request. - /// - /// queryUrl. - /// headers. - /// formParameters. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest Post( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(HttpMethod.Post, queryUrl, headers, formParameters, username, password, queryParameters: queryParameters); - } - - /// - /// Post http request. - /// - /// queryUrl. - /// headers. - /// body. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest PostBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(HttpMethod.Post, queryUrl, headers, body, username, password, queryParameters: queryParameters); - } - - /// - /// Put http request. - /// - /// queryUrl. - /// headers. - /// formParameters. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest Put( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(HttpMethod.Put, queryUrl, headers, formParameters, username, password, queryParameters: queryParameters); - } - - /// - /// Put http request. - /// - /// queryUrl. - /// headers. - /// body. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest PutBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(HttpMethod.Put, queryUrl, headers, body, username, password, queryParameters: queryParameters); - } - - /// - /// Patch http request. - /// - /// queryUrl. - /// headers. - /// formParameters. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest Patch( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(new HttpMethod("PATCH"), queryUrl, headers, formParameters, username, password, queryParameters: queryParameters); - } - - /// - /// Patch http request. - /// - /// queryUrl. - /// headers. - /// body. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest PatchBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(new HttpMethod("PATCH"), queryUrl, headers, body, username, password, queryParameters: queryParameters); - } - - /// - /// Delete http request. - /// - /// queryUrl. - /// headers. - /// formParameters. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest Delete( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(HttpMethod.Delete, queryUrl, headers, formParameters, username, password, queryParameters: queryParameters); - } - - /// - /// Delete http request. - /// - /// queryUrl. - /// headers. - /// body. - /// queryParameters. - /// username. - /// password. - /// HttpRequest. - public HttpRequest DeleteBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null) - { - return new HttpRequest(HttpMethod.Delete, queryUrl, headers, body, username, password, queryParameters: queryParameters); - } - - private static Dictionary GetCombinedResponseHeaders(HttpResponseMessage responseMessage) - { - var headers = responseMessage.Headers.ToDictionary(l => l.Key, k => k.Value.First()); - if (responseMessage.Content != null) - { - foreach (var contentHeader in responseMessage.Content.Headers) - { - if (headers.ContainsKey(contentHeader.Key)) - { - continue; - } - - headers.Add(contentHeader.Key, contentHeader.Value.First()); - } - } - - return headers; - } - - private void RaiseOnBeforeHttpRequestEvent(HttpRequest request) - { - if ((this.OnBeforeHttpRequestEvent != null) && (request != null)) - { - this.OnBeforeHttpRequestEvent(this, request); - } - } - - private void RaiseOnAfterHttpResponseEvent(HttpResponse response) - { - if ((this.OnAfterHttpResponseEvent != null) && (response != null)) - { - this.OnAfterHttpResponseEvent(this, response); - } - } - - private async Task HttpResponseMessage( - HttpRequest request, - CancellationToken cancellationToken) - { - var queryBuilder = new StringBuilder(request.QueryUrl); - - if (request.QueryParameters != null) - { - ApiHelper.AppendUrlWithQueryParameters(queryBuilder, request.QueryParameters, this.arrayDeserializationFormat, parameterSeparator); - } - - // validate and preprocess url. - string queryUrl = ApiHelper.CleanUrl(queryBuilder); - - HttpRequestMessage requestMessage = new HttpRequestMessage - { - RequestUri = new Uri(queryUrl), - Method = request.HttpMethod, - }; - - if (request.Headers != null) - { - foreach (var headers in request.Headers) - { - requestMessage.Headers.TryAddWithoutValidation(headers.Key, headers.Value); - } - } - - if (!string.IsNullOrEmpty(request.Username)) - { - var byteArray = Encoding.UTF8.GetBytes(request.Username + ":" + request.Password); - requestMessage.Headers.Authorization = new AuthenticationHeaderValue( - "Basic", - Convert.ToBase64String(byteArray)); - } - - if (request.HttpMethod.Equals(HttpMethod.Delete) || request.HttpMethod.Equals(HttpMethod.Post) || request.HttpMethod.Equals(HttpMethod.Put) || request.HttpMethod.Equals(new HttpMethod("PATCH"))) - { - bool multipartRequest = request.FormParameters != null && - (request.FormParameters.Any(f => f.Value is MultipartContent) || - request.FormParameters.Any(f => f.Value is FileStreamInfo)); - - if (request.Body != null) - { - string contentType = request.Headers.Where(p => p.Key.Equals("content-type", StringComparison.InvariantCultureIgnoreCase)) - .Select(x => x.Value) - .FirstOrDefault(); - - if (request.Body is FileStreamInfo file) - { - file.FileStream.Position = 0; - requestMessage.Content = new StreamContent(file.FileStream); - if (!string.IsNullOrWhiteSpace(file.ContentType)) - { - requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType); - } - else if (!string.IsNullOrEmpty(contentType)) - { - requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType); - } - else - { - requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); - } - } - else if (!string.IsNullOrEmpty(contentType) && contentType.Equals("application/json; charset=utf-8", StringComparison.OrdinalIgnoreCase)) - { - requestMessage.Content = new StringContent((string)request.Body ?? string.Empty, Encoding.UTF8, "application/json"); - } - else if (!string.IsNullOrEmpty(contentType)) - { - byte[] bytes = null; - - if (request.Body is Stream) - { - Stream s = (Stream)request.Body; - s.Position = 0; - using (BinaryReader br = new BinaryReader(s)) - { - bytes = br.ReadBytes((int)s.Length); - } - } - else if (request.Body is byte[]) - { - bytes = (byte[])request.Body; - } - else - { - bytes = Encoding.UTF8.GetBytes((string)request.Body); - } - - requestMessage.Content = new ByteArrayContent(bytes ?? Array.Empty()); - - try - { - requestMessage.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType); - } - catch (Exception) - { - requestMessage.Content.Headers.TryAddWithoutValidation("content-type", contentType); - } - } - else - { - requestMessage.Content = new StringContent(request.Body.ToString() ?? string.Empty, Encoding.UTF8, "text/plain"); - } - } - else if (multipartRequest) - { - MultipartFormDataContent formContent = new MultipartFormDataContent(); - - foreach (var param in request.FormParameters) - { - if (param.Value is FileStreamInfo fileParam) - { - var fileContent = new MultipartFileContent(fileParam); - fileContent.Rewind(); - formContent.Add(fileContent.ToHttpContent(param.Key)); - } - else if (param.Value is MultipartContent wrapperObject) - { - wrapperObject.Rewind(); - formContent.Add(wrapperObject.ToHttpContent(param.Key)); - } - else - { - formContent.Add(new StringContent(param.Value.ToString()), param.Key); - } - } - - requestMessage.Content = formContent; - } - else if (request.FormParameters != null) - { - var parameters = new List>(); - foreach (var param in request.FormParameters) - { - parameters.Add(new KeyValuePair(param.Key, param.Value.ToString())); - } - - requestMessage.Content = new FormUrlEncodedContent(parameters); - } - } - - return await this.client.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); - } - - private bool ShouldRetry(HttpResponseMessage response, RetryConfiguration retryConfiguration) - { - bool isWhiteListedMethod = this.requestMethodsToRetry.Contains(response.RequestMessage.Method); - - return retryConfiguration.RetryOption.IsRetryAllowed(isWhiteListedMethod) && - (this.statusCodesToRetry.Contains(response.StatusCode) || response?.Headers?.RetryAfter != null); - } - - private TimeSpan GetServerWaitDuration(DelegateResult response) - { - var retryAfter = response?.Result?.Headers?.RetryAfter; - if (retryAfter == null) - { - return TimeSpan.Zero; - } - - return retryAfter.Date.HasValue - ? retryAfter.Date.Value - DateTime.UtcNow - : retryAfter.Delta.GetValueOrDefault(TimeSpan.Zero); - } - - private AsyncRetryPolicy GetRetryPolicy(RetryConfiguration retryConfiguration) - { - return Policy.HandleResult(response => this.ShouldRetry(response, retryConfiguration)) - .Or() - .Or() - .WaitAndRetryAsync( - retryCount: this.numberOfRetries, - sleepDurationProvider: (retryAttempt, result, context) => - TimeSpan.FromMilliseconds(Math.Max(this.GetExponentialWaitTime(retryAttempt), this.GetServerWaitDuration(result).TotalMilliseconds)), - onRetryAsync: async (result, timespan, retryAttempt, context) => await Task.CompletedTask); - } - - private AsyncTimeoutPolicy GetTimeoutPolicy() - { - return this.maximumRetryWaitTime.TotalSeconds == 0 - ? Policy.TimeoutAsync(Timeout.InfiniteTimeSpan) - : Policy.TimeoutAsync(this.maximumRetryWaitTime); - } - - private AsyncPolicyWrap GetCombinedPolicy(RetryConfiguration retryConfiguration = null) - { - if (retryConfiguration == null) - { - retryConfiguration = DefaultRetryConfiguration.RetryConfiguration; - } - - return this.GetTimeoutPolicy().WrapAsync(this.GetRetryPolicy(retryConfiguration)); - } - - private double GetExponentialWaitTime(int retryAttempt) - { - double noise = new Random().NextDouble() * 100; - return (1000 * this.retryInterval * Math.Pow(this.backoffFactor, retryAttempt - 1)) + noise; - - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpContext.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpContext.cs deleted file mode 100644 index ee7e13478..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpContext.cs +++ /dev/null @@ -1,42 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - - /// - /// Represents the contextual information of HTTP request and response. - /// - public sealed class HttpContext - { - /// - /// Initializes a new instance of the class. - /// - /// The http request in the current context. - /// The http response in the current context. - public HttpContext(HttpRequest request, HttpResponse response) - { - this.Request = request; - this.Response = response; - } - - /// - /// Gets the http request in the current context. - /// - public HttpRequest Request { get; } - - /// - /// Gets the http response in the current context. - /// - public HttpResponse Response { get; } - - /// - public override string ToString() - { - return $" Request = {this.Request}, " + - $" Response = {this.Response}"; - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpEventHandlers.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpEventHandlers.cs deleted file mode 100644 index cd89ca56b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/HttpEventHandlers.cs +++ /dev/null @@ -1,26 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - - /// - /// Delegate to handle the event on before http request. This event is raised before any - /// network call is made, and can be used for logging, request modification, appending - /// additional headers etc. - /// - /// The source HttpClient that is going to make the network call. - /// The underlying HttpRequest being sent over the network. - internal delegate void OnBeforeHttpRequestEventHandler(IHttpClient source, HttpRequest request); - - /// - /// Delegate to handle the event on after http response. This event is raised after any - /// network response is recieved, and can be used for logging, response modification, extracting - /// additional information etc. - /// - /// The source HttpClient that recieved the response from the network call. - /// The underlying HttpResponse recieved from the network. - internal delegate void OnAfterHttpResponseEventHandler(IHttpClient source, HttpResponse response); -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClient.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClient.cs deleted file mode 100644 index e876dce0c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClient.cs +++ /dev/null @@ -1,263 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - - /// - /// IHttpClient. - /// - internal interface IHttpClient - { - /// - /// Event raised before an Http request is sent over the network - /// This event can be used for logging, request modification, appending - /// additional headers etc. - /// - event OnBeforeHttpRequestEventHandler OnBeforeHttpRequestEvent; - - /// - /// Event raised after an Http response is recieved from the network. - /// This event can be used for logging, response modification, extracting - /// additional information etc. - /// - event OnAfterHttpResponseEventHandler OnAfterHttpResponseEvent; - - /// - /// Execute a given HttpRequest to get string response back. - /// - /// The given HttpRequest to execute. - /// The for request. - /// HttpResponse containing raw information. - HttpStringResponse ExecuteAsString(HttpRequest request, RetryConfiguration retryConfiguration = null); - - /// - /// Execute a given HttpRequest to get binary response back. - /// - /// The given HttpRequest to execute. - /// The for request. - /// HttpResponse containing raw information. - HttpResponse ExecuteAsBinary(HttpRequest request, RetryConfiguration retryConfiguration = null); - - /// - /// Execute a given HttpRequest to get async string response back. - /// - /// The given HttpRequest to execute. - /// CancellationToken. - /// The for request. - /// HttpResponse containing raw information. - Task ExecuteAsStringAsync(HttpRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default); - - /// - /// Execute a given HttpRequest to get async binary response back. - /// - /// The given HttpRequest to execute. - /// CancellationToken. - /// The for request. - /// HttpResponse containing raw information. - Task ExecuteAsBinaryAsync(HttpRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default); - - /// - /// Create a simple HTTP GET request given the URL. - /// - /// Url the request should be sent to. - /// HttpRequest initialised with the url specified. - HttpRequest Get(string queryUrl); - - /// - /// Create a simple HTTP POST request given the URL. - /// - /// Url the request should be sent to. - /// HttpRequest initialised with the url specified. - HttpRequest Post(string queryUrl); - - /// - /// Create a simple HTTP PUT request given the URL. - /// - /// Url the request should be sent to. - /// HttpRequest initialised with the url specified. - HttpRequest Put(string queryUrl); - - /// - /// Create a simple HTTP DELETE request given the URL. - /// - /// Url the request should be sent to. - /// HttpRequest initialised with the url specified. - HttpRequest Delete(string queryUrl); - - /// - /// Create a simple HTTP PATCH request given the URL. - /// - /// Url the request should be sent to. - /// HttpRequest initialised with the url specified. - HttpRequest Patch(string queryUrl); - - /// - /// Create a simple HTTP GET request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest Get( - string queryUrl, - Dictionary headers, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP POST request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// Form parameters to be included. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest Post( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP POST with a body request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// The body/payload of the response. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest PostBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP PUT request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// Form parameters to be included. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest Put( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP PUT with a body request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// The body/payload of the response. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest PutBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP PATCH request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// Form parameters to be included. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest Patch( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP Patch with a body request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// The body/payload of the response. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest PatchBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP DELETE request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// Form parameters to be included. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest Delete( - string queryUrl, - Dictionary headers, - List> formParameters, - Dictionary queryParameters = null, - string username = null, - string password = null); - - /// - /// Create a simple HTTP Delete with a body request given relavent parameters. - /// - /// Url the request should be sent to. - /// HTTP headers that should be included. - /// The body/payload of the response. - /// Query parameters to be included. - /// Basic Auth username. - /// Basic Auth password. - /// HttpRequest initialised with the http parameters specified. - HttpRequest DeleteBody( - string queryUrl, - Dictionary headers, - object body, - Dictionary queryParameters = null, - string username = null, - string password = null); - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClientConfiguration.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClientConfiguration.cs deleted file mode 100644 index 9eee6c97f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/IHttpClientConfiguration.cs +++ /dev/null @@ -1,65 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System; - using System.Collections.Generic; - using System.Net.Http; - - /// - /// Represents the current state of the Http Client. - /// - public interface IHttpClientConfiguration - { - /// - /// Http client timeout. - /// - TimeSpan Timeout { get; } - - /// - /// Whether to skip verification of SSL certificates. - /// - bool SkipSslCertVerification { get; } - - /// - /// Number of times the request is retried. - /// - int NumberOfRetries { get; } - - /// - /// Exponential backoff factor for duration between retry calls. - /// - int BackoffFactor { get; } - - /// - /// The time interval between the endpoint calls. - /// - double RetryInterval { get; } - - /// - /// The maximum retry wait time. - /// - TimeSpan MaximumRetryWaitTime { get; } - - /// - /// List of Http status codes to invoke retry. - /// - IList StatusCodesToRetry { get; } - - /// - /// List of Http request methods to invoke retry. - /// - IList RequestMethodsToRetry { get; } - - /// - /// HttpClient instance used to make the HTTP calls - /// - HttpClient HttpClientInstance { get; } - - /// - /// Boolean which allows the SDK to override http client instance's settings used for features like retries, timeouts etc. - /// - bool OverrideHttpClientConfiguration { get; } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartByteArrayContent.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartByteArrayContent.cs deleted file mode 100644 index 394737aec..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartByteArrayContent.cs +++ /dev/null @@ -1,59 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System.Collections.Generic; - using System.Net.Http; - - /// - /// MultipartByteArrayContent. - /// - internal class MultipartByteArrayContent : MultipartContent - { - /// - /// Initializes a new instance of the class. - /// - /// byteArray. - public MultipartByteArrayContent(byte[] byteArray) - { - this.ByteArray = byteArray; - } - - /// - /// Initializes a new instance of the class. - /// - /// byteArray. - /// headers. - public MultipartByteArrayContent(byte[] byteArray, IReadOnlyDictionary> headers) - : base(headers) - { - this.ByteArray = byteArray; - } - - /// - /// Gets byte array. - /// - public byte[] ByteArray { get; } - - /// - /// Rewind the stream. - /// - public override void Rewind() - { - } - - /// - /// ToHttpContent. - /// - /// contentDispositionName . - /// HttpContent. - public override HttpContent ToHttpContent(string contentDispositionName) - { - var byteArrayContent = new ByteArrayContent(this.ByteArray); - this.SetHeaders(contentDispositionName, byteArrayContent.Headers); - - return byteArrayContent; - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartContent.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartContent.cs deleted file mode 100644 index 9b2162831..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartContent.cs +++ /dev/null @@ -1,97 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Net.Http; - using System.Net.Http.Headers; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// MultipartContent. - /// - internal abstract class MultipartContent - { - /// - /// Initializes a new instance of the class. - /// - public MultipartContent() - { - this.Headers = new Dictionary>(); - } - - /// - /// Initializes a new instance of the class. - /// - /// headers. - public MultipartContent( - IReadOnlyDictionary> headers) - { - this.Headers = headers; - } - - /// - /// Gets headers. - /// - public IReadOnlyDictionary> Headers { get; } - - /// - /// Rewind the stream. - /// - public abstract void Rewind(); - - /// - /// ToHttpContent. - /// - /// contentDispositionName. - /// HttpContent. - public abstract HttpContent ToHttpContent(string contentDispositionName); - - /// - /// SetHeaders. - /// - /// contentDispositionName. - /// headers. - protected virtual void SetHeaders( - string contentDispositionName, - HttpContentHeaders headers) - { - if (this.Headers.ContainsKey("content-type")) - { - bool isContentTypeValid = MediaTypeHeaderValue.TryParse(this.Headers["content-type"].FirstOrDefault(), out var parsedContentType); - - if (isContentTypeValid) - { - headers.ContentType = parsedContentType; - } - } - - headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") - { - Name = contentDispositionName, - }; - - var headersList = this.Headers.Where(kv => !this.IsReservedHeader(kv.Key)); - - foreach (var header in headersList) - { - headers.TryAddWithoutValidation(header.Key, header.Value); - } - } - - /// - /// IsReservedHeader. - /// - /// key. - /// boolean. - protected bool IsReservedHeader(string key) - { - return key.Equals("content-type", StringComparison.OrdinalIgnoreCase) || - key.Equals("content-disposition", StringComparison.OrdinalIgnoreCase); - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartFileContent.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartFileContent.cs deleted file mode 100644 index 08f65028b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Client/MultipartFileContent.cs +++ /dev/null @@ -1,92 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Client -{ - using System.Collections.Generic; - using System.Net.Http; - using System.Net.Http.Headers; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// MultipartFileContent. - /// - internal class MultipartFileContent : MultipartContent - { - /// - /// Initializes a new instance of the class. - /// - /// file. - public MultipartFileContent(FileStreamInfo file) - { - this.File = file; - } - - /// - /// Initializes a new instance of the class. - /// - /// file. - /// headers. - public MultipartFileContent( - FileStreamInfo file, - IReadOnlyDictionary> headers) - : base(headers) - { - this.File = file; - } - - /// - /// Gets file. - /// - public FileStreamInfo File { get; } - - /// - /// Rewind the stream. - /// - public override void Rewind() - { - this.File.FileStream.Position = 0; - } - - /// - /// ToHttpContent. - /// - /// contentDispositionName. - /// HttpContent. - public override HttpContent ToHttpContent(string contentDispositionName) - { - var streamContent = new StreamContent(this.File.FileStream); - this.SetHeaders(contentDispositionName, streamContent.Headers); - - return streamContent; - } - - /// - /// SetHeaders. - /// - /// contentDispositionName. - /// headers. - protected override void SetHeaders( - string contentDispositionName, - HttpContentHeaders headers) - { - base.SetHeaders(contentDispositionName, headers); - - headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") - { - Name = contentDispositionName, - FileName = string.IsNullOrWhiteSpace(this.File.FileName) ? "file" : this.File.FileName, - }; - - if (!string.IsNullOrEmpty(this.File.ContentType)) - { - headers.ContentType = new MediaTypeHeaderValue(this.File.ContentType); - } - else if (!this.Headers.ContainsKey("content-type")) - { - headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); - } - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryConfiguration.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryConfiguration.cs deleted file mode 100644 index 116590ec6..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryConfiguration.cs +++ /dev/null @@ -1,87 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration -{ - /// - /// Holds configurations for a particular HTTP request. - /// - internal class RetryConfiguration - { - /// - /// The option to override HTTP method whitelist configuration for the request in retries. - /// - public RetryOption RetryOption { get; } - - /// - /// Default constructor. - /// - /// The option to override retry configurations for a particular request. - private RetryConfiguration(RetryOption retryOption) - { - this.RetryOption = retryOption; - } - - public override string ToString() - { - return "RetryConfiguration [retryOption=" + RetryOption + "]"; - } - - /// - /// Class to build instances of . - /// - public class Builder - { - private RetryOption retryOption = Configuration.RetryOption.Default; - - /// - /// The option to override retry configurations for a particular request. - /// - /// The RetryOption to set. - /// - public Builder RetryOption(RetryOption retryOption) - { - this.retryOption = retryOption; - return this; - } - - /// - /// Builds a new RetryConfiguration object using the set fields. - /// - /// - public RetryConfiguration Build() - { - return new RetryConfiguration(retryOption); - } - } - } - - /// - /// Holds default for HTTP requests. - /// - internal sealed class DefaultRetryConfiguration - { - /// - /// The default instance of for the retries in request. - /// - private static readonly RetryConfiguration retryConfiguration = new RetryConfiguration.Builder().Build(); - - /// - /// Static constructor. - /// - static DefaultRetryConfiguration() - { - } - - /// - /// Returns default . - /// - public static RetryConfiguration RetryConfiguration - { - get - { - return retryConfiguration; - } - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryOption.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryOption.cs deleted file mode 100644 index 09948ee0d..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/Configuration/RetryOption.cs +++ /dev/null @@ -1,53 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Request.Configuration -{ - - /// - /// Retry options enumeration for HTTP request. - /// - internal enum RetryOption - { - /// - /// To retry request, ignoring httpMethods whitelist. - /// - EnableForHttpMethod, - - /// - /// To disable retries for the request. - /// - Disable, - - /// - /// To use global httpMethods whitelist to determine if request needs retrying. - /// - Default - } - - /// - /// RetryOption enumeration extention class. - /// - internal static class RetryOptionExtensions - { - /// - /// Determines whether retrying for the request is allowed or not. - /// - /// Enum to run the validation on. - /// Flag if the global list of HTTP method contains the request method. - /// True if retrying for the request is allowed. - public static bool IsRetryAllowed(this RetryOption retryOption, bool isWhitelistedRequestMethod) - { - switch (retryOption) - { - case RetryOption.EnableForHttpMethod: - return true; - case RetryOption.Disable: - return false; - case RetryOption.Default: - return isWhitelistedRequestMethod; - } - return isWhitelistedRequestMethod; - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/HttpRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/HttpRequest.cs deleted file mode 100644 index 0e0c2fdff..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Request/HttpRequest.cs +++ /dev/null @@ -1,187 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Request -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Net.Http; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// HttpRequest stores necessary information about the http request. - /// - public sealed class HttpRequest - { - /// - /// Initializes a new instance of the class. - /// - /// Http verb to use for the http request. - /// The query url for the http request. - public HttpRequest(HttpMethod method, string queryUrl) - { - this.HttpMethod = method; - this.QueryUrl = queryUrl; - } - - /// - /// Initializes a new instance of the class. - /// - /// Http verb to use for the http request. - /// The query url for the http request. - /// Headers to send with the request. - /// Basic auth username. - /// Basic auth password. - /// QueryParameters. - public HttpRequest( - HttpMethod method, - string queryUrl, - Dictionary headers, - string username, - string password, - Dictionary queryParameters = null) - : this(method, queryUrl) - { - this.QueryParameters = queryParameters; - this.Headers = headers; - this.Username = username; - this.Password = password; - } - - /// - /// Initializes a new instance of the class. - /// - /// Http verb to use for the http request. - /// The query url for the http request. - /// Headers to send with the request. - /// The string to use as raw body of the http request. - /// Basic auth username. - /// Basic auth password. - /// QueryParameters. - public HttpRequest( - HttpMethod method, - string queryUrl, - Dictionary headers, - object body, - string username, - string password, - Dictionary queryParameters = null) - : this(method, queryUrl, headers, username, password, queryParameters: queryParameters) - { - this.Body = body; - } - - /// - /// Initializes a new instance of the class. - /// - /// Http verb to use for the http request. - /// The query url for the http request. - /// Headers to send with the request. - /// Form parameters collection for the request. - /// Basic auth username. - /// Basic auth password. - /// QueryParameters. - public HttpRequest( - HttpMethod method, - string queryUrl, - Dictionary headers, - List> formParameters, - string username, - string password, - Dictionary queryParameters = null) - : this(method, queryUrl, headers, username, password, queryParameters: queryParameters) - { - this.FormParameters = formParameters; - } - - /// - /// Gets the HTTP verb to use for this request. - /// - public HttpMethod HttpMethod { get; } - - /// - /// Gets the query url for the http request. - /// - public string QueryUrl { get; } - - /// - /// Gets the query parameters collection for the current http request. - /// - public Dictionary QueryParameters { get; private set; } - - /// - /// Gets the headers collection for the current http request. - /// - public Dictionary Headers { get; private set; } - - /// - /// Gets the form parameters for the current http request. - /// - public List> FormParameters { get; } - - /// - /// Gets the optional raw string to send as request body. - /// - public object Body { get; } - - /// - /// Gets the optional username for Basic Auth. - /// - public string Username { get; } - - /// - /// Gets the optional password for Basic Auth. - /// - public string Password { get; } - - /// - /// Concatenate values from a Dictionary to this object. - /// - /// headersToAdd. - /// Dictionary. - public Dictionary AddHeaders(Dictionary headersToAdd) - { - if (this.Headers == null) - { - this.Headers = new Dictionary(headersToAdd); - } - else - { - this.Headers = this.Headers.Concat(headersToAdd).ToDictionary(x => x.Key, x => x.Value); - } - - return this.Headers; - } - - /// - /// Concatenate values from a Dictionary to query parameters dictionary. - /// - /// queryParamaters. - public void AddQueryParameters(Dictionary queryParamaters) - { - if (this.QueryParameters == null) - { - this.QueryParameters = new Dictionary(queryParamaters); - } - else - { - this.QueryParameters = this.QueryParameters.Concat(queryParamaters).ToDictionary(x => x.Key, x => x.Value); - } - } - - /// - public override string ToString() - { - return $" HttpMethod = {this.HttpMethod}, " + - $" QueryUrl = {this.QueryUrl}, " + - $" QueryParameters = {ApiHelper.JsonSerialize(this.QueryParameters)}, " + - $" Headers = {ApiHelper.JsonSerialize(this.Headers)}, " + - $" FormParameters = {ApiHelper.JsonSerialize(this.FormParameters)}, " + - $" Body = {this.Body}, " + - $" Username = {this.Username}, " + - $" Password = {this.Password}"; - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpResponse.cs deleted file mode 100644 index 1e5e3a655..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpResponse.cs +++ /dev/null @@ -1,52 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Response -{ - using System; - using System.Collections.Generic; - using System.IO; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// HttpResponse stores necessary information about the http response. - /// - public class HttpResponse - { - /// - /// Initializes a new instance of the class. - /// - /// statusCode. - /// headers. - /// rawBody. - public HttpResponse(int statusCode, Dictionary headers, Stream rawBody) - { - this.StatusCode = statusCode; - this.Headers = headers; - this.RawBody = rawBody; - } - - /// - /// Gets the HTTP Status code of the http response. - /// - public int StatusCode { get; } - - /// - /// Gets the headers of the http response. - /// - public Dictionary Headers { get; } - - /// - /// Gets the stream of the body. - /// - public Stream RawBody { get; } - - /// - public override string ToString() - { - return $" StatusCode = {this.StatusCode}, " + - $" Headers = {ApiHelper.JsonSerialize(this.Headers)}, " + - $" RawBody = {this.RawBody}"; - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpStringResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpStringResponse.cs deleted file mode 100644 index adefd83da..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Http/Response/HttpStringResponse.cs +++ /dev/null @@ -1,41 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Http.Response -{ - using System; - using System.Collections.Generic; - using System.IO; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// HttpStringResponse inherits from HttpResponse and has additional property - /// of string body. - /// - public sealed class HttpStringResponse : HttpResponse - { - /// - /// Initializes a new instance of the class. - /// - /// statusCode. - /// headers. - /// rawBody. - /// body. - public HttpStringResponse(int statusCode, Dictionary headers, Stream rawBody, string body) : base(statusCode, headers, rawBody) - { - this.Body = body; - } - - /// - /// Gets the raw string body of the http response. - /// - public string Body { get; } - - /// - public override string ToString() - { - return $"Body = {this.Body}" + - $"{base.ToString()}: "; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/IConfiguration.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/IConfiguration.cs deleted file mode 100644 index 432fbe156..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/IConfiguration.cs +++ /dev/null @@ -1,38 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard -{ - using System; - using System.Net; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Models; - - /// - /// IConfiguration. - /// - public interface IConfiguration - { - /// - /// Gets Current API environment. - /// - Environment Environment { get; } - - /// - /// Gets BaseUrl value. - /// - string BaseUrl { get; } - - /// - /// Gets the OAuth 2.0 Access Token. - /// - string AccessToken { get; } - - /// - /// Gets the URL for a particular alias in the current environment and appends it with template parameters. - /// - /// Default value:DEFAULT. - /// Returns the baseurl. - string GetBaseUri(Server alias = Server.Default); - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessEnum.cs deleted file mode 100644 index 005a074ff..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessEnum.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// AccessEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum AccessEnum - { - /// - /// READONLY. - /// - [EnumMember(Value = "READ_ONLY")] - READONLY, - - /// - /// MODIFY. - /// - [EnumMember(Value = "MODIFY")] - MODIFY - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelEnum.cs deleted file mode 100644 index 1eb1eebbb..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelEnum.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// AccessLevelEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum AccessLevelEnum - { - /// - /// FULL. - /// - [EnumMember(Value = "FULL")] - FULL, - - /// - /// REPORTBOOKVIEW. - /// - [EnumMember(Value = "REPORT_BOOK_VIEW")] - REPORTBOOKVIEW - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelInput.cs deleted file mode 100644 index 7b14aa349..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AccessLevelInput.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// AccessLevelInput. - /// - public class AccessLevelInput - { - /// - /// Initializes a new instance of the class. - /// - public AccessLevelInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// type. - /// access. - public AccessLevelInput( - string name = null, - string id = null, - Models.Type1Enum? type = null, - Models.AccessEnum? access = null) - { - this.Name = name; - this.Id = id; - this.Type = type; - this.Access = access; - } - - /// - /// Username or name of the user group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the user or user group - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Type of access detail provided - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.Type1Enum? Type { get; set; } - - /// - /// Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. - /// - [JsonProperty("access", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.AccessEnum? Access { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"AccessLevelInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is AccessLevelInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Access == null && other.Access == null) || (this.Access?.Equals(other.Access) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type.ToString())}"); - toStringOutput.Add($"this.Access = {(this.Access == null ? "null" : this.Access.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AddTableInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AddTableInput.cs deleted file mode 100644 index 0b48693ff..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AddTableInput.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// AddTableInput. - /// - public class AddTableInput - { - /// - /// Initializes a new instance of the class. - /// - public AddTableInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// dbName. - /// schemaName. - /// columns. - public AddTableInput( - string name, - string dbName, - string schemaName, - List columns) - { - this.Name = name; - this.DbName = dbName; - this.SchemaName = schemaName; - this.Columns = columns; - } - - /// - /// Name of the table - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - /// Name of the database in the data platform - /// - [JsonProperty("dbName")] - public string DbName { get; set; } - - /// - /// Name of the schema in the database - /// - [JsonProperty("schemaName")] - public string SchemaName { get; set; } - - /// - /// A JSON array of column details - /// - [JsonProperty("columns")] - public List Columns { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"AddTableInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is AddTableInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.DbName == null && other.DbName == null) || (this.DbName?.Equals(other.DbName) == true)) && - ((this.SchemaName == null && other.SchemaName == null) || (this.SchemaName?.Equals(other.SchemaName) == true)) && - ((this.Columns == null && other.Columns == null) || (this.Columns?.Equals(other.Columns) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.DbName = {(this.DbName == null ? "null" : this.DbName == string.Empty ? "" : this.DbName)}"); - toStringOutput.Add($"this.SchemaName = {(this.SchemaName == null ? "null" : this.SchemaName == string.Empty ? "" : this.SchemaName)}"); - toStringOutput.Add($"this.Columns = {(this.Columns == null ? "null" : $"[{string.Join(", ", this.Columns)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AdminsyncPrincipalResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AdminsyncPrincipalResponse.cs deleted file mode 100644 index 01965556f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AdminsyncPrincipalResponse.cs +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// AdminsyncPrincipalResponse. - /// - public class AdminsyncPrincipalResponse - { - /// - /// Initializes a new instance of the class. - /// - public AdminsyncPrincipalResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// usersAdded. - /// usersDeleted. - /// usersUpdated. - /// groupsAdded. - /// groupsDeleted. - /// groupsUpdated. - public AdminsyncPrincipalResponse( - List usersAdded = null, - List usersDeleted = null, - List usersUpdated = null, - List groupsAdded = null, - List groupsDeleted = null, - List groupsUpdated = null) - { - this.UsersAdded = usersAdded; - this.UsersDeleted = usersDeleted; - this.UsersUpdated = usersUpdated; - this.GroupsAdded = groupsAdded; - this.GroupsDeleted = groupsDeleted; - this.GroupsUpdated = groupsUpdated; - } - - /// - /// Username of list of users added - /// - [JsonProperty("usersAdded", NullValueHandling = NullValueHandling.Ignore)] - public List UsersAdded { get; set; } - - /// - /// Username of list of users deleted - /// - [JsonProperty("usersDeleted", NullValueHandling = NullValueHandling.Ignore)] - public List UsersDeleted { get; set; } - - /// - /// Username of list of users updated - /// - [JsonProperty("usersUpdated", NullValueHandling = NullValueHandling.Ignore)] - public List UsersUpdated { get; set; } - - /// - /// Group name of list of groups added - /// - [JsonProperty("groupsAdded", NullValueHandling = NullValueHandling.Ignore)] - public List GroupsAdded { get; set; } - - /// - /// Group name of list of groups deleted - /// - [JsonProperty("groupsDeleted", NullValueHandling = NullValueHandling.Ignore)] - public List GroupsDeleted { get; set; } - - /// - /// Group name of list of groups updated - /// - [JsonProperty("groupsUpdated", NullValueHandling = NullValueHandling.Ignore)] - public List GroupsUpdated { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"AdminsyncPrincipalResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is AdminsyncPrincipalResponse other && - ((this.UsersAdded == null && other.UsersAdded == null) || (this.UsersAdded?.Equals(other.UsersAdded) == true)) && - ((this.UsersDeleted == null && other.UsersDeleted == null) || (this.UsersDeleted?.Equals(other.UsersDeleted) == true)) && - ((this.UsersUpdated == null && other.UsersUpdated == null) || (this.UsersUpdated?.Equals(other.UsersUpdated) == true)) && - ((this.GroupsAdded == null && other.GroupsAdded == null) || (this.GroupsAdded?.Equals(other.GroupsAdded) == true)) && - ((this.GroupsDeleted == null && other.GroupsDeleted == null) || (this.GroupsDeleted?.Equals(other.GroupsDeleted) == true)) && - ((this.GroupsUpdated == null && other.GroupsUpdated == null) || (this.GroupsUpdated?.Equals(other.GroupsUpdated) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.UsersAdded = {(this.UsersAdded == null ? "null" : $"[{string.Join(", ", this.UsersAdded)} ]")}"); - toStringOutput.Add($"this.UsersDeleted = {(this.UsersDeleted == null ? "null" : $"[{string.Join(", ", this.UsersDeleted)} ]")}"); - toStringOutput.Add($"this.UsersUpdated = {(this.UsersUpdated == null ? "null" : $"[{string.Join(", ", this.UsersUpdated)} ]")}"); - toStringOutput.Add($"this.GroupsAdded = {(this.GroupsAdded == null ? "null" : $"[{string.Join(", ", this.GroupsAdded)} ]")}"); - toStringOutput.Add($"this.GroupsDeleted = {(this.GroupsDeleted == null ? "null" : $"[{string.Join(", ", this.GroupsDeleted)} ]")}"); - toStringOutput.Add($"this.GroupsUpdated = {(this.GroupsUpdated == null ? "null" : $"[{string.Join(", ", this.GroupsUpdated)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AnswerQueryResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AnswerQueryResponse.cs deleted file mode 100644 index 4e4e343b4..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/AnswerQueryResponse.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// AnswerQueryResponse. - /// - public class AnswerQueryResponse - { - /// - /// Initializes a new instance of the class. - /// - public AnswerQueryResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// querySql. - public AnswerQueryResponse( - string name = null, - string id = null, - string querySql = null) - { - this.Name = name; - this.Id = id; - this.QuerySql = querySql; - } - - /// - /// The name of the saved Answer - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the saved Answer - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// SQL query associated with the saved Answer - /// - [JsonProperty("querySql", NullValueHandling = NullValueHandling.Ignore)] - public string QuerySql { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"AnswerQueryResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is AnswerQueryResponse other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.QuerySql == null && other.QuerySql == null) || (this.QuerySql?.Equals(other.QuerySql) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.QuerySql = {(this.QuerySql == null ? "null" : this.QuerySql == string.Empty ? "" : this.QuerySql)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ClientState.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ClientState.cs deleted file mode 100644 index 684c8f3be..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ClientState.cs +++ /dev/null @@ -1,83 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ClientState. - /// - public class ClientState - { - /// - /// Initializes a new instance of the class. - /// - public ClientState() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// color. - public ClientState( - string color = null) - { - this.Color = color; - } - - /// - /// Color assigned to the tag - /// - [JsonProperty("color", NullValueHandling = NullValueHandling.Ignore)] - public string Color { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ClientState : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ClientState other && - ((this.Color == null && other.Color == null) || (this.Color?.Equals(other.Color) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Color = {(this.Color == null ? "null" : this.Color == string.Empty ? "" : this.Color)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ColumnsInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ColumnsInput.cs deleted file mode 100644 index 5a84b0512..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ColumnsInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ColumnsInput. - /// - public class ColumnsInput - { - /// - /// Initializes a new instance of the class. - /// - public ColumnsInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// dataType. - public ColumnsInput( - string name, - string dataType) - { - this.Name = name; - this.DataType = dataType; - } - - /// - /// Name of the column - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - /// Datatype of the column - /// - [JsonProperty("dataType")] - public string DataType { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ColumnsInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ColumnsInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.DataType == null && other.DataType == null) || (this.DataType?.Equals(other.DataType) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.DataType = {(this.DataType == null ? "null" : this.DataType == string.Empty ? "" : this.DataType)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumn.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumn.cs deleted file mode 100644 index 727121203..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumn.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionColumn. - /// - public class ConnectionColumn - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionColumn() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// type. - /// column. - public ConnectionColumn( - string name = null, - string type = null, - List column = null) - { - this.Name = name; - this.Type = type; - this.Column = column; - } - - /// - /// Name of the table - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Type of the Table - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// List of columns in the table - /// - [JsonProperty("column", NullValueHandling = NullValueHandling.Ignore)] - public List Column { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionColumn : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionColumn other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Column == null && other.Column == null) || (this.Column?.Equals(other.Column) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Column = {(this.Column == null ? "null" : $"[{string.Join(", ", this.Column)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumnsShema.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumnsShema.cs deleted file mode 100644 index 06e487914..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionColumnsShema.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionColumnsShema. - /// - public class ConnectionColumnsShema - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionColumnsShema() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// dbName. - /// schemaName. - /// columns. - public ConnectionColumnsShema( - string name = null, - string dbName = null, - string schemaName = null, - List columns = null) - { - this.Name = name; - this.DbName = dbName; - this.SchemaName = schemaName; - this.Columns = columns; - } - - /// - /// Name of the table - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Name of the database - /// - [JsonProperty("dbName", NullValueHandling = NullValueHandling.Ignore)] - public string DbName { get; set; } - - /// - /// Name of the schema - /// - [JsonProperty("schemaName", NullValueHandling = NullValueHandling.Ignore)] - public string SchemaName { get; set; } - - /// - /// List of columns in the table - /// - [JsonProperty("columns", NullValueHandling = NullValueHandling.Ignore)] - public List Columns { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionColumnsShema : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionColumnsShema other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.DbName == null && other.DbName == null) || (this.DbName?.Equals(other.DbName) == true)) && - ((this.SchemaName == null && other.SchemaName == null) || (this.SchemaName?.Equals(other.SchemaName) == true)) && - ((this.Columns == null && other.Columns == null) || (this.Columns?.Equals(other.Columns) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.DbName = {(this.DbName == null ? "null" : this.DbName == string.Empty ? "" : this.DbName)}"); - toStringOutput.Add($"this.SchemaName = {(this.SchemaName == null ? "null" : this.SchemaName == string.Empty ? "" : this.SchemaName)}"); - toStringOutput.Add($"this.Columns = {(this.Columns == null ? "null" : $"[{string.Join(", ", this.Columns)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionDatabaseType.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionDatabaseType.cs deleted file mode 100644 index 8251bec8f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionDatabaseType.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionDatabaseType. - /// - public class ConnectionDatabaseType - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionDatabaseType() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// schema. - public ConnectionDatabaseType( - string name = null, - List schema = null) - { - this.Name = name; - this.Schema = schema; - } - - /// - /// Name of the database - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// List of schemas - /// - [JsonProperty("schema", NullValueHandling = NullValueHandling.Ignore)] - public List Schema { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionDatabaseType : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionDatabaseType other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Schema == null && other.Schema == null) || (this.Schema?.Equals(other.Schema) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Schema = {(this.Schema == null ? "null" : $"[{string.Join(", ", this.Schema)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionResponse.cs deleted file mode 100644 index fa9a4b722..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionResponse.cs +++ /dev/null @@ -1,303 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionResponse. - /// - public class ConnectionResponse - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// description. - /// type. - /// id. - /// scheduled. - /// connectionType. - /// configuration. - /// isExternal. - /// isDeprecated. - /// isDeleted. - /// isHidden. - /// complete. - /// indexVersion. - /// generationNum. - /// created. - /// modified. - /// author. - /// modifiedBy. - /// owner. - /// tags. - /// tables. - public ConnectionResponse( - string name = null, - string description = null, - string type = null, - string id = null, - bool? scheduled = null, - string connectionType = null, - string configuration = null, - bool? isExternal = null, - bool? isDeprecated = null, - bool? isDeleted = null, - bool? isHidden = null, - bool? complete = null, - double? indexVersion = null, - double? generationNum = null, - string created = null, - string modified = null, - Models.UserNameAndID author = null, - Models.UserNameAndID modifiedBy = null, - Models.UserNameAndID owner = null, - List tags = null, - List tables = null) - { - this.Name = name; - this.Description = description; - this.Type = type; - this.Id = id; - this.Scheduled = scheduled; - this.ConnectionType = connectionType; - this.Configuration = configuration; - this.IsExternal = isExternal; - this.IsDeprecated = isDeprecated; - this.IsDeleted = isDeleted; - this.IsHidden = isHidden; - this.Complete = complete; - this.IndexVersion = indexVersion; - this.GenerationNum = generationNum; - this.Created = created; - this.Modified = modified; - this.Author = author; - this.ModifiedBy = modifiedBy; - this.Owner = owner; - this.Tags = tags; - this.Tables = tables; - } - - /// - /// Name of the connection - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Description associated with the connection - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// GUID of the connection - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Indicates if the data sync is scheduled for this connection - /// - [JsonProperty("scheduled", NullValueHandling = NullValueHandling.Ignore)] - public bool? Scheduled { get; set; } - - /// - /// Gets or sets ConnectionType. - /// - [JsonProperty("connectionType", NullValueHandling = NullValueHandling.Ignore)] - public string ConnectionType { get; set; } - - /// - /// Configuration properties of the connection - /// - [JsonProperty("configuration", NullValueHandling = NullValueHandling.Ignore)] - public string Configuration { get; set; } - - /// - /// Gets or sets IsExternal. - /// - [JsonProperty("isExternal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsExternal { get; set; } - - /// - /// Indicates if the connection is deprecated - /// - [JsonProperty("isDeprecated", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeprecated { get; set; } - - /// - /// Indicates if the connection is deleted - /// - [JsonProperty("isDeleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeleted { get; set; } - - /// - /// Indicates if the connection is hideen - /// - [JsonProperty("isHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsHidden { get; set; } - - /// - /// Indicates if the all the properties of connection is provided - /// - [JsonProperty("complete", NullValueHandling = NullValueHandling.Ignore)] - public bool? Complete { get; set; } - - /// - /// Gets or sets IndexVersion. - /// - [JsonProperty("indexVersion", NullValueHandling = NullValueHandling.Ignore)] - public double? IndexVersion { get; set; } - - /// - /// Gets or sets GenerationNum. - /// - [JsonProperty("generationNum", NullValueHandling = NullValueHandling.Ignore)] - public double? GenerationNum { get; set; } - - /// - /// Date and time when the connection was created - /// - [JsonProperty("created", NullValueHandling = NullValueHandling.Ignore)] - public string Created { get; set; } - - /// - /// Date and time of last modification of the connection - /// - [JsonProperty("modified", NullValueHandling = NullValueHandling.Ignore)] - public string Modified { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// Gets or sets ModifiedBy. - /// - [JsonProperty("modifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID ModifiedBy { get; set; } - - /// - /// Gets or sets Owner. - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Owner { get; set; } - - /// - /// List of tags assigned to the connection - /// - [JsonProperty("tags", NullValueHandling = NullValueHandling.Ignore)] - public List Tags { get; set; } - - /// - /// List of tables linked to this connection - /// - [JsonProperty("tables", NullValueHandling = NullValueHandling.Ignore)] - public List Tables { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionResponse other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Scheduled == null && other.Scheduled == null) || (this.Scheduled?.Equals(other.Scheduled) == true)) && - ((this.ConnectionType == null && other.ConnectionType == null) || (this.ConnectionType?.Equals(other.ConnectionType) == true)) && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)) && - ((this.IsExternal == null && other.IsExternal == null) || (this.IsExternal?.Equals(other.IsExternal) == true)) && - ((this.IsDeprecated == null && other.IsDeprecated == null) || (this.IsDeprecated?.Equals(other.IsDeprecated) == true)) && - ((this.IsDeleted == null && other.IsDeleted == null) || (this.IsDeleted?.Equals(other.IsDeleted) == true)) && - ((this.IsHidden == null && other.IsHidden == null) || (this.IsHidden?.Equals(other.IsHidden) == true)) && - ((this.Complete == null && other.Complete == null) || (this.Complete?.Equals(other.Complete) == true)) && - ((this.IndexVersion == null && other.IndexVersion == null) || (this.IndexVersion?.Equals(other.IndexVersion) == true)) && - ((this.GenerationNum == null && other.GenerationNum == null) || (this.GenerationNum?.Equals(other.GenerationNum) == true)) && - ((this.Created == null && other.Created == null) || (this.Created?.Equals(other.Created) == true)) && - ((this.Modified == null && other.Modified == null) || (this.Modified?.Equals(other.Modified) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.ModifiedBy == null && other.ModifiedBy == null) || (this.ModifiedBy?.Equals(other.ModifiedBy) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)) && - ((this.Tags == null && other.Tags == null) || (this.Tags?.Equals(other.Tags) == true)) && - ((this.Tables == null && other.Tables == null) || (this.Tables?.Equals(other.Tables) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Scheduled = {(this.Scheduled == null ? "null" : this.Scheduled.ToString())}"); - toStringOutput.Add($"this.ConnectionType = {(this.ConnectionType == null ? "null" : this.ConnectionType == string.Empty ? "" : this.ConnectionType)}"); - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - toStringOutput.Add($"this.IsExternal = {(this.IsExternal == null ? "null" : this.IsExternal.ToString())}"); - toStringOutput.Add($"this.IsDeprecated = {(this.IsDeprecated == null ? "null" : this.IsDeprecated.ToString())}"); - toStringOutput.Add($"this.IsDeleted = {(this.IsDeleted == null ? "null" : this.IsDeleted.ToString())}"); - toStringOutput.Add($"this.IsHidden = {(this.IsHidden == null ? "null" : this.IsHidden.ToString())}"); - toStringOutput.Add($"this.Complete = {(this.Complete == null ? "null" : this.Complete.ToString())}"); - toStringOutput.Add($"this.IndexVersion = {(this.IndexVersion == null ? "null" : this.IndexVersion.ToString())}"); - toStringOutput.Add($"this.GenerationNum = {(this.GenerationNum == null ? "null" : this.GenerationNum.ToString())}"); - toStringOutput.Add($"this.Created = {(this.Created == null ? "null" : this.Created == string.Empty ? "" : this.Created)}"); - toStringOutput.Add($"this.Modified = {(this.Modified == null ? "null" : this.Modified == string.Empty ? "" : this.Modified)}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.ModifiedBy = {(this.ModifiedBy == null ? "null" : this.ModifiedBy.ToString())}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner.ToString())}"); - toStringOutput.Add($"this.Tags = {(this.Tags == null ? "null" : $"[{string.Join(", ", this.Tags)} ]")}"); - toStringOutput.Add($"this.Tables = {(this.Tables == null ? "null" : $"[{string.Join(", ", this.Tables)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsInput.cs deleted file mode 100644 index d93c01b3e..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsInput.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionTableColumnsInput. - /// - public class ConnectionTableColumnsInput - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionTableColumnsInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// dbName. - /// schemaName. - /// name. - public ConnectionTableColumnsInput( - string dbName, - string schemaName, - string name) - { - this.DbName = dbName; - this.SchemaName = schemaName; - this.Name = name; - } - - /// - /// Name of the database - /// - [JsonProperty("dbName")] - public string DbName { get; set; } - - /// - /// Name of the schema - /// - [JsonProperty("schemaName")] - public string SchemaName { get; set; } - - /// - /// Name of the table - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionTableColumnsInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionTableColumnsInput other && - ((this.DbName == null && other.DbName == null) || (this.DbName?.Equals(other.DbName) == true)) && - ((this.SchemaName == null && other.SchemaName == null) || (this.SchemaName?.Equals(other.SchemaName) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.DbName = {(this.DbName == null ? "null" : this.DbName == string.Empty ? "" : this.DbName)}"); - toStringOutput.Add($"this.SchemaName = {(this.SchemaName == null ? "null" : this.SchemaName == string.Empty ? "" : this.SchemaName)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsResponse.cs deleted file mode 100644 index d501e434c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableColumnsResponse.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionTableColumnsResponse. - /// - public class ConnectionTableColumnsResponse - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionTableColumnsResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// table. - public ConnectionTableColumnsResponse( - string id = null, - List table = null) - { - this.Id = id; - this.Table = table; - } - - /// - /// Connection id - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// List of table details - /// - [JsonProperty("table", NullValueHandling = NullValueHandling.Ignore)] - public List Table { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionTableColumnsResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionTableColumnsResponse other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Table == null && other.Table == null) || (this.Table?.Equals(other.Table) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Table = {(this.Table == null ? "null" : $"[{string.Join(", ", this.Table)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableResponse.cs deleted file mode 100644 index 7d0bf5d85..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableResponse.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionTableResponse. - /// - public class ConnectionTableResponse - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionTableResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// database. - public ConnectionTableResponse( - string id = null, - List database = null) - { - this.Id = id; - this.Database = database; - } - - /// - /// Connection id - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// List of databases - /// - [JsonProperty("database", NullValueHandling = NullValueHandling.Ignore)] - public List Database { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionTableResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionTableResponse other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Database == null && other.Database == null) || (this.Database?.Equals(other.Database) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Database = {(this.Database == null ? "null" : $"[{string.Join(", ", this.Database)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableSchema.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableSchema.cs deleted file mode 100644 index 01858ca00..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ConnectionTableSchema.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ConnectionTableSchema. - /// - public class ConnectionTableSchema - { - /// - /// Initializes a new instance of the class. - /// - public ConnectionTableSchema() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// table. - public ConnectionTableSchema( - string name = null, - List table = null) - { - this.Name = name; - this.Table = table; - } - - /// - /// Name of the schema - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// List of table details - /// - [JsonProperty("table", NullValueHandling = NullValueHandling.Ignore)] - public List Table { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ConnectionTableSchema : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ConnectionTableSchema other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Table == null && other.Table == null) || (this.Table?.Equals(other.Table) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Table = {(this.Table == null ? "null" : $"[{string.Join(", ", this.Table)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateConnectionResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateConnectionResponse.cs deleted file mode 100644 index 71a17b8d4..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateConnectionResponse.cs +++ /dev/null @@ -1,303 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// CreateConnectionResponse. - /// - public class CreateConnectionResponse - { - /// - /// Initializes a new instance of the class. - /// - public CreateConnectionResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// description. - /// type. - /// id. - /// scheduled. - /// connectionType. - /// configuration. - /// isExternal. - /// isDeprecated. - /// isDeleted. - /// isHidden. - /// complete. - /// indexVersion. - /// generationNum. - /// created. - /// modified. - /// author. - /// modifiedBy. - /// owner. - /// tags. - /// tables. - public CreateConnectionResponse( - string name = null, - string description = null, - string type = null, - string id = null, - bool? scheduled = null, - string connectionType = null, - string configuration = null, - bool? isExternal = null, - bool? isDeprecated = null, - bool? isDeleted = null, - bool? isHidden = null, - bool? complete = null, - double? indexVersion = null, - double? generationNum = null, - string created = null, - string modified = null, - Models.UserNameAndID author = null, - Models.UserNameAndID modifiedBy = null, - Models.UserNameAndID owner = null, - List tags = null, - List tables = null) - { - this.Name = name; - this.Description = description; - this.Type = type; - this.Id = id; - this.Scheduled = scheduled; - this.ConnectionType = connectionType; - this.Configuration = configuration; - this.IsExternal = isExternal; - this.IsDeprecated = isDeprecated; - this.IsDeleted = isDeleted; - this.IsHidden = isHidden; - this.Complete = complete; - this.IndexVersion = indexVersion; - this.GenerationNum = generationNum; - this.Created = created; - this.Modified = modified; - this.Author = author; - this.ModifiedBy = modifiedBy; - this.Owner = owner; - this.Tags = tags; - this.Tables = tables; - } - - /// - /// Name of the connection - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Description associated with the connection - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// GUID of the connection - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Indicates if the data sync is scheduled for this connection - /// - [JsonProperty("scheduled", NullValueHandling = NullValueHandling.Ignore)] - public bool? Scheduled { get; set; } - - /// - /// Gets or sets ConnectionType. - /// - [JsonProperty("connectionType", NullValueHandling = NullValueHandling.Ignore)] - public string ConnectionType { get; set; } - - /// - /// Configuration properties of the connection - /// - [JsonProperty("configuration", NullValueHandling = NullValueHandling.Ignore)] - public string Configuration { get; set; } - - /// - /// Gets or sets IsExternal. - /// - [JsonProperty("isExternal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsExternal { get; set; } - - /// - /// Indicates if the connection is deprecated - /// - [JsonProperty("isDeprecated", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeprecated { get; set; } - - /// - /// Indicates if the connection is deleted - /// - [JsonProperty("isDeleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeleted { get; set; } - - /// - /// Indicates if the connection is hideen - /// - [JsonProperty("isHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsHidden { get; set; } - - /// - /// Indicates if the all the properties of connection is provided - /// - [JsonProperty("complete", NullValueHandling = NullValueHandling.Ignore)] - public bool? Complete { get; set; } - - /// - /// Gets or sets IndexVersion. - /// - [JsonProperty("indexVersion", NullValueHandling = NullValueHandling.Ignore)] - public double? IndexVersion { get; set; } - - /// - /// Gets or sets GenerationNum. - /// - [JsonProperty("generationNum", NullValueHandling = NullValueHandling.Ignore)] - public double? GenerationNum { get; set; } - - /// - /// Date and time when user account was created - /// - [JsonProperty("created", NullValueHandling = NullValueHandling.Ignore)] - public string Created { get; set; } - - /// - /// Date and time of last modification of user account - /// - [JsonProperty("modified", NullValueHandling = NullValueHandling.Ignore)] - public string Modified { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// Gets or sets ModifiedBy. - /// - [JsonProperty("modifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID ModifiedBy { get; set; } - - /// - /// Gets or sets Owner. - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Owner { get; set; } - - /// - /// List of tags assigned to the connection - /// - [JsonProperty("tags", NullValueHandling = NullValueHandling.Ignore)] - public List Tags { get; set; } - - /// - /// List of tables linked to this connection and details of the columns in the table - /// - [JsonProperty("tables", NullValueHandling = NullValueHandling.Ignore)] - public List Tables { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"CreateConnectionResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is CreateConnectionResponse other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Scheduled == null && other.Scheduled == null) || (this.Scheduled?.Equals(other.Scheduled) == true)) && - ((this.ConnectionType == null && other.ConnectionType == null) || (this.ConnectionType?.Equals(other.ConnectionType) == true)) && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)) && - ((this.IsExternal == null && other.IsExternal == null) || (this.IsExternal?.Equals(other.IsExternal) == true)) && - ((this.IsDeprecated == null && other.IsDeprecated == null) || (this.IsDeprecated?.Equals(other.IsDeprecated) == true)) && - ((this.IsDeleted == null && other.IsDeleted == null) || (this.IsDeleted?.Equals(other.IsDeleted) == true)) && - ((this.IsHidden == null && other.IsHidden == null) || (this.IsHidden?.Equals(other.IsHidden) == true)) && - ((this.Complete == null && other.Complete == null) || (this.Complete?.Equals(other.Complete) == true)) && - ((this.IndexVersion == null && other.IndexVersion == null) || (this.IndexVersion?.Equals(other.IndexVersion) == true)) && - ((this.GenerationNum == null && other.GenerationNum == null) || (this.GenerationNum?.Equals(other.GenerationNum) == true)) && - ((this.Created == null && other.Created == null) || (this.Created?.Equals(other.Created) == true)) && - ((this.Modified == null && other.Modified == null) || (this.Modified?.Equals(other.Modified) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.ModifiedBy == null && other.ModifiedBy == null) || (this.ModifiedBy?.Equals(other.ModifiedBy) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)) && - ((this.Tags == null && other.Tags == null) || (this.Tags?.Equals(other.Tags) == true)) && - ((this.Tables == null && other.Tables == null) || (this.Tables?.Equals(other.Tables) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Scheduled = {(this.Scheduled == null ? "null" : this.Scheduled.ToString())}"); - toStringOutput.Add($"this.ConnectionType = {(this.ConnectionType == null ? "null" : this.ConnectionType == string.Empty ? "" : this.ConnectionType)}"); - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - toStringOutput.Add($"this.IsExternal = {(this.IsExternal == null ? "null" : this.IsExternal.ToString())}"); - toStringOutput.Add($"this.IsDeprecated = {(this.IsDeprecated == null ? "null" : this.IsDeprecated.ToString())}"); - toStringOutput.Add($"this.IsDeleted = {(this.IsDeleted == null ? "null" : this.IsDeleted.ToString())}"); - toStringOutput.Add($"this.IsHidden = {(this.IsHidden == null ? "null" : this.IsHidden.ToString())}"); - toStringOutput.Add($"this.Complete = {(this.Complete == null ? "null" : this.Complete.ToString())}"); - toStringOutput.Add($"this.IndexVersion = {(this.IndexVersion == null ? "null" : this.IndexVersion.ToString())}"); - toStringOutput.Add($"this.GenerationNum = {(this.GenerationNum == null ? "null" : this.GenerationNum.ToString())}"); - toStringOutput.Add($"this.Created = {(this.Created == null ? "null" : this.Created == string.Empty ? "" : this.Created)}"); - toStringOutput.Add($"this.Modified = {(this.Modified == null ? "null" : this.Modified == string.Empty ? "" : this.Modified)}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.ModifiedBy = {(this.ModifiedBy == null ? "null" : this.ModifiedBy.ToString())}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner.ToString())}"); - toStringOutput.Add($"this.Tags = {(this.Tags == null ? "null" : $"[{string.Join(", ", this.Tags)} ]")}"); - toStringOutput.Add($"this.Tables = {(this.Tables == null ? "null" : $"[{string.Join(", ", this.Tables)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateTableResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateTableResponse.cs deleted file mode 100644 index 476ce6365..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/CreateTableResponse.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// CreateTableResponse. - /// - public class CreateTableResponse - { - /// - /// Initializes a new instance of the class. - /// - public CreateTableResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// logicalTableHeader. - /// physicalTableId. - public CreateTableResponse( - Models.LogicalTableHeader logicalTableHeader = null, - string physicalTableId = null) - { - this.LogicalTableHeader = logicalTableHeader; - this.PhysicalTableId = physicalTableId; - } - - /// - /// Gets or sets LogicalTableHeader. - /// - [JsonProperty("logicalTableHeader", NullValueHandling = NullValueHandling.Ignore)] - public Models.LogicalTableHeader LogicalTableHeader { get; set; } - - /// - /// Gets or sets PhysicalTableId. - /// - [JsonProperty("physicalTableId", NullValueHandling = NullValueHandling.Ignore)] - public string PhysicalTableId { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"CreateTableResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is CreateTableResponse other && - ((this.LogicalTableHeader == null && other.LogicalTableHeader == null) || (this.LogicalTableHeader?.Equals(other.LogicalTableHeader) == true)) && - ((this.PhysicalTableId == null && other.PhysicalTableId == null) || (this.PhysicalTableId?.Equals(other.PhysicalTableId) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.LogicalTableHeader = {(this.LogicalTableHeader == null ? "null" : this.LogicalTableHeader.ToString())}"); - toStringOutput.Add($"this.PhysicalTableId = {(this.PhysicalTableId == null ? "null" : this.PhysicalTableId == string.Empty ? "" : this.PhysicalTableId)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/DependentPermission.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/DependentPermission.cs deleted file mode 100644 index e09dab623..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/DependentPermission.cs +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// DependentPermission. - /// - public class DependentPermission - { - /// - /// Initializes a new instance of the class. - /// - public DependentPermission() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// type. - /// permission. - /// sharedPermission. - /// groupPermission. - public DependentPermission( - string id = null, - string name = null, - string type = null, - string permission = null, - string sharedPermission = null, - List groupPermission = null) - { - this.Id = id; - this.Name = name; - this.Type = type; - this.Permission = permission; - this.SharedPermission = sharedPermission; - this.GroupPermission = groupPermission; - } - - /// - /// GUID of the object - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the object - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Indicates the type of the object - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// Indicates the permission which user or user group has on the object - /// - [JsonProperty("permission", NullValueHandling = NullValueHandling.Ignore)] - public string Permission { get; set; } - - /// - /// Indicates the permission which user or user group has on the object through sharing of the object with this user or user group - /// - [JsonProperty("sharedPermission", NullValueHandling = NullValueHandling.Ignore)] - public string SharedPermission { get; set; } - - /// - /// An array of object with details of permission on the user groups to which the user or user group belongs - /// - [JsonProperty("groupPermission", NullValueHandling = NullValueHandling.Ignore)] - public List GroupPermission { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"DependentPermission : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is DependentPermission other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Permission == null && other.Permission == null) || (this.Permission?.Equals(other.Permission) == true)) && - ((this.SharedPermission == null && other.SharedPermission == null) || (this.SharedPermission?.Equals(other.SharedPermission) == true)) && - ((this.GroupPermission == null && other.GroupPermission == null) || (this.GroupPermission?.Equals(other.GroupPermission) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Permission = {(this.Permission == null ? "null" : this.Permission == string.Empty ? "" : this.Permission)}"); - toStringOutput.Add($"this.SharedPermission = {(this.SharedPermission == null ? "null" : this.SharedPermission == string.Empty ? "" : this.SharedPermission)}"); - toStringOutput.Add($"this.GroupPermission = {(this.GroupPermission == null ? "null" : $"[{string.Join(", ", this.GroupPermission)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatType3Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatType3Enum.cs deleted file mode 100644 index e2dd8be66..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatType3Enum.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// FormatType3Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum FormatType3Enum - { - /// - /// YAML. - /// - [EnumMember(Value = "YAML")] - YAML, - - /// - /// JSON. - /// - [EnumMember(Value = "JSON")] - JSON - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatTypeEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatTypeEnum.cs deleted file mode 100644 index f839fb016..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FormatTypeEnum.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// FormatTypeEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum FormatTypeEnum - { - /// - /// COMPACT. - /// - [EnumMember(Value = "COMPACT")] - COMPACT, - - /// - /// FULL. - /// - [EnumMember(Value = "FULL")] - FULL - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FromUserNameAndIDInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FromUserNameAndIDInput.cs deleted file mode 100644 index 3c5cbe451..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/FromUserNameAndIDInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// FromUserNameAndIDInput. - /// - public class FromUserNameAndIDInput - { - /// - /// Initializes a new instance of the class. - /// - public FromUserNameAndIDInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public FromUserNameAndIDInput( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Username of the user - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the user - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"FromUserNameAndIDInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is FromUserNameAndIDInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndID.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndID.cs deleted file mode 100644 index ee230a4ce..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndID.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// GroupNameAndID. - /// - public class GroupNameAndID - { - /// - /// Initializes a new instance of the class. - /// - public GroupNameAndID() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public GroupNameAndID( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the group - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"GroupNameAndID : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is GroupNameAndID other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndIDInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndIDInput.cs deleted file mode 100644 index ea979eaff..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupNameAndIDInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// GroupNameAndIDInput. - /// - public class GroupNameAndIDInput - { - /// - /// Initializes a new instance of the class. - /// - public GroupNameAndIDInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public GroupNameAndIDInput( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the group - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"GroupNameAndIDInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is GroupNameAndIDInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupPermission.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupPermission.cs deleted file mode 100644 index 7c2db0047..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupPermission.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// GroupPermission. - /// - public class GroupPermission - { - /// - /// Initializes a new instance of the class. - /// - public GroupPermission() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// permission. - public GroupPermission( - string id = null, - string name = null, - string permission = null) - { - this.Id = id; - this.Name = name; - this.Permission = permission; - } - - /// - /// GUID of the user group - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the user group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Indicates the permission which user group has on the object - /// - [JsonProperty("permission", NullValueHandling = NullValueHandling.Ignore)] - public string Permission { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"GroupPermission : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is GroupPermission other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Permission == null && other.Permission == null) || (this.Permission?.Equals(other.Permission) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Permission = {(this.Permission == null ? "null" : this.Permission == string.Empty ? "" : this.Permission)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupResponse.cs deleted file mode 100644 index 4083fdee5..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/GroupResponse.cs +++ /dev/null @@ -1,402 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// GroupResponse. - /// - public class GroupResponse - { - /// - /// Initializes a new instance of the class. - /// - public GroupResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// displayName. - /// id. - /// visibility. - /// description. - /// privileges. - /// orgs. - /// groups. - /// users. - /// assignedLiveboards. - /// userGroupContent. - /// tags. - /// isDeleted. - /// isHidden. - /// isExternal. - /// isDeprecated. - /// complete. - /// isSystemPrincipal. - /// type. - /// parenttype. - /// groupIdx. - /// metadataVersion. - /// tenantId. - /// indexVersion. - /// generationNum. - /// created. - /// modified. - /// author. - /// modifiedBy. - /// owner. - public GroupResponse( - string name = null, - string displayName = null, - string id = null, - string visibility = null, - string description = null, - List privileges = null, - List orgs = null, - List groups = null, - List users = null, - List assignedLiveboards = null, - object userGroupContent = null, - List tags = null, - bool? isDeleted = null, - bool? isHidden = null, - bool? isExternal = null, - bool? isDeprecated = null, - bool? complete = null, - bool? isSystemPrincipal = null, - string type = null, - string parenttype = null, - int? groupIdx = null, - int? metadataVersion = null, - string tenantId = null, - double? indexVersion = null, - double? generationNum = null, - double? created = null, - double? modified = null, - Models.UserNameAndID author = null, - Models.UserNameAndID modifiedBy = null, - Models.UserNameAndID owner = null) - { - this.Name = name; - this.DisplayName = displayName; - this.Id = id; - this.Visibility = visibility; - this.Description = description; - this.Privileges = privileges; - this.Orgs = orgs; - this.Groups = groups; - this.Users = users; - this.AssignedLiveboards = assignedLiveboards; - this.UserGroupContent = userGroupContent; - this.Tags = tags; - this.IsDeleted = isDeleted; - this.IsHidden = isHidden; - this.IsExternal = isExternal; - this.IsDeprecated = isDeprecated; - this.Complete = complete; - this.IsSystemPrincipal = isSystemPrincipal; - this.Type = type; - this.Parenttype = parenttype; - this.GroupIdx = groupIdx; - this.MetadataVersion = metadataVersion; - this.TenantId = tenantId; - this.IndexVersion = indexVersion; - this.GenerationNum = generationNum; - this.Created = created; - this.Modified = modified; - this.Author = author; - this.ModifiedBy = modifiedBy; - this.Owner = owner; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// A unique display name string for the user group - /// - [JsonProperty("displayName", NullValueHandling = NullValueHandling.Ignore)] - public string DisplayName { get; set; } - - /// - /// GUID of the group - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Visibility of the group - /// - [JsonProperty("visibility", NullValueHandling = NullValueHandling.Ignore)] - public string Visibility { get; set; } - - /// - /// Description of the group - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// Privileges assigned to the group - /// - [JsonProperty("privileges", NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - /// The organizations that user belongs to - /// - [JsonProperty("orgs", NullValueHandling = NullValueHandling.Ignore)] - public List Orgs { get; set; } - - /// - /// Name of the group to which is added - /// - [JsonProperty("groups", NullValueHandling = NullValueHandling.Ignore)] - public List Groups { get; set; } - - /// - /// User Group Information by Id or Name. - /// - [JsonProperty("users", NullValueHandling = NullValueHandling.Ignore)] - public List Users { get; set; } - - /// - /// Liveboards assigned to the group - /// - [JsonProperty("assignedLiveboards", NullValueHandling = NullValueHandling.Ignore)] - public List AssignedLiveboards { get; set; } - - /// - /// Gets or sets UserGroupContent. - /// - [JsonProperty("userGroupContent", NullValueHandling = NullValueHandling.Ignore)] - public object UserGroupContent { get; set; } - - /// - /// Tags assigned to the group - /// - [JsonProperty("tags", NullValueHandling = NullValueHandling.Ignore)] - public List Tags { get; set; } - - /// - /// Indicates if the group is deleted - /// - [JsonProperty("isDeleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeleted { get; set; } - - /// - /// Indicates if the group is hidden - /// - [JsonProperty("isHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsHidden { get; set; } - - /// - /// Indicates if the group is from external system - /// - [JsonProperty("isExternal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsExternal { get; set; } - - /// - /// Gets or sets IsDeprecated. - /// - [JsonProperty("isDeprecated", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeprecated { get; set; } - - /// - /// Indicates if the all the properties of group is provided - /// - [JsonProperty("complete", NullValueHandling = NullValueHandling.Ignore)] - public bool? Complete { get; set; } - - /// - /// Indicates if the group is system principal - /// - [JsonProperty("isSystemPrincipal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsSystemPrincipal { get; set; } - - /// - /// Indicates the type of group - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// Indicates the type of parent object - /// - [JsonProperty("parenttype", NullValueHandling = NullValueHandling.Ignore)] - public string Parenttype { get; set; } - - /// - /// Gets or sets GroupIdx. - /// - [JsonProperty("groupIdx", NullValueHandling = NullValueHandling.Ignore)] - public int? GroupIdx { get; set; } - - /// - /// Gets or sets MetadataVersion. - /// - [JsonProperty("metadataVersion", NullValueHandling = NullValueHandling.Ignore)] - public int? MetadataVersion { get; set; } - - /// - /// Tenant id associated with the group - /// - [JsonProperty("tenantId", NullValueHandling = NullValueHandling.Ignore)] - public string TenantId { get; set; } - - /// - /// Gets or sets IndexVersion. - /// - [JsonProperty("indexVersion", NullValueHandling = NullValueHandling.Ignore)] - public double? IndexVersion { get; set; } - - /// - /// Gets or sets GenerationNum. - /// - [JsonProperty("generationNum", NullValueHandling = NullValueHandling.Ignore)] - public double? GenerationNum { get; set; } - - /// - /// Date and time when group was created - /// - [JsonProperty("created", NullValueHandling = NullValueHandling.Ignore)] - public double? Created { get; set; } - - /// - /// Date and time of last modification of the group - /// - [JsonProperty("modified", NullValueHandling = NullValueHandling.Ignore)] - public double? Modified { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// Gets or sets ModifiedBy. - /// - [JsonProperty("modifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID ModifiedBy { get; set; } - - /// - /// Gets or sets Owner. - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Owner { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"GroupResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is GroupResponse other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.DisplayName == null && other.DisplayName == null) || (this.DisplayName?.Equals(other.DisplayName) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Visibility == null && other.Visibility == null) || (this.Visibility?.Equals(other.Visibility) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)) && - ((this.Orgs == null && other.Orgs == null) || (this.Orgs?.Equals(other.Orgs) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)) && - ((this.Users == null && other.Users == null) || (this.Users?.Equals(other.Users) == true)) && - ((this.AssignedLiveboards == null && other.AssignedLiveboards == null) || (this.AssignedLiveboards?.Equals(other.AssignedLiveboards) == true)) && - ((this.UserGroupContent == null && other.UserGroupContent == null) || (this.UserGroupContent?.Equals(other.UserGroupContent) == true)) && - ((this.Tags == null && other.Tags == null) || (this.Tags?.Equals(other.Tags) == true)) && - ((this.IsDeleted == null && other.IsDeleted == null) || (this.IsDeleted?.Equals(other.IsDeleted) == true)) && - ((this.IsHidden == null && other.IsHidden == null) || (this.IsHidden?.Equals(other.IsHidden) == true)) && - ((this.IsExternal == null && other.IsExternal == null) || (this.IsExternal?.Equals(other.IsExternal) == true)) && - ((this.IsDeprecated == null && other.IsDeprecated == null) || (this.IsDeprecated?.Equals(other.IsDeprecated) == true)) && - ((this.Complete == null && other.Complete == null) || (this.Complete?.Equals(other.Complete) == true)) && - ((this.IsSystemPrincipal == null && other.IsSystemPrincipal == null) || (this.IsSystemPrincipal?.Equals(other.IsSystemPrincipal) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Parenttype == null && other.Parenttype == null) || (this.Parenttype?.Equals(other.Parenttype) == true)) && - ((this.GroupIdx == null && other.GroupIdx == null) || (this.GroupIdx?.Equals(other.GroupIdx) == true)) && - ((this.MetadataVersion == null && other.MetadataVersion == null) || (this.MetadataVersion?.Equals(other.MetadataVersion) == true)) && - ((this.TenantId == null && other.TenantId == null) || (this.TenantId?.Equals(other.TenantId) == true)) && - ((this.IndexVersion == null && other.IndexVersion == null) || (this.IndexVersion?.Equals(other.IndexVersion) == true)) && - ((this.GenerationNum == null && other.GenerationNum == null) || (this.GenerationNum?.Equals(other.GenerationNum) == true)) && - ((this.Created == null && other.Created == null) || (this.Created?.Equals(other.Created) == true)) && - ((this.Modified == null && other.Modified == null) || (this.Modified?.Equals(other.Modified) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.ModifiedBy == null && other.ModifiedBy == null) || (this.ModifiedBy?.Equals(other.ModifiedBy) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.DisplayName = {(this.DisplayName == null ? "null" : this.DisplayName == string.Empty ? "" : this.DisplayName)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Visibility = {(this.Visibility == null ? "null" : this.Visibility == string.Empty ? "" : this.Visibility)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - toStringOutput.Add($"this.Orgs = {(this.Orgs == null ? "null" : $"[{string.Join(", ", this.Orgs)} ]")}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - toStringOutput.Add($"this.Users = {(this.Users == null ? "null" : $"[{string.Join(", ", this.Users)} ]")}"); - toStringOutput.Add($"this.AssignedLiveboards = {(this.AssignedLiveboards == null ? "null" : $"[{string.Join(", ", this.AssignedLiveboards)} ]")}"); - toStringOutput.Add($"UserGroupContent = {(this.UserGroupContent == null ? "null" : this.UserGroupContent.ToString())}"); - toStringOutput.Add($"this.Tags = {(this.Tags == null ? "null" : $"[{string.Join(", ", this.Tags)} ]")}"); - toStringOutput.Add($"this.IsDeleted = {(this.IsDeleted == null ? "null" : this.IsDeleted.ToString())}"); - toStringOutput.Add($"this.IsHidden = {(this.IsHidden == null ? "null" : this.IsHidden.ToString())}"); - toStringOutput.Add($"this.IsExternal = {(this.IsExternal == null ? "null" : this.IsExternal.ToString())}"); - toStringOutput.Add($"this.IsDeprecated = {(this.IsDeprecated == null ? "null" : this.IsDeprecated.ToString())}"); - toStringOutput.Add($"this.Complete = {(this.Complete == null ? "null" : this.Complete.ToString())}"); - toStringOutput.Add($"this.IsSystemPrincipal = {(this.IsSystemPrincipal == null ? "null" : this.IsSystemPrincipal.ToString())}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Parenttype = {(this.Parenttype == null ? "null" : this.Parenttype == string.Empty ? "" : this.Parenttype)}"); - toStringOutput.Add($"this.GroupIdx = {(this.GroupIdx == null ? "null" : this.GroupIdx.ToString())}"); - toStringOutput.Add($"this.MetadataVersion = {(this.MetadataVersion == null ? "null" : this.MetadataVersion.ToString())}"); - toStringOutput.Add($"this.TenantId = {(this.TenantId == null ? "null" : this.TenantId == string.Empty ? "" : this.TenantId)}"); - toStringOutput.Add($"this.IndexVersion = {(this.IndexVersion == null ? "null" : this.IndexVersion.ToString())}"); - toStringOutput.Add($"this.GenerationNum = {(this.GenerationNum == null ? "null" : this.GenerationNum.ToString())}"); - toStringOutput.Add($"this.Created = {(this.Created == null ? "null" : this.Created.ToString())}"); - toStringOutput.Add($"this.Modified = {(this.Modified == null ? "null" : this.Modified.ToString())}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.ModifiedBy = {(this.ModifiedBy == null ? "null" : this.ModifiedBy.ToString())}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/HomeLiveboardResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/HomeLiveboardResponse.cs deleted file mode 100644 index 190c46629..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/HomeLiveboardResponse.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// HomeLiveboardResponse. - /// - public class HomeLiveboardResponse - { - /// - /// Initializes a new instance of the class. - /// - public HomeLiveboardResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// userName. - /// userId. - /// liveboardName. - /// liveboardId. - public HomeLiveboardResponse( - string userName = null, - string userId = null, - string liveboardName = null, - string liveboardId = null) - { - this.UserName = userName; - this.UserId = userId; - this.LiveboardName = liveboardName; - this.LiveboardId = liveboardId; - } - - /// - /// Name of the user - /// - [JsonProperty("userName", NullValueHandling = NullValueHandling.Ignore)] - public string UserName { get; set; } - - /// - /// The GUID of the user - /// - [JsonProperty("userId", NullValueHandling = NullValueHandling.Ignore)] - public string UserId { get; set; } - - /// - /// Name of the liveboard - /// - [JsonProperty("liveboardName", NullValueHandling = NullValueHandling.Ignore)] - public string LiveboardName { get; set; } - - /// - /// The GUID of the liveboard - /// - [JsonProperty("liveboardId", NullValueHandling = NullValueHandling.Ignore)] - public string LiveboardId { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"HomeLiveboardResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is HomeLiveboardResponse other && - ((this.UserName == null && other.UserName == null) || (this.UserName?.Equals(other.UserName) == true)) && - ((this.UserId == null && other.UserId == null) || (this.UserId?.Equals(other.UserId) == true)) && - ((this.LiveboardName == null && other.LiveboardName == null) || (this.LiveboardName?.Equals(other.LiveboardName) == true)) && - ((this.LiveboardId == null && other.LiveboardId == null) || (this.LiveboardId?.Equals(other.LiveboardId) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.UserName = {(this.UserName == null ? "null" : this.UserName == string.Empty ? "" : this.UserName)}"); - toStringOutput.Add($"this.UserId = {(this.UserId == null ? "null" : this.UserId == string.Empty ? "" : this.UserId)}"); - toStringOutput.Add($"this.LiveboardName = {(this.LiveboardName == null ? "null" : this.LiveboardName == string.Empty ? "" : this.LiveboardName)}"); - toStringOutput.Add($"this.LiveboardId = {(this.LiveboardId == null ? "null" : this.LiveboardId == string.Empty ? "" : this.LiveboardId)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ImportPolicyEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ImportPolicyEnum.cs deleted file mode 100644 index 3e4de669d..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ImportPolicyEnum.cs +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ImportPolicyEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum ImportPolicyEnum - { - /// - /// PARTIAL. - /// - [EnumMember(Value = "PARTIAL")] - PARTIAL, - - /// - /// ALLORNONE. - /// - [EnumMember(Value = "ALL_OR_NONE")] - ALLORNONE, - - /// - /// VALIDATEONLY. - /// - [EnumMember(Value = "VALIDATE_ONLY")] - VALIDATEONLY - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardNameAndID.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardNameAndID.cs deleted file mode 100644 index a90ffa80c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardNameAndID.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// LiveboardNameAndID. - /// - public class LiveboardNameAndID - { - /// - /// Initializes a new instance of the class. - /// - public LiveboardNameAndID() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public LiveboardNameAndID( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the liveboard - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the liveboard - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"LiveboardNameAndID : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is LiveboardNameAndID other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardQueryResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardQueryResponse.cs deleted file mode 100644 index d940b4e2b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LiveboardQueryResponse.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// LiveboardQueryResponse. - /// - public class LiveboardQueryResponse - { - /// - /// Initializes a new instance of the class. - /// - public LiveboardQueryResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// viz. - public LiveboardQueryResponse( - string name = null, - string id = null, - List viz = null) - { - this.Name = name; - this.Id = id; - this.Viz = viz; - } - - /// - /// The name of the Liveboard - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the Liveboard - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// SQL query associated with the saved Answer - /// - [JsonProperty("viz", NullValueHandling = NullValueHandling.Ignore)] - public List Viz { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"LiveboardQueryResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is LiveboardQueryResponse other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Viz == null && other.Viz == null) || (this.Viz?.Equals(other.Viz) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Viz = {(this.Viz == null ? "null" : $"[{string.Join(", ", this.Viz)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogicalTableHeader.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogicalTableHeader.cs deleted file mode 100644 index d4ad7e35a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogicalTableHeader.cs +++ /dev/null @@ -1,248 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// LogicalTableHeader. - /// - public class LogicalTableHeader - { - /// - /// Initializes a new instance of the class. - /// - public LogicalTableHeader() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// author. - /// authorName. - /// authorDisplayName. - /// created. - /// modified. - /// modifiedBy. - /// generationNum. - /// owner. - /// deleted. - /// hidden. - /// database. - /// schema. - /// type. - /// subType. - public LogicalTableHeader( - string id = null, - string name = null, - string author = null, - string authorName = null, - string authorDisplayName = null, - double? created = null, - double? modified = null, - string modifiedBy = null, - int? generationNum = null, - string owner = null, - bool? deleted = null, - bool? hidden = null, - string database = null, - string schema = null, - string type = null, - string subType = null) - { - this.Id = id; - this.Name = name; - this.Author = author; - this.AuthorName = authorName; - this.AuthorDisplayName = authorDisplayName; - this.Created = created; - this.Modified = modified; - this.ModifiedBy = modifiedBy; - this.GenerationNum = generationNum; - this.Owner = owner; - this.Deleted = deleted; - this.Hidden = hidden; - this.Database = database; - this.Schema = schema; - this.Type = type; - this.SubType = subType; - } - - /// - /// Gets or sets Id. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Gets or sets Name. - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public string Author { get; set; } - - /// - /// Gets or sets AuthorName. - /// - [JsonProperty("authorName", NullValueHandling = NullValueHandling.Ignore)] - public string AuthorName { get; set; } - - /// - /// Gets or sets AuthorDisplayName. - /// - [JsonProperty("authorDisplayName", NullValueHandling = NullValueHandling.Ignore)] - public string AuthorDisplayName { get; set; } - - /// - /// Gets or sets Created. - /// - [JsonProperty("created", NullValueHandling = NullValueHandling.Ignore)] - public double? Created { get; set; } - - /// - /// Gets or sets Modified. - /// - [JsonProperty("modified", NullValueHandling = NullValueHandling.Ignore)] - public double? Modified { get; set; } - - /// - /// Gets or sets ModifiedBy. - /// - [JsonProperty("modifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public string ModifiedBy { get; set; } - - /// - /// Gets or sets GenerationNum. - /// - [JsonProperty("generationNum", NullValueHandling = NullValueHandling.Ignore)] - public int? GenerationNum { get; set; } - - /// - /// Gets or sets Owner. - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public string Owner { get; set; } - - /// - /// Gets or sets Deleted. - /// - [JsonProperty("deleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? Deleted { get; set; } - - /// - /// Gets or sets Hidden. - /// - [JsonProperty("hidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? Hidden { get; set; } - - /// - /// Gets or sets Database. - /// - [JsonProperty("database", NullValueHandling = NullValueHandling.Ignore)] - public string Database { get; set; } - - /// - /// Gets or sets Schema. - /// - [JsonProperty("schema", NullValueHandling = NullValueHandling.Ignore)] - public string Schema { get; set; } - - /// - /// Gets or sets Type. - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// Gets or sets SubType. - /// - [JsonProperty("subType", NullValueHandling = NullValueHandling.Ignore)] - public string SubType { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"LogicalTableHeader : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is LogicalTableHeader other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.AuthorName == null && other.AuthorName == null) || (this.AuthorName?.Equals(other.AuthorName) == true)) && - ((this.AuthorDisplayName == null && other.AuthorDisplayName == null) || (this.AuthorDisplayName?.Equals(other.AuthorDisplayName) == true)) && - ((this.Created == null && other.Created == null) || (this.Created?.Equals(other.Created) == true)) && - ((this.Modified == null && other.Modified == null) || (this.Modified?.Equals(other.Modified) == true)) && - ((this.ModifiedBy == null && other.ModifiedBy == null) || (this.ModifiedBy?.Equals(other.ModifiedBy) == true)) && - ((this.GenerationNum == null && other.GenerationNum == null) || (this.GenerationNum?.Equals(other.GenerationNum) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)) && - ((this.Deleted == null && other.Deleted == null) || (this.Deleted?.Equals(other.Deleted) == true)) && - ((this.Hidden == null && other.Hidden == null) || (this.Hidden?.Equals(other.Hidden) == true)) && - ((this.Database == null && other.Database == null) || (this.Database?.Equals(other.Database) == true)) && - ((this.Schema == null && other.Schema == null) || (this.Schema?.Equals(other.Schema) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.SubType == null && other.SubType == null) || (this.SubType?.Equals(other.SubType) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author == string.Empty ? "" : this.Author)}"); - toStringOutput.Add($"this.AuthorName = {(this.AuthorName == null ? "null" : this.AuthorName == string.Empty ? "" : this.AuthorName)}"); - toStringOutput.Add($"this.AuthorDisplayName = {(this.AuthorDisplayName == null ? "null" : this.AuthorDisplayName == string.Empty ? "" : this.AuthorDisplayName)}"); - toStringOutput.Add($"this.Created = {(this.Created == null ? "null" : this.Created.ToString())}"); - toStringOutput.Add($"this.Modified = {(this.Modified == null ? "null" : this.Modified.ToString())}"); - toStringOutput.Add($"this.ModifiedBy = {(this.ModifiedBy == null ? "null" : this.ModifiedBy == string.Empty ? "" : this.ModifiedBy)}"); - toStringOutput.Add($"this.GenerationNum = {(this.GenerationNum == null ? "null" : this.GenerationNum.ToString())}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner == string.Empty ? "" : this.Owner)}"); - toStringOutput.Add($"this.Deleted = {(this.Deleted == null ? "null" : this.Deleted.ToString())}"); - toStringOutput.Add($"this.Hidden = {(this.Hidden == null ? "null" : this.Hidden.ToString())}"); - toStringOutput.Add($"this.Database = {(this.Database == null ? "null" : this.Database == string.Empty ? "" : this.Database)}"); - toStringOutput.Add($"this.Schema = {(this.Schema == null ? "null" : this.Schema == string.Empty ? "" : this.Schema)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.SubType = {(this.SubType == null ? "null" : this.SubType == string.Empty ? "" : this.SubType)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogsResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogsResponse.cs deleted file mode 100644 index ac4b733cd..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/LogsResponse.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// LogsResponse. - /// - public class LogsResponse - { - /// - /// Initializes a new instance of the class. - /// - public LogsResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// date. - /// log. - public LogsResponse( - string date = null, - string log = null) - { - this.Date = date; - this.Log = log; - } - - /// - /// Date and time for the event in the log - /// - [JsonProperty("date", NullValueHandling = NullValueHandling.Ignore)] - public string Date { get; set; } - - /// - /// Logged event at the time specified in JSON format. This includes, Event ID, A unique description of the event, for example, User login failed, Timestamp, User ID of the person initiating the event and IP address of the ThoughtSpot instance. - /// - [JsonProperty("log", NullValueHandling = NullValueHandling.Ignore)] - public string Log { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"LogsResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is LogsResponse other && - ((this.Date == null && other.Date == null) || (this.Date?.Equals(other.Date) == true)) && - ((this.Log == null && other.Log == null) || (this.Log?.Equals(other.Log) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Date = {(this.Date == null ? "null" : this.Date == string.Empty ? "" : this.Date)}"); - toStringOutput.Add($"this.Log = {(this.Log == null ? "null" : this.Log == string.Empty ? "" : this.Log)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/MetadataTagResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/MetadataTagResponse.cs deleted file mode 100644 index cfaee6b08..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/MetadataTagResponse.cs +++ /dev/null @@ -1,226 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// MetadataTagResponse. - /// - public class MetadataTagResponse - { - /// - /// Initializes a new instance of the class. - /// - public MetadataTagResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// clientState. - /// indexVersion. - /// generationNum. - /// isDeleted. - /// isHidden. - /// isExternal. - /// isDeprecated. - /// created. - /// modified. - /// modifiedBy. - /// author. - /// owner. - public MetadataTagResponse( - string name = null, - string id = null, - Models.ClientState clientState = null, - double? indexVersion = null, - double? generationNum = null, - bool? isDeleted = null, - bool? isHidden = null, - bool? isExternal = null, - bool? isDeprecated = null, - double? created = null, - double? modified = null, - Models.TagNameAndID modifiedBy = null, - Models.TagNameAndID author = null, - Models.TagNameAndID owner = null) - { - this.Name = name; - this.Id = id; - this.ClientState = clientState; - this.IndexVersion = indexVersion; - this.GenerationNum = generationNum; - this.IsDeleted = isDeleted; - this.IsHidden = isHidden; - this.IsExternal = isExternal; - this.IsDeprecated = isDeprecated; - this.Created = created; - this.Modified = modified; - this.ModifiedBy = modifiedBy; - this.Author = author; - this.Owner = owner; - } - - /// - /// Name of the tag - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the tag - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Gets or sets ClientState. - /// - [JsonProperty("clientState", NullValueHandling = NullValueHandling.Ignore)] - public Models.ClientState ClientState { get; set; } - - /// - /// Gets or sets IndexVersion. - /// - [JsonProperty("indexVersion", NullValueHandling = NullValueHandling.Ignore)] - public double? IndexVersion { get; set; } - - /// - /// Gets or sets GenerationNum. - /// - [JsonProperty("generationNum", NullValueHandling = NullValueHandling.Ignore)] - public double? GenerationNum { get; set; } - - /// - /// Indicates if the tag is deleted - /// - [JsonProperty("isDeleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeleted { get; set; } - - /// - /// Indicates if the tag is hidden - /// - [JsonProperty("isHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsHidden { get; set; } - - /// - /// Indicates if the tag is from external system - /// - [JsonProperty("isExternal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsExternal { get; set; } - - /// - /// Gets or sets IsDeprecated. - /// - [JsonProperty("isDeprecated", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeprecated { get; set; } - - /// - /// Date and time when group was created - /// - [JsonProperty("created", NullValueHandling = NullValueHandling.Ignore)] - public double? Created { get; set; } - - /// - /// Date and time of last modification of the group - /// - [JsonProperty("modified", NullValueHandling = NullValueHandling.Ignore)] - public double? Modified { get; set; } - - /// - /// Gets or sets ModifiedBy. - /// - [JsonProperty("modifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public Models.TagNameAndID ModifiedBy { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.TagNameAndID Author { get; set; } - - /// - /// Gets or sets Owner. - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public Models.TagNameAndID Owner { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"MetadataTagResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is MetadataTagResponse other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.ClientState == null && other.ClientState == null) || (this.ClientState?.Equals(other.ClientState) == true)) && - ((this.IndexVersion == null && other.IndexVersion == null) || (this.IndexVersion?.Equals(other.IndexVersion) == true)) && - ((this.GenerationNum == null && other.GenerationNum == null) || (this.GenerationNum?.Equals(other.GenerationNum) == true)) && - ((this.IsDeleted == null && other.IsDeleted == null) || (this.IsDeleted?.Equals(other.IsDeleted) == true)) && - ((this.IsHidden == null && other.IsHidden == null) || (this.IsHidden?.Equals(other.IsHidden) == true)) && - ((this.IsExternal == null && other.IsExternal == null) || (this.IsExternal?.Equals(other.IsExternal) == true)) && - ((this.IsDeprecated == null && other.IsDeprecated == null) || (this.IsDeprecated?.Equals(other.IsDeprecated) == true)) && - ((this.Created == null && other.Created == null) || (this.Created?.Equals(other.Created) == true)) && - ((this.Modified == null && other.Modified == null) || (this.Modified?.Equals(other.Modified) == true)) && - ((this.ModifiedBy == null && other.ModifiedBy == null) || (this.ModifiedBy?.Equals(other.ModifiedBy) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.ClientState = {(this.ClientState == null ? "null" : this.ClientState.ToString())}"); - toStringOutput.Add($"this.IndexVersion = {(this.IndexVersion == null ? "null" : this.IndexVersion.ToString())}"); - toStringOutput.Add($"this.GenerationNum = {(this.GenerationNum == null ? "null" : this.GenerationNum.ToString())}"); - toStringOutput.Add($"this.IsDeleted = {(this.IsDeleted == null ? "null" : this.IsDeleted.ToString())}"); - toStringOutput.Add($"this.IsHidden = {(this.IsHidden == null ? "null" : this.IsHidden.ToString())}"); - toStringOutput.Add($"this.IsExternal = {(this.IsExternal == null ? "null" : this.IsExternal.ToString())}"); - toStringOutput.Add($"this.IsDeprecated = {(this.IsDeprecated == null ? "null" : this.IsDeprecated.ToString())}"); - toStringOutput.Add($"this.Created = {(this.Created == null ? "null" : this.Created.ToString())}"); - toStringOutput.Add($"this.Modified = {(this.Modified == null ? "null" : this.Modified.ToString())}"); - toStringOutput.Add($"this.ModifiedBy = {(this.ModifiedBy == null ? "null" : this.ModifiedBy.ToString())}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/NameAndIdInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/NameAndIdInput.cs deleted file mode 100644 index 18adf266c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/NameAndIdInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// NameAndIdInput. - /// - public class NameAndIdInput - { - /// - /// Initializes a new instance of the class. - /// - public NameAndIdInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public NameAndIdInput( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the user - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the user - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"NameAndIdInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is NameAndIdInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgType.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgType.cs deleted file mode 100644 index 901bc1707..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgType.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// OrgType. - /// - public class OrgType - { - /// - /// Initializes a new instance of the class. - /// - public OrgType() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public OrgType( - string name = null, - int? id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the organization - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Id of the organization - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public int? Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"OrgType : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is OrgType other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgsResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgsResponse.cs deleted file mode 100644 index 4f2cbf889..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrgsResponse.cs +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// OrgsResponse. - /// - public class OrgsResponse - { - /// - /// Initializes a new instance of the class. - /// - public OrgsResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// orgId. - /// orgName. - /// description. - /// allGroupUserId. - /// defaultAdminUserGroupId. - /// active. - public OrgsResponse( - int? orgId = null, - string orgName = null, - string description = null, - string allGroupUserId = null, - string defaultAdminUserGroupId = null, - bool? active = null) - { - this.OrgId = orgId; - this.OrgName = orgName; - this.Description = description; - this.AllGroupUserId = allGroupUserId; - this.DefaultAdminUserGroupId = defaultAdminUserGroupId; - this.Active = active; - } - - /// - /// ID of the organization searched for - /// - [JsonProperty("orgId", NullValueHandling = NullValueHandling.Ignore)] - public int? OrgId { get; set; } - - /// - /// Name of the organization searched for - /// - [JsonProperty("orgName", NullValueHandling = NullValueHandling.Ignore)] - public string OrgName { get; set; } - - /// - /// Description associated with the organization - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// GUID of the ALL group in the organization - /// - [JsonProperty("allGroupUserId", NullValueHandling = NullValueHandling.Ignore)] - public string AllGroupUserId { get; set; } - - /// - /// GUID of the admin group in the organization - /// - [JsonProperty("defaultAdminUserGroupId", NullValueHandling = NullValueHandling.Ignore)] - public string DefaultAdminUserGroupId { get; set; } - - /// - /// Indicates if the organization is active or not - /// - [JsonProperty("active", NullValueHandling = NullValueHandling.Ignore)] - public bool? Active { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"OrgsResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is OrgsResponse other && - ((this.OrgId == null && other.OrgId == null) || (this.OrgId?.Equals(other.OrgId) == true)) && - ((this.OrgName == null && other.OrgName == null) || (this.OrgName?.Equals(other.OrgName) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.AllGroupUserId == null && other.AllGroupUserId == null) || (this.AllGroupUserId?.Equals(other.AllGroupUserId) == true)) && - ((this.DefaultAdminUserGroupId == null && other.DefaultAdminUserGroupId == null) || (this.DefaultAdminUserGroupId?.Equals(other.DefaultAdminUserGroupId) == true)) && - ((this.Active == null && other.Active == null) || (this.Active?.Equals(other.Active) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.OrgId = {(this.OrgId == null ? "null" : this.OrgId.ToString())}"); - toStringOutput.Add($"this.OrgName = {(this.OrgName == null ? "null" : this.OrgName == string.Empty ? "" : this.OrgName)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.AllGroupUserId = {(this.AllGroupUserId == null ? "null" : this.AllGroupUserId == string.Empty ? "" : this.AllGroupUserId)}"); - toStringOutput.Add($"this.DefaultAdminUserGroupId = {(this.DefaultAdminUserGroupId == null ? "null" : this.DefaultAdminUserGroupId == string.Empty ? "" : this.DefaultAdminUserGroupId)}"); - toStringOutput.Add($"this.Active = {(this.Active == null ? "null" : this.Active.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrientationEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrientationEnum.cs deleted file mode 100644 index 23ce243b4..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/OrientationEnum.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// OrientationEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum OrientationEnum - { - /// - /// PORTRAIT. - /// - [EnumMember(Value = "PORTRAIT")] - PORTRAIT, - - /// - /// LANDSCAPE. - /// - [EnumMember(Value = "LANDSCAPE")] - LANDSCAPE - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PdfOptionsInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PdfOptionsInput.cs deleted file mode 100644 index 6c9c56281..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PdfOptionsInput.cs +++ /dev/null @@ -1,150 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// PdfOptionsInput. - /// - public class PdfOptionsInput - { - /// - /// Initializes a new instance of the class. - /// - public PdfOptionsInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// orientation. - /// truncateTables. - /// includeLogo. - /// footerText. - /// includePageNumber. - /// includeCoverPage. - /// includeFilterPage. - public PdfOptionsInput( - Models.OrientationEnum? orientation = null, - bool? truncateTables = null, - bool? includeLogo = null, - string footerText = null, - bool? includePageNumber = null, - bool? includeCoverPage = null, - bool? includeFilterPage = null) - { - this.Orientation = orientation; - this.TruncateTables = truncateTables; - this.IncludeLogo = includeLogo; - this.FooterText = footerText; - this.IncludePageNumber = includePageNumber; - this.IncludeCoverPage = includeCoverPage; - this.IncludeFilterPage = includeFilterPage; - } - - /// - /// Page orientation for the PDF. Default: PORTRAIT - /// - [JsonProperty("orientation", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.OrientationEnum? Orientation { get; set; } - - /// - /// When set to true, only the first page of the tables is displayed in the file. - /// This setting is applicable only when generating report for specific visualization ids. Default: false - /// - [JsonProperty("truncateTables", NullValueHandling = NullValueHandling.Ignore)] - public bool? TruncateTables { get; set; } - - /// - /// Include customized wide logo if available in the footer. Default: true - /// - [JsonProperty("includeLogo", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludeLogo { get; set; } - - /// - /// Footer text to include in the footer of each page of the PDF. - /// - [JsonProperty("footerText", NullValueHandling = NullValueHandling.Ignore)] - public string FooterText { get; set; } - - /// - /// When set to true, the page number is included in the footer of each page. Default: true - /// - [JsonProperty("includePageNumber", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludePageNumber { get; set; } - - /// - /// When set to true, a cover page with the Liveboard title is added in the PDF. Default: true - /// - [JsonProperty("includeCoverPage", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludeCoverPage { get; set; } - - /// - /// When set to true, a second page with a list of all applied filters is added in the PDF. Default: true - /// - [JsonProperty("includeFilterPage", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludeFilterPage { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"PdfOptionsInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is PdfOptionsInput other && - ((this.Orientation == null && other.Orientation == null) || (this.Orientation?.Equals(other.Orientation) == true)) && - ((this.TruncateTables == null && other.TruncateTables == null) || (this.TruncateTables?.Equals(other.TruncateTables) == true)) && - ((this.IncludeLogo == null && other.IncludeLogo == null) || (this.IncludeLogo?.Equals(other.IncludeLogo) == true)) && - ((this.FooterText == null && other.FooterText == null) || (this.FooterText?.Equals(other.FooterText) == true)) && - ((this.IncludePageNumber == null && other.IncludePageNumber == null) || (this.IncludePageNumber?.Equals(other.IncludePageNumber) == true)) && - ((this.IncludeCoverPage == null && other.IncludeCoverPage == null) || (this.IncludeCoverPage?.Equals(other.IncludeCoverPage) == true)) && - ((this.IncludeFilterPage == null && other.IncludeFilterPage == null) || (this.IncludeFilterPage?.Equals(other.IncludeFilterPage) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Orientation = {(this.Orientation == null ? "null" : this.Orientation.ToString())}"); - toStringOutput.Add($"this.TruncateTables = {(this.TruncateTables == null ? "null" : this.TruncateTables.ToString())}"); - toStringOutput.Add($"this.IncludeLogo = {(this.IncludeLogo == null ? "null" : this.IncludeLogo.ToString())}"); - toStringOutput.Add($"this.FooterText = {(this.FooterText == null ? "null" : this.FooterText == string.Empty ? "" : this.FooterText)}"); - toStringOutput.Add($"this.IncludePageNumber = {(this.IncludePageNumber == null ? "null" : this.IncludePageNumber.ToString())}"); - toStringOutput.Add($"this.IncludeCoverPage = {(this.IncludeCoverPage == null ? "null" : this.IncludeCoverPage.ToString())}"); - toStringOutput.Add($"this.IncludeFilterPage = {(this.IncludeFilterPage == null ? "null" : this.IncludeFilterPage.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PermissionsTypeSearch.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PermissionsTypeSearch.cs deleted file mode 100644 index 08591acb8..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PermissionsTypeSearch.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// PermissionsTypeSearch. - /// - public class PermissionsTypeSearch - { - /// - /// Initializes a new instance of the class. - /// - public PermissionsTypeSearch() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// tsObject. - public PermissionsTypeSearch( - string type = null, - List tsObject = null) - { - this.Type = type; - this.TsObject = tsObject; - } - - /// - /// Indicates the type of the object - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// An array of objects of type mentioned in type field - /// - [JsonProperty("tsObject", NullValueHandling = NullValueHandling.Ignore)] - public List TsObject { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"PermissionsTypeSearch : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is PermissionsTypeSearch other && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.TsObject == null && other.TsObject == null) || (this.TsObject?.Equals(other.TsObject) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.TsObject = {(this.TsObject == null ? "null" : $"[{string.Join(", ", this.TsObject)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PinboardDetails.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PinboardDetails.cs deleted file mode 100644 index 6c771c7ba..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PinboardDetails.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// PinboardDetails. - /// - public class PinboardDetails - { - /// - /// Initializes a new instance of the class. - /// - public PinboardDetails() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// pinboardId. - /// pinboardName. - /// tabId. - /// tabName. - public PinboardDetails( - string pinboardId = null, - string pinboardName = null, - string tabId = null, - string tabName = null) - { - this.PinboardId = pinboardId; - this.PinboardName = pinboardName; - this.TabId = tabId; - this.TabName = tabName; - } - - /// - /// pinboard id of recently pinned pinboard - /// - [JsonProperty("pinboardId", NullValueHandling = NullValueHandling.Ignore)] - public string PinboardId { get; set; } - - /// - /// pinboard name of recently pinned pinboard - /// - [JsonProperty("pinboardName", NullValueHandling = NullValueHandling.Ignore)] - public string PinboardName { get; set; } - - /// - /// tab id of recently pinned tab - /// - [JsonProperty("tabId", NullValueHandling = NullValueHandling.Ignore)] - public string TabId { get; set; } - - /// - /// tab name of recently pinned tab - /// - [JsonProperty("tabName", NullValueHandling = NullValueHandling.Ignore)] - public string TabName { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"PinboardDetails : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is PinboardDetails other && - ((this.PinboardId == null && other.PinboardId == null) || (this.PinboardId?.Equals(other.PinboardId) == true)) && - ((this.PinboardName == null && other.PinboardName == null) || (this.PinboardName?.Equals(other.PinboardName) == true)) && - ((this.TabId == null && other.TabId == null) || (this.TabId?.Equals(other.TabId) == true)) && - ((this.TabName == null && other.TabName == null) || (this.TabName?.Equals(other.TabName) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.PinboardId = {(this.PinboardId == null ? "null" : this.PinboardId == string.Empty ? "" : this.PinboardId)}"); - toStringOutput.Add($"this.PinboardName = {(this.PinboardName == null ? "null" : this.PinboardName == string.Empty ? "" : this.PinboardName)}"); - toStringOutput.Add($"this.TabId = {(this.TabId == null ? "null" : this.TabId == string.Empty ? "" : this.TabId)}"); - toStringOutput.Add($"this.TabName = {(this.TabName == null ? "null" : this.TabName == string.Empty ? "" : this.TabName)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrincipalSearchResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrincipalSearchResponse.cs deleted file mode 100644 index 4a9fd1533..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrincipalSearchResponse.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// PrincipalSearchResponse. - /// - public class PrincipalSearchResponse - { - /// - /// Initializes a new instance of the class. - /// - public PrincipalSearchResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// type. - /// permissions. - public PrincipalSearchResponse( - string id = null, - string name = null, - string type = null, - List permissions = null) - { - this.Id = id; - this.Name = name; - this.Type = type; - this.Permissions = permissions; - } - - /// - /// GUID of the user or user group - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the user or user group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Indicates the type of principal - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// Indicates the permission which user or user group has on the object - /// - [JsonProperty("permissions", NullValueHandling = NullValueHandling.Ignore)] - public List Permissions { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"PrincipalSearchResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is PrincipalSearchResponse other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Permissions == null && other.Permissions == null) || (this.Permissions?.Equals(other.Permissions) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Permissions = {(this.Permissions == null ? "null" : $"[{string.Join(", ", this.Permissions)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrivilegeEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrivilegeEnum.cs deleted file mode 100644 index c7f5279b6..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/PrivilegeEnum.cs +++ /dev/null @@ -1,135 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// PrivilegeEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum PrivilegeEnum - { - /// - /// RANALYSIS. - /// - [EnumMember(Value = "RANALYSIS")] - RANALYSIS, - - /// - /// DATAMANAGEMENT. - /// - [EnumMember(Value = "DATAMANAGEMENT")] - DATAMANAGEMENT, - - /// - /// APPLICATIONADMINISTRATION. - /// - [EnumMember(Value = "APPLICATION_ADMINISTRATION")] - APPLICATIONADMINISTRATION, - - /// - /// USERADMINISTRATION. - /// - [EnumMember(Value = "USER_ADMINISTRATION")] - USERADMINISTRATION, - - /// - /// SYSTEMMANAGEMENT. - /// - [EnumMember(Value = "SYSTEMMANAGEMENT")] - SYSTEMMANAGEMENT, - - /// - /// SYSTEMINFOADMINISTRATION. - /// - [EnumMember(Value = "SYSTEM_INFO_ADMINISTRATION")] - SYSTEMINFOADMINISTRATION, - - /// - /// AUTHORING. - /// - [EnumMember(Value = "AUTHORING")] - AUTHORING, - - /// - /// BACKUPADMINISTRATION. - /// - [EnumMember(Value = "BACKUP_ADMINISTRATION")] - BACKUPADMINISTRATION, - - /// - /// SHAREWITHALL. - /// - [EnumMember(Value = "SHAREWITHALL")] - SHAREWITHALL, - - /// - /// DEVELOPER. - /// - [EnumMember(Value = "DEVELOPER")] - DEVELOPER, - - /// - /// JOBSCHEDULING. - /// - [EnumMember(Value = "JOBSCHEDULING")] - JOBSCHEDULING, - - /// - /// GROUPADMINISTRATION. - /// - [EnumMember(Value = "GROUP_ADMINISTRATION")] - GROUPADMINISTRATION, - - /// - /// BYPASSRLS. - /// - [EnumMember(Value = "BYPASSRLS")] - BYPASSRLS, - - /// - /// EXPERIMENTALFEATUREPRIVILEGE. - /// - [EnumMember(Value = "EXPERIMENTALFEATUREPRIVILEGE")] - EXPERIMENTALFEATUREPRIVILEGE, - - /// - /// A3ANALYSIS. - /// - [EnumMember(Value = "A3ANALYSIS")] - A3ANALYSIS, - - /// - /// USERDATAUPLOADING. - /// - [EnumMember(Value = "USERDATAUPLOADING")] - USERDATAUPLOADING, - - /// - /// DATADOWNLOADING. - /// - [EnumMember(Value = "DATADOWNLOADING")] - DATADOWNLOADING, - - /// - /// DISABLEPINBOARDCREATION. - /// - [EnumMember(Value = "DISABLE_PINBOARD_CREATION")] - DISABLEPINBOARDCREATION, - - /// - /// ADMINISTRATION. - /// - [EnumMember(Value = "ADMINISTRATION")] - ADMINISTRATION - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecuirityDependents.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecuirityDependents.cs deleted file mode 100644 index 8aa1c0964..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecuirityDependents.cs +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SecuirityDependents. - /// - public class SecuirityDependents - { - /// - /// Initializes a new instance of the class. - /// - public SecuirityDependents() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// type. - /// owner. - /// author. - /// permissions. - public SecuirityDependents( - string id = null, - string name = null, - string type = null, - string owner = null, - Models.UserNameAndID author = null, - List permissions = null) - { - this.Id = id; - this.Name = name; - this.Type = type; - this.Owner = owner; - this.Author = author; - this.Permissions = permissions; - } - - /// - /// GUID of the object - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the object - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Indicates the type of the object - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// Owner of the object - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public string Owner { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// Gets or sets Permissions. - /// - [JsonProperty("permissions", NullValueHandling = NullValueHandling.Ignore)] - public List Permissions { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"SecuirityDependents : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is SecuirityDependents other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.Permissions == null && other.Permissions == null) || (this.Permissions?.Equals(other.Permissions) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner == string.Empty ? "" : this.Owner)}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.Permissions = {(this.Permissions == null ? "null" : $"[{string.Join(", ", this.Permissions)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermission.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermission.cs deleted file mode 100644 index 56fdfc7aa..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermission.cs +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SecurityPermission. - /// - public class SecurityPermission - { - /// - /// Initializes a new instance of the class. - /// - public SecurityPermission() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// type. - /// permission. - /// sharedPermission. - /// groupPermission. - public SecurityPermission( - string id = null, - string name = null, - string type = null, - string permission = null, - string sharedPermission = null, - List groupPermission = null) - { - this.Id = id; - this.Name = name; - this.Type = type; - this.Permission = permission; - this.SharedPermission = sharedPermission; - this.GroupPermission = groupPermission; - } - - /// - /// GUID of the user or user group - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the user or user group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Indicates the type of principal - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// Indicates the permission which user or user group has on the object - /// - [JsonProperty("permission", NullValueHandling = NullValueHandling.Ignore)] - public string Permission { get; set; } - - /// - /// Indicates the permission which user or user group has on the object through sharing of the object with this user or user group - /// - [JsonProperty("sharedPermission", NullValueHandling = NullValueHandling.Ignore)] - public string SharedPermission { get; set; } - - /// - /// An array of object with details of permission on the user groups to which the user or user group belongs - /// - [JsonProperty("groupPermission", NullValueHandling = NullValueHandling.Ignore)] - public List GroupPermission { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"SecurityPermission : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is SecurityPermission other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Permission == null && other.Permission == null) || (this.Permission?.Equals(other.Permission) == true)) && - ((this.SharedPermission == null && other.SharedPermission == null) || (this.SharedPermission?.Equals(other.SharedPermission) == true)) && - ((this.GroupPermission == null && other.GroupPermission == null) || (this.GroupPermission?.Equals(other.GroupPermission) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Permission = {(this.Permission == null ? "null" : this.Permission == string.Empty ? "" : this.Permission)}"); - toStringOutput.Add($"this.SharedPermission = {(this.SharedPermission == null ? "null" : this.SharedPermission == string.Empty ? "" : this.SharedPermission)}"); - toStringOutput.Add($"this.GroupPermission = {(this.GroupPermission == null ? "null" : $"[{string.Join(", ", this.GroupPermission)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermissionResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermissionResponse.cs deleted file mode 100644 index cc7cc3cd5..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SecurityPermissionResponse.cs +++ /dev/null @@ -1,149 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SecurityPermissionResponse. - /// - public class SecurityPermissionResponse - { - /// - /// Initializes a new instance of the class. - /// - public SecurityPermissionResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// type. - /// owner. - /// author. - /// permissions. - /// dependents. - public SecurityPermissionResponse( - string id = null, - string name = null, - string type = null, - string owner = null, - Models.UserNameAndID author = null, - List permissions = null, - List dependents = null) - { - this.Id = id; - this.Name = name; - this.Type = type; - this.Owner = owner; - this.Author = author; - this.Permissions = permissions; - this.Dependents = dependents; - } - - /// - /// GUID of the object - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the object - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Indicates the type of the object - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// GUID of the owner of the object - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public string Owner { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// An array of object with details of permission on users and user groups - /// - [JsonProperty("permissions", NullValueHandling = NullValueHandling.Ignore)] - public List Permissions { get; set; } - - /// - /// The objects on which the primary object is dependent on - /// - [JsonProperty("dependents", NullValueHandling = NullValueHandling.Ignore)] - public List Dependents { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"SecurityPermissionResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is SecurityPermissionResponse other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.Permissions == null && other.Permissions == null) || (this.Permissions?.Equals(other.Permissions) == true)) && - ((this.Dependents == null && other.Dependents == null) || (this.Dependents?.Equals(other.Dependents) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner == string.Empty ? "" : this.Owner)}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.Permissions = {(this.Permissions == null ? "null" : $"[{string.Join(", ", this.Permissions)} ]")}"); - toStringOutput.Add($"this.Dependents = {(this.Dependents == null ? "null" : $"[{string.Join(", ", this.Dependents)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SessionLoginResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SessionLoginResponse.cs deleted file mode 100644 index 79b91736e..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SessionLoginResponse.cs +++ /dev/null @@ -1,127 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SessionLoginResponse. - /// - public class SessionLoginResponse - { - /// - /// Initializes a new instance of the class. - /// - public SessionLoginResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// userName. - /// token. - /// tokenCreatedTime. - /// tokenExpiryDuration. - /// tokenType. - public SessionLoginResponse( - string userName = null, - string token = null, - string tokenCreatedTime = null, - string tokenExpiryDuration = null, - string tokenType = null) - { - this.UserName = userName; - this.Token = token; - this.TokenCreatedTime = tokenCreatedTime; - this.TokenExpiryDuration = tokenExpiryDuration; - this.TokenType = tokenType; - } - - /// - /// Username of the user account for which token is generated - /// - [JsonProperty("userName", NullValueHandling = NullValueHandling.Ignore)] - public string UserName { get; set; } - - /// - /// Bearer token generated. This will be blank when token type is Cookie - /// - [JsonProperty("token", NullValueHandling = NullValueHandling.Ignore)] - public string Token { get; set; } - - /// - /// Date and time at which the token is generated - /// - [JsonProperty("tokenCreatedTime", NullValueHandling = NullValueHandling.Ignore)] - public string TokenCreatedTime { get; set; } - - /// - /// Duration in seconds after which the token expires - /// - [JsonProperty("tokenExpiryDuration", NullValueHandling = NullValueHandling.Ignore)] - public string TokenExpiryDuration { get; set; } - - /// - /// Type of token generated - /// - [JsonProperty("tokenType", NullValueHandling = NullValueHandling.Ignore)] - public string TokenType { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"SessionLoginResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is SessionLoginResponse other && - ((this.UserName == null && other.UserName == null) || (this.UserName?.Equals(other.UserName) == true)) && - ((this.Token == null && other.Token == null) || (this.Token?.Equals(other.Token) == true)) && - ((this.TokenCreatedTime == null && other.TokenCreatedTime == null) || (this.TokenCreatedTime?.Equals(other.TokenCreatedTime) == true)) && - ((this.TokenExpiryDuration == null && other.TokenExpiryDuration == null) || (this.TokenExpiryDuration?.Equals(other.TokenExpiryDuration) == true)) && - ((this.TokenType == null && other.TokenType == null) || (this.TokenType?.Equals(other.TokenType) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.UserName = {(this.UserName == null ? "null" : this.UserName == string.Empty ? "" : this.UserName)}"); - toStringOutput.Add($"this.Token = {(this.Token == null ? "null" : this.Token == string.Empty ? "" : this.Token)}"); - toStringOutput.Add($"this.TokenCreatedTime = {(this.TokenCreatedTime == null ? "null" : this.TokenCreatedTime == string.Empty ? "" : this.TokenCreatedTime)}"); - toStringOutput.Add($"this.TokenExpiryDuration = {(this.TokenExpiryDuration == null ? "null" : this.TokenExpiryDuration == string.Empty ? "" : this.TokenExpiryDuration)}"); - toStringOutput.Add($"this.TokenType = {(this.TokenType == null ? "null" : this.TokenType == string.Empty ? "" : this.TokenType)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortBy1Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortBy1Enum.cs deleted file mode 100644 index 66b0291c0..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortBy1Enum.cs +++ /dev/null @@ -1,93 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SortBy1Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum SortBy1Enum - { - /// - /// DEFAULT. - /// - [EnumMember(Value = "DEFAULT")] - DEFAULT, - - /// - /// NAME. - /// - [EnumMember(Value = "NAME")] - NAME, - - /// - /// DISPLAYNAME. - /// - [EnumMember(Value = "DISPLAY_NAME")] - DISPLAYNAME, - - /// - /// AUTHOR. - /// - [EnumMember(Value = "AUTHOR")] - AUTHOR, - - /// - /// CREATED. - /// - [EnumMember(Value = "CREATED")] - CREATED, - - /// - /// MODIFIED. - /// - [EnumMember(Value = "MODIFIED")] - MODIFIED, - - /// - /// LASTACCESSED. - /// - [EnumMember(Value = "LAST_ACCESSED")] - LASTACCESSED, - - /// - /// SYNCED. - /// - [EnumMember(Value = "SYNCED")] - SYNCED, - - /// - /// VIEWS. - /// - [EnumMember(Value = "VIEWS")] - VIEWS, - - /// - /// NONE. - /// - [EnumMember(Value = "NONE")] - NONE, - - /// - /// USERSTATE. - /// - [EnumMember(Value = "USER_STATE")] - USERSTATE, - - /// - /// ROWCOUNT. - /// - [EnumMember(Value = "ROW_COUNT")] - ROWCOUNT - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortByEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortByEnum.cs deleted file mode 100644 index b26535d8d..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortByEnum.cs +++ /dev/null @@ -1,93 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SortByEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum SortByEnum - { - /// - /// DEFAULT. - /// - [EnumMember(Value = "DEFAULT")] - DEFAULT, - - /// - /// NAME. - /// - [EnumMember(Value = "NAME")] - NAME, - - /// - /// DISPLAYNAME. - /// - [EnumMember(Value = "DISPLAY_NAME")] - DISPLAYNAME, - - /// - /// AUTHOR. - /// - [EnumMember(Value = "AUTHOR")] - AUTHOR, - - /// - /// CREATED. - /// - [EnumMember(Value = "CREATED")] - CREATED, - - /// - /// MODIFIED. - /// - [EnumMember(Value = "MODIFIED")] - MODIFIED, - - /// - /// LASTACCESSED. - /// - [EnumMember(Value = "LAST_ACCESSED")] - LASTACCESSED, - - /// - /// SYNCED. - /// - [EnumMember(Value = "SYNCED")] - SYNCED, - - /// - /// VIEWS. - /// - [EnumMember(Value = "VIEWS")] - VIEWS, - - /// - /// NONE. - /// - [EnumMember(Value = "NONE")] - NONE, - - /// - /// USERSTATE. - /// - [EnumMember(Value = "USER_STATE")] - USERSTATE, - - /// - /// ROWCOUNT. - /// - [EnumMember(Value = "ROW_COUNT")] - ROWCOUNT - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrder1Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrder1Enum.cs deleted file mode 100644 index 546a3d802..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrder1Enum.cs +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SortOrder1Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum SortOrder1Enum - { - /// - /// DEFAULT. - /// - [EnumMember(Value = "DEFAULT")] - DEFAULT, - - /// - /// ASC. - /// - [EnumMember(Value = "ASC")] - ASC, - - /// - /// DESC. - /// - [EnumMember(Value = "DESC")] - DESC - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrderEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrderEnum.cs deleted file mode 100644 index 0312c9c92..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/SortOrderEnum.cs +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// SortOrderEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum SortOrderEnum - { - /// - /// DEFAULT. - /// - [EnumMember(Value = "DEFAULT")] - DEFAULT, - - /// - /// ASC. - /// - [EnumMember(Value = "ASC")] - ASC, - - /// - /// DESC. - /// - [EnumMember(Value = "DESC")] - DESC - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/State1Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/State1Enum.cs deleted file mode 100644 index 12cd28f38..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/State1Enum.cs +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// State1Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum State1Enum - { - /// - /// ACTIVE. - /// - [EnumMember(Value = "ACTIVE")] - ACTIVE, - - /// - /// INACTIVE. - /// - [EnumMember(Value = "INACTIVE")] - INACTIVE, - - /// - /// EXPIRED. - /// - [EnumMember(Value = "EXPIRED")] - EXPIRED, - - /// - /// LOCKED. - /// - [EnumMember(Value = "LOCKED")] - LOCKED, - - /// - /// PENDING. - /// - [EnumMember(Value = "PENDING")] - PENDING - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/StateEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/StateEnum.cs deleted file mode 100644 index 987ddf4d2..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/StateEnum.cs +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// StateEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum StateEnum - { - /// - /// ACTIVE. - /// - [EnumMember(Value = "ACTIVE")] - ACTIVE, - - /// - /// INACTIVE. - /// - [EnumMember(Value = "INACTIVE")] - INACTIVE, - - /// - /// EXPIRED. - /// - [EnumMember(Value = "EXPIRED")] - EXPIRED, - - /// - /// LOCKED. - /// - [EnumMember(Value = "LOCKED")] - LOCKED, - - /// - /// PENDING. - /// - [EnumMember(Value = "PENDING")] - PENDING - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableColumns.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableColumns.cs deleted file mode 100644 index 660cbf411..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableColumns.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TableColumns. - /// - public class TableColumns - { - /// - /// Initializes a new instance of the class. - /// - public TableColumns() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// dataType. - public TableColumns( - string name = null, - string dataType = null) - { - this.Name = name; - this.DataType = dataType; - } - - /// - /// Name of the column - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Datatype of the column - /// - [JsonProperty("dataType", NullValueHandling = NullValueHandling.Ignore)] - public string DataType { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TableColumns : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TableColumns other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.DataType == null && other.DataType == null) || (this.DataType?.Equals(other.DataType) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.DataType = {(this.DataType == null ? "null" : this.DataType == string.Empty ? "" : this.DataType)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableInput.cs deleted file mode 100644 index c567e173b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TableInput. - /// - public class TableInput - { - /// - /// Initializes a new instance of the class. - /// - public TableInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public TableInput( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the table - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the Table - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TableInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TableInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableList.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableList.cs deleted file mode 100644 index 0121dbdc1..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TableList.cs +++ /dev/null @@ -1,259 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TableList. - /// - public class TableList - { - /// - /// Initializes a new instance of the class. - /// - public TableList() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// type. - /// id. - /// databaseStripe. - /// schemaStripe. - /// isExternal. - /// isDeprecated. - /// isDeleted. - /// isHidden. - /// indexVersion. - /// generationNum. - /// created. - /// modified. - /// author. - /// modifiedBy. - /// owner. - /// tags. - public TableList( - string name = null, - string type = null, - string id = null, - string databaseStripe = null, - string schemaStripe = null, - bool? isExternal = null, - bool? isDeprecated = null, - bool? isDeleted = null, - bool? isHidden = null, - double? indexVersion = null, - double? generationNum = null, - string created = null, - string modified = null, - Models.UserNameAndID author = null, - Models.UserNameAndID modifiedBy = null, - Models.UserNameAndID owner = null, - List tags = null) - { - this.Name = name; - this.Type = type; - this.Id = id; - this.DatabaseStripe = databaseStripe; - this.SchemaStripe = schemaStripe; - this.IsExternal = isExternal; - this.IsDeprecated = isDeprecated; - this.IsDeleted = isDeleted; - this.IsHidden = isHidden; - this.IndexVersion = indexVersion; - this.GenerationNum = generationNum; - this.Created = created; - this.Modified = modified; - this.Author = author; - this.ModifiedBy = modifiedBy; - this.Owner = owner; - this.Tags = tags; - } - - /// - /// Name of the table - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Type of the table - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// GUID of the table - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the database to which the table belongs - /// - [JsonProperty("databaseStripe", NullValueHandling = NullValueHandling.Ignore)] - public string DatabaseStripe { get; set; } - - /// - /// Name of the schema to which the table belongs - /// - [JsonProperty("schemaStripe", NullValueHandling = NullValueHandling.Ignore)] - public string SchemaStripe { get; set; } - - /// - /// Gets or sets IsExternal. - /// - [JsonProperty("isExternal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsExternal { get; set; } - - /// - /// Indicates if the table is deprecated - /// - [JsonProperty("isDeprecated", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeprecated { get; set; } - - /// - /// Indicates if the table is deleted - /// - [JsonProperty("isDeleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeleted { get; set; } - - /// - /// Indicates if the table is hideen - /// - [JsonProperty("isHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsHidden { get; set; } - - /// - /// Gets or sets IndexVersion. - /// - [JsonProperty("indexVersion", NullValueHandling = NullValueHandling.Ignore)] - public double? IndexVersion { get; set; } - - /// - /// Gets or sets GenerationNum. - /// - [JsonProperty("generationNum", NullValueHandling = NullValueHandling.Ignore)] - public double? GenerationNum { get; set; } - - /// - /// Date and time when the table was created - /// - [JsonProperty("created", NullValueHandling = NullValueHandling.Ignore)] - public string Created { get; set; } - - /// - /// Date and time of last modification of the table - /// - [JsonProperty("modified", NullValueHandling = NullValueHandling.Ignore)] - public string Modified { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// Gets or sets ModifiedBy. - /// - [JsonProperty("modifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID ModifiedBy { get; set; } - - /// - /// Gets or sets Owner. - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Owner { get; set; } - - /// - /// List of tags assigned to the table - /// - [JsonProperty("tags", NullValueHandling = NullValueHandling.Ignore)] - public List Tags { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TableList : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TableList other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.DatabaseStripe == null && other.DatabaseStripe == null) || (this.DatabaseStripe?.Equals(other.DatabaseStripe) == true)) && - ((this.SchemaStripe == null && other.SchemaStripe == null) || (this.SchemaStripe?.Equals(other.SchemaStripe) == true)) && - ((this.IsExternal == null && other.IsExternal == null) || (this.IsExternal?.Equals(other.IsExternal) == true)) && - ((this.IsDeprecated == null && other.IsDeprecated == null) || (this.IsDeprecated?.Equals(other.IsDeprecated) == true)) && - ((this.IsDeleted == null && other.IsDeleted == null) || (this.IsDeleted?.Equals(other.IsDeleted) == true)) && - ((this.IsHidden == null && other.IsHidden == null) || (this.IsHidden?.Equals(other.IsHidden) == true)) && - ((this.IndexVersion == null && other.IndexVersion == null) || (this.IndexVersion?.Equals(other.IndexVersion) == true)) && - ((this.GenerationNum == null && other.GenerationNum == null) || (this.GenerationNum?.Equals(other.GenerationNum) == true)) && - ((this.Created == null && other.Created == null) || (this.Created?.Equals(other.Created) == true)) && - ((this.Modified == null && other.Modified == null) || (this.Modified?.Equals(other.Modified) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.ModifiedBy == null && other.ModifiedBy == null) || (this.ModifiedBy?.Equals(other.ModifiedBy) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)) && - ((this.Tags == null && other.Tags == null) || (this.Tags?.Equals(other.Tags) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.DatabaseStripe = {(this.DatabaseStripe == null ? "null" : this.DatabaseStripe == string.Empty ? "" : this.DatabaseStripe)}"); - toStringOutput.Add($"this.SchemaStripe = {(this.SchemaStripe == null ? "null" : this.SchemaStripe == string.Empty ? "" : this.SchemaStripe)}"); - toStringOutput.Add($"this.IsExternal = {(this.IsExternal == null ? "null" : this.IsExternal.ToString())}"); - toStringOutput.Add($"this.IsDeprecated = {(this.IsDeprecated == null ? "null" : this.IsDeprecated.ToString())}"); - toStringOutput.Add($"this.IsDeleted = {(this.IsDeleted == null ? "null" : this.IsDeleted.ToString())}"); - toStringOutput.Add($"this.IsHidden = {(this.IsHidden == null ? "null" : this.IsHidden.ToString())}"); - toStringOutput.Add($"this.IndexVersion = {(this.IndexVersion == null ? "null" : this.IndexVersion.ToString())}"); - toStringOutput.Add($"this.GenerationNum = {(this.GenerationNum == null ? "null" : this.GenerationNum.ToString())}"); - toStringOutput.Add($"this.Created = {(this.Created == null ? "null" : this.Created == string.Empty ? "" : this.Created)}"); - toStringOutput.Add($"this.Modified = {(this.Modified == null ? "null" : this.Modified == string.Empty ? "" : this.Modified)}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.ModifiedBy = {(this.ModifiedBy == null ? "null" : this.ModifiedBy.ToString())}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner.ToString())}"); - toStringOutput.Add($"this.Tags = {(this.Tags == null ? "null" : $"[{string.Join(", ", this.Tags)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndID.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndID.cs deleted file mode 100644 index 5aaaa7f29..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndID.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TagNameAndID. - /// - public class TagNameAndID - { - /// - /// Initializes a new instance of the class. - /// - public TagNameAndID() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public TagNameAndID( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the group to which group is added - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the group to which group is added - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TagNameAndID : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TagNameAndID other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndIdInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndIdInput.cs deleted file mode 100644 index 694dd841f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TagNameAndIdInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TagNameAndIdInput. - /// - public class TagNameAndIdInput - { - /// - /// Initializes a new instance of the class. - /// - public TagNameAndIdInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public TagNameAndIdInput( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Name of the tags - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the tags - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TagNameAndIdInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TagNameAndIdInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ToUserNameAndIDInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ToUserNameAndIDInput.cs deleted file mode 100644 index cb76ff013..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/ToUserNameAndIDInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// ToUserNameAndIDInput. - /// - public class ToUserNameAndIDInput - { - /// - /// Initializes a new instance of the class. - /// - public ToUserNameAndIDInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public ToUserNameAndIDInput( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Username of the user - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the user - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"ToUserNameAndIDInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is ToUserNameAndIDInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TopicEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TopicEnum.cs deleted file mode 100644 index 8250aac33..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TopicEnum.cs +++ /dev/null @@ -1,27 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TopicEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum TopicEnum - { - /// - /// SecurityLogs. - /// - [EnumMember(Value = "security_logs")] - SecurityLogs - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectInput.cs deleted file mode 100644 index 8fc657ecd..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TsObjectInput. - /// - public class TsObjectInput - { - /// - /// Initializes a new instance of the class. - /// - public TsObjectInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// type. - public TsObjectInput( - string id, - Models.TypeEnum type) - { - this.Id = id; - this.Type = type; - } - - /// - /// GUID of the metadata object - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// Type of the metadata object - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.TypeEnum Type { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TsObjectInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TsObjectInput other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - this.Type.Equals(other.Type); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Type = {this.Type}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectSearchInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectSearchInput.cs deleted file mode 100644 index cf2bfa5a8..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectSearchInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TsObjectSearchInput. - /// - public class TsObjectSearchInput - { - /// - /// Initializes a new instance of the class. - /// - public TsObjectSearchInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// id. - public TsObjectSearchInput( - Models.Type2Enum type, - List id) - { - this.Type = type; - this.Id = id; - } - - /// - /// Type of the metadata objec - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.Type2Enum Type { get; set; } - - /// - /// A JSON Array of GUIDs of the metadata object - /// - [JsonProperty("id")] - public List Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TsObjectSearchInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TsObjectSearchInput other && - this.Type.Equals(other.Type) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Type = {this.Type}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : $"[{string.Join(", ", this.Id)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectTypeSerach.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectTypeSerach.cs deleted file mode 100644 index f3bc612c4..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TsObjectTypeSerach.cs +++ /dev/null @@ -1,149 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TsObjectTypeSerach. - /// - public class TsObjectTypeSerach - { - /// - /// Initializes a new instance of the class. - /// - public TsObjectTypeSerach() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// name. - /// owner. - /// author. - /// permission. - /// sharedPermission. - /// groupPermission. - public TsObjectTypeSerach( - string id = null, - string name = null, - string owner = null, - Models.UserNameAndID author = null, - string permission = null, - string sharedPermission = null, - List groupPermission = null) - { - this.Id = id; - this.Name = name; - this.Owner = owner; - this.Author = author; - this.Permission = permission; - this.SharedPermission = sharedPermission; - this.GroupPermission = groupPermission; - } - - /// - /// GUID of the object - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Name of the object - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Owner of the object - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public string Owner { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// Indicates the permission which user or user group has on the object - /// - [JsonProperty("permission", NullValueHandling = NullValueHandling.Ignore)] - public string Permission { get; set; } - - /// - /// Indicates the permission which user or user group has on the object through sharing of the object with the user or user group - /// - [JsonProperty("sharedPermission", NullValueHandling = NullValueHandling.Ignore)] - public string SharedPermission { get; set; } - - /// - /// An array of object with details of permission on the user groups to which the user or user group belongs - /// - [JsonProperty("groupPermission", NullValueHandling = NullValueHandling.Ignore)] - public List GroupPermission { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TsObjectTypeSerach : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TsObjectTypeSerach other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.Permission == null && other.Permission == null) || (this.Permission?.Equals(other.Permission) == true)) && - ((this.SharedPermission == null && other.SharedPermission == null) || (this.SharedPermission?.Equals(other.SharedPermission) == true)) && - ((this.GroupPermission == null && other.GroupPermission == null) || (this.GroupPermission?.Equals(other.GroupPermission) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner == string.Empty ? "" : this.Owner)}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.Permission = {(this.Permission == null ? "null" : this.Permission == string.Empty ? "" : this.Permission)}"); - toStringOutput.Add($"this.SharedPermission = {(this.SharedPermission == null ? "null" : this.SharedPermission == string.Empty ? "" : this.SharedPermission)}"); - toStringOutput.Add($"this.GroupPermission = {(this.GroupPermission == null ? "null" : $"[{string.Join(", ", this.GroupPermission)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminAssignauthorRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminAssignauthorRequest.cs deleted file mode 100644 index 0b431c2bd..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminAssignauthorRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2AdminAssignauthorRequest. - /// - public class TspublicRestV2AdminAssignauthorRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2AdminAssignauthorRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tsObjectId. - /// name. - /// id. - public TspublicRestV2AdminAssignauthorRequest( - List tsObjectId, - string name = null, - string id = null) - { - this.TsObjectId = tsObjectId; - this.Name = name; - this.Id = id; - } - - /// - /// A JSON array of GUIDs of the metadata objects. - /// - [JsonProperty("tsObjectId")] - public List TsObjectId { get; set; } - - /// - /// User name of the user account - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the user account - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2AdminAssignauthorRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2AdminAssignauthorRequest other && - ((this.TsObjectId == null && other.TsObjectId == null) || (this.TsObjectId?.Equals(other.TsObjectId) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.TsObjectId = {(this.TsObjectId == null ? "null" : $"[{string.Join(", ", this.TsObjectId)} ]")}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminChangeauthorRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminChangeauthorRequest.cs deleted file mode 100644 index 6381d8142..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminChangeauthorRequest.cs +++ /dev/null @@ -1,109 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2AdminChangeauthorRequest. - /// - public class TspublicRestV2AdminChangeauthorRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2AdminChangeauthorRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tsObjectId. - /// fromUser. - /// toUser. - public TspublicRestV2AdminChangeauthorRequest( - List tsObjectId, - Models.FromUserNameAndIDInput fromUser, - Models.ToUserNameAndIDInput toUser) - { - this.TsObjectId = tsObjectId; - this.FromUser = fromUser; - this.ToUser = toUser; - } - - /// - /// A JSON array of GUIDs of the metadata objects. - /// To change owner of all the objects owned by a user, provide single input as ALL. - /// If multiple object ids along with ALL is provided as input, then ALL will be considered. - /// - [JsonProperty("tsObjectId")] - public List TsObjectId { get; set; } - - /// - /// A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. - /// If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. - /// Provide either name or id as input. When both are given user id will be considered. - /// - [JsonProperty("fromUser")] - public Models.FromUserNameAndIDInput FromUser { get; set; } - - /// - /// A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. - /// - [JsonProperty("toUser")] - public Models.ToUserNameAndIDInput ToUser { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2AdminChangeauthorRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2AdminChangeauthorRequest other && - ((this.TsObjectId == null && other.TsObjectId == null) || (this.TsObjectId?.Equals(other.TsObjectId) == true)) && - ((this.FromUser == null && other.FromUser == null) || (this.FromUser?.Equals(other.FromUser) == true)) && - ((this.ToUser == null && other.ToUser == null) || (this.ToUser?.Equals(other.ToUser) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.TsObjectId = {(this.TsObjectId == null ? "null" : $"[{string.Join(", ", this.TsObjectId)} ]")}"); - toStringOutput.Add($"this.FromUser = {(this.FromUser == null ? "null" : this.FromUser.ToString())}"); - toStringOutput.Add($"this.ToUser = {(this.ToUser == null ? "null" : this.ToUser.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminConfigurationUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminConfigurationUpdateRequest.cs deleted file mode 100644 index 3f92558de..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminConfigurationUpdateRequest.cs +++ /dev/null @@ -1,84 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2AdminConfigurationUpdateRequest. - /// - public class TspublicRestV2AdminConfigurationUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2AdminConfigurationUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// configuration. - public TspublicRestV2AdminConfigurationUpdateRequest( - string configuration = null) - { - this.Configuration = configuration; - } - - /// - /// A JSON file with the key-value pair of configuration attributes to be updated. - /// Example: {"defaultChartDataSize": 5000} - /// - [JsonProperty("configuration", NullValueHandling = NullValueHandling.Ignore)] - public string Configuration { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2AdminConfigurationUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2AdminConfigurationUpdateRequest other && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminForcelogoutRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminForcelogoutRequest.cs deleted file mode 100644 index 8c9ab477e..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminForcelogoutRequest.cs +++ /dev/null @@ -1,83 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2AdminForcelogoutRequest. - /// - public class TspublicRestV2AdminForcelogoutRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2AdminForcelogoutRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// user. - public TspublicRestV2AdminForcelogoutRequest( - List user = null) - { - this.User = user; - } - - /// - /// A JSON array of name of users or GUIDs of groups or both. When both are given then id is considered. - /// - [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] - public List User { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2AdminForcelogoutRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2AdminForcelogoutRequest other && - ((this.User == null && other.User == null) || (this.User?.Equals(other.User) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.User = {(this.User == null ? "null" : $"[{string.Join(", ", this.User)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminResetpasswordRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminResetpasswordRequest.cs deleted file mode 100644 index 926b4df40..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminResetpasswordRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2AdminResetpasswordRequest. - /// - public class TspublicRestV2AdminResetpasswordRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2AdminResetpasswordRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// newPassword. - /// name. - /// id. - public TspublicRestV2AdminResetpasswordRequest( - string newPassword, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.NewPassword = newPassword; - } - - /// - /// User name of the user account - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the user account to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A new password for the user. - /// - [JsonProperty("newPassword")] - public string NewPassword { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2AdminResetpasswordRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2AdminResetpasswordRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.NewPassword == null && other.NewPassword == null) || (this.NewPassword?.Equals(other.NewPassword) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.NewPassword = {(this.NewPassword == null ? "null" : this.NewPassword == string.Empty ? "" : this.NewPassword)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminSyncprincipalRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminSyncprincipalRequest.cs deleted file mode 100644 index 6717b6253..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2AdminSyncprincipalRequest.cs +++ /dev/null @@ -1,141 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2AdminSyncprincipalRequest. - /// - public class TspublicRestV2AdminSyncprincipalRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2AdminSyncprincipalRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// principalObject. - /// updateModified. - /// deleteRemoved. - /// newUserPassword. - public TspublicRestV2AdminSyncprincipalRequest( - object principalObject, - bool? updateModified = false, - bool? deleteRemoved = false, - string newUserPassword = null) - { - this.PrincipalObject = principalObject; - this.UpdateModified = updateModified; - this.DeleteRemoved = deleteRemoved; - this.NewUserPassword = newUserPassword; - } - - /// - /// A JSON array of principal objects containing all users and groups present in the external system. - /// Example: - /// { - /// "name": "Customer Success", - /// "displayName": "Customer Success", - /// "description": "CS", - /// "created": 1568926267025, - /// "modified": 1568926982242, - /// "principalTypeEnum": "LOCAL_GROUP", - /// "groupNames": [], - /// "visibility": "DEFAULT" - /// }, - /// { - /// "name": "test", - /// "displayName": "test one", - /// "created": 1587573621279, - /// "modified": 1587573621674, - /// "mail": "test2@test.com", - /// "principalTypeEnum": "LOCAL_USER", - /// "groupNames": [ "Administrator", "All" ], - /// "visibility": "DEFAULT" - /// } - /// You can leave the created and modified dates blank for new users. - /// You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum keyword. - /// Set visibility to NON_SHARABLE, if you do not want the user to be able to share ThoughtSpot objects with other users in this group. - /// - [JsonProperty("principalObject")] - public object PrincipalObject { get; set; } - - /// - /// Specifies whether to apply the changes to users and groups already in the cluster based on the principal object list input. - /// - [JsonProperty("updateModified", NullValueHandling = NullValueHandling.Ignore)] - public bool? UpdateModified { get; set; } - - /// - /// Specifies whether to delete the users and groups already in the cluster if not present in the principal object list input. - /// - [JsonProperty("deleteRemoved", NullValueHandling = NullValueHandling.Ignore)] - public bool? DeleteRemoved { get; set; } - - /// - /// Assign a password for new users added during the sync operation. - /// All new users added will have this password. It is mandatory to provide value for this field if new users are included in the input list. - /// - [JsonProperty("newUserPassword", NullValueHandling = NullValueHandling.Ignore)] - public string NewUserPassword { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2AdminSyncprincipalRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2AdminSyncprincipalRequest other && - ((this.PrincipalObject == null && other.PrincipalObject == null) || (this.PrincipalObject?.Equals(other.PrincipalObject) == true)) && - ((this.UpdateModified == null && other.UpdateModified == null) || (this.UpdateModified?.Equals(other.UpdateModified) == true)) && - ((this.DeleteRemoved == null && other.DeleteRemoved == null) || (this.DeleteRemoved?.Equals(other.DeleteRemoved) == true)) && - ((this.NewUserPassword == null && other.NewUserPassword == null) || (this.NewUserPassword?.Equals(other.NewUserPassword) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"PrincipalObject = {(this.PrincipalObject == null ? "null" : this.PrincipalObject.ToString())}"); - toStringOutput.Add($"this.UpdateModified = {(this.UpdateModified == null ? "null" : this.UpdateModified.ToString())}"); - toStringOutput.Add($"this.DeleteRemoved = {(this.DeleteRemoved == null ? "null" : this.DeleteRemoved.ToString())}"); - toStringOutput.Add($"this.NewUserPassword = {(this.NewUserPassword == null ? "null" : this.NewUserPassword == string.Empty ? "" : this.NewUserPassword)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionAddtableRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionAddtableRequest.cs deleted file mode 100644 index 63a46cbf0..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionAddtableRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2ConnectionAddtableRequest. - /// - public class TspublicRestV2ConnectionAddtableRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2ConnectionAddtableRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// table. - public TspublicRestV2ConnectionAddtableRequest( - string id, - List table) - { - this.Id = id; - this.Table = table; - } - - /// - /// GUID of the connection - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// A JSON array of table details - /// - [JsonProperty("table")] - public List Table { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2ConnectionAddtableRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2ConnectionAddtableRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Table == null && other.Table == null) || (this.Table?.Equals(other.Table) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Table = {(this.Table == null ? "null" : $"[{string.Join(", ", this.Table)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionCreateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionCreateRequest.cs deleted file mode 100644 index 7b36a22b2..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionCreateRequest.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2ConnectionCreateRequest. - /// - public class TspublicRestV2ConnectionCreateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2ConnectionCreateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// name. - /// configuration. - /// description. - public TspublicRestV2ConnectionCreateRequest( - Models.Type14Enum type, - string name, - string configuration, - string description = null) - { - this.Type = type; - this.Name = name; - this.Description = description; - this.Configuration = configuration; - } - - /// - /// Type of the data connection. - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.Type14Enum Type { get; set; } - - /// - /// Name of the connection - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - /// A short description of the connection. - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. - /// - [JsonProperty("configuration")] - public string Configuration { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2ConnectionCreateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2ConnectionCreateRequest other && - this.Type.Equals(other.Type) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Type = {this.Type}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionRemovetableRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionRemovetableRequest.cs deleted file mode 100644 index e8aa10aee..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionRemovetableRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2ConnectionRemovetableRequest. - /// - public class TspublicRestV2ConnectionRemovetableRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2ConnectionRemovetableRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// table. - public TspublicRestV2ConnectionRemovetableRequest( - string id, - List table) - { - this.Id = id; - this.Table = table; - } - - /// - /// GUID of the connection - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// A JSON array of name or GUIDs of the table or both. At least one input is required. Provide either table name or id. When both are given then id is considered - /// - [JsonProperty("table")] - public List Table { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2ConnectionRemovetableRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2ConnectionRemovetableRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Table == null && other.Table == null) || (this.Table?.Equals(other.Table) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Table = {(this.Table == null ? "null" : $"[{string.Join(", ", this.Table)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionSearchRequest.cs deleted file mode 100644 index e074bfdea..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionSearchRequest.cs +++ /dev/null @@ -1,182 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2ConnectionSearchRequest. - /// - public class TspublicRestV2ConnectionSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2ConnectionSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// offset. - /// batchNumber. - /// batchSize. - /// sortBy. - /// sortOrder. - /// namePattern. - /// fetchId. - /// skipId. - /// tag. - public TspublicRestV2ConnectionSearchRequest( - Models.Type15Enum type, - int? offset = 0, - int? batchNumber = -1, - int? batchSize = -1, - Models.SortBy1Enum? sortBy = Models.SortBy1Enum.DEFAULT, - Models.SortOrder1Enum? sortOrder = null, - string namePattern = null, - List fetchId = null, - List skipId = null, - List tag = null) - { - this.Offset = offset; - this.BatchNumber = batchNumber; - this.BatchSize = batchSize; - this.SortBy = sortBy; - this.SortOrder = sortOrder; - this.Type = type; - this.NamePattern = namePattern; - this.FetchId = fetchId; - this.SkipId = skipId; - this.Tag = tag; - } - - /// - /// The offset point, starting from where the records should be included in the response. If no input is provided then offset starts from 0 - /// - [JsonProperty("offset", NullValueHandling = NullValueHandling.Ignore)] - public int? Offset { get; set; } - - /// - /// An alternate way to set offset for the starting point of the response. Offset field should be kept blank to use the value from this field. Offset value will be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - /// - [JsonProperty("batchNumber", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchNumber { get; set; } - - /// - /// The number of records that should be included in the response starting from offset position. If no input is provided, then all records starting from the value provided in offset is included in the response. - /// - [JsonProperty("batchSize", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchSize { get; set; } - - /// - /// Field based on which the re.sponse needs to be ordered. Valid values - /// - [JsonProperty("sortBy", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.SortBy1Enum? SortBy { get; set; } - - /// - /// Order in which sortBy should be applied. Valid values - /// - [JsonProperty("sortOrder", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.SortOrder1Enum? SortOrder { get; set; } - - /// - /// Type of the connect being searched. Valid values: SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.Type15Enum Type { get; set; } - - /// - /// A pattern to match the name of the connection. This parameter supports matching case-insensitive strings. For a wildcard match, use %. - /// - [JsonProperty("namePattern", NullValueHandling = NullValueHandling.Ignore)] - public string NamePattern { get; set; } - - /// - /// A JSON array containing the GUIDs of the connections that you want to fetch. - /// - [JsonProperty("fetchId", NullValueHandling = NullValueHandling.Ignore)] - public List FetchId { get; set; } - - /// - /// A JSON array containing the GUIDs of the connections that you want to skip. - /// - [JsonProperty("skipId", NullValueHandling = NullValueHandling.Ignore)] - public List SkipId { get; set; } - - /// - /// A JSON array of name or GUID of tags or both. When both are given then id is considered - /// - [JsonProperty("tag", NullValueHandling = NullValueHandling.Ignore)] - public List Tag { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2ConnectionSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2ConnectionSearchRequest other && - ((this.Offset == null && other.Offset == null) || (this.Offset?.Equals(other.Offset) == true)) && - ((this.BatchNumber == null && other.BatchNumber == null) || (this.BatchNumber?.Equals(other.BatchNumber) == true)) && - ((this.BatchSize == null && other.BatchSize == null) || (this.BatchSize?.Equals(other.BatchSize) == true)) && - ((this.SortBy == null && other.SortBy == null) || (this.SortBy?.Equals(other.SortBy) == true)) && - ((this.SortOrder == null && other.SortOrder == null) || (this.SortOrder?.Equals(other.SortOrder) == true)) && - this.Type.Equals(other.Type) && - ((this.NamePattern == null && other.NamePattern == null) || (this.NamePattern?.Equals(other.NamePattern) == true)) && - ((this.FetchId == null && other.FetchId == null) || (this.FetchId?.Equals(other.FetchId) == true)) && - ((this.SkipId == null && other.SkipId == null) || (this.SkipId?.Equals(other.SkipId) == true)) && - ((this.Tag == null && other.Tag == null) || (this.Tag?.Equals(other.Tag) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Offset = {(this.Offset == null ? "null" : this.Offset.ToString())}"); - toStringOutput.Add($"this.BatchNumber = {(this.BatchNumber == null ? "null" : this.BatchNumber.ToString())}"); - toStringOutput.Add($"this.BatchSize = {(this.BatchSize == null ? "null" : this.BatchSize.ToString())}"); - toStringOutput.Add($"this.SortBy = {(this.SortBy == null ? "null" : this.SortBy.ToString())}"); - toStringOutput.Add($"this.SortOrder = {(this.SortOrder == null ? "null" : this.SortOrder.ToString())}"); - toStringOutput.Add($"this.Type = {this.Type}"); - toStringOutput.Add($"this.NamePattern = {(this.NamePattern == null ? "null" : this.NamePattern == string.Empty ? "" : this.NamePattern)}"); - toStringOutput.Add($"this.FetchId = {(this.FetchId == null ? "null" : $"[{string.Join(", ", this.FetchId)} ]")}"); - toStringOutput.Add($"this.SkipId = {(this.SkipId == null ? "null" : $"[{string.Join(", ", this.SkipId)} ]")}"); - toStringOutput.Add($"this.Tag = {(this.Tag == null ? "null" : $"[{string.Join(", ", this.Tag)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTableRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTableRequest.cs deleted file mode 100644 index 6263f4a79..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTableRequest.cs +++ /dev/null @@ -1,109 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2ConnectionTableRequest. - /// - public class TspublicRestV2ConnectionTableRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2ConnectionTableRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// configuration. - /// includeColumn. - public TspublicRestV2ConnectionTableRequest( - string id, - string configuration = null, - bool? includeColumn = true) - { - this.Id = id; - this.Configuration = configuration; - this.IncludeColumn = includeColumn; - } - - /// - /// The GUID of the connection - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered. - /// To get the tables based on a different configuration, include required attributes in the connection configuration JSON. - /// Example: - /// Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"} - /// Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} - /// - [JsonProperty("configuration", NullValueHandling = NullValueHandling.Ignore)] - public string Configuration { get; set; } - - /// - /// When set to true, the response will include column level details as well - /// - [JsonProperty("includeColumn", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludeColumn { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2ConnectionTableRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2ConnectionTableRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)) && - ((this.IncludeColumn == null && other.IncludeColumn == null) || (this.IncludeColumn?.Equals(other.IncludeColumn) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - toStringOutput.Add($"this.IncludeColumn = {(this.IncludeColumn == null ? "null" : this.IncludeColumn.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTablecoloumnRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTablecoloumnRequest.cs deleted file mode 100644 index 65031cafc..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionTablecoloumnRequest.cs +++ /dev/null @@ -1,109 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2ConnectionTablecoloumnRequest. - /// - public class TspublicRestV2ConnectionTablecoloumnRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2ConnectionTablecoloumnRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// table. - /// configuration. - public TspublicRestV2ConnectionTablecoloumnRequest( - string id, - List table, - string configuration = null) - { - this.Id = id; - this.Configuration = configuration; - this.Table = table; - } - - /// - /// The GUID of the connection - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered. - /// To get the tables based on a different configuration, include required attributes in the connection configuration JSON. - /// Example: - /// Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"} - /// Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} - /// - [JsonProperty("configuration", NullValueHandling = NullValueHandling.Ignore)] - public string Configuration { get; set; } - - /// - /// List of table details - /// - [JsonProperty("table")] - public List Table { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2ConnectionTablecoloumnRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2ConnectionTablecoloumnRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)) && - ((this.Table == null && other.Table == null) || (this.Table?.Equals(other.Table) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - toStringOutput.Add($"this.Table = {(this.Table == null ? "null" : $"[{string.Join(", ", this.Table)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionUpdateRequest.cs deleted file mode 100644 index 5687681ca..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2ConnectionUpdateRequest.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2ConnectionUpdateRequest. - /// - public class TspublicRestV2ConnectionUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2ConnectionUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// configuration. - /// name. - /// description. - public TspublicRestV2ConnectionUpdateRequest( - string id, - string configuration, - string name = null, - string description = null) - { - this.Id = id; - this.Name = name; - this.Description = description; - this.Configuration = configuration; - } - - /// - /// GUID of the connection - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// The text to update the name of the connection. - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The text to update the description of the connection. - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// A JSON object of the connection metadata. Include all the configuration attributes with original value along with the changes required to any attribute. - /// - [JsonProperty("configuration")] - public string Configuration { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2ConnectionUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2ConnectionUpdateRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionAssociationUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionAssociationUpdateRequest.cs deleted file mode 100644 index 5bf0346e7..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionAssociationUpdateRequest.cs +++ /dev/null @@ -1,96 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2CustomactionAssociationUpdateRequest. - /// - public class TspublicRestV2CustomactionAssociationUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2CustomactionAssociationUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// association. - public TspublicRestV2CustomactionAssociationUpdateRequest( - string id, - string association) - { - this.Id = id; - this.Association = association; - } - - /// - /// GUID of the custom action - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// A JSON map of the attributes with association of the action to ThoughtSpot object ID - /// Example: - /// {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - /// - [JsonProperty("association")] - public string Association { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2CustomactionAssociationUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2CustomactionAssociationUpdateRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Association == null && other.Association == null) || (this.Association?.Equals(other.Association) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Association = {(this.Association == null ? "null" : this.Association == string.Empty ? "" : this.Association)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionCreateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionCreateRequest.cs deleted file mode 100644 index cf2cc753a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionCreateRequest.cs +++ /dev/null @@ -1,85 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2CustomactionCreateRequest. - /// - public class TspublicRestV2CustomactionCreateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2CustomactionCreateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// configuration. - public TspublicRestV2CustomactionCreateRequest( - string configuration) - { - this.Configuration = configuration; - } - - /// - /// A JSON object with the key-value pair of configuration attributes - /// Example: - /// {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - /// - [JsonProperty("configuration")] - public string Configuration { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2CustomactionCreateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2CustomactionCreateRequest other && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionSearchRequest.cs deleted file mode 100644 index b565d4276..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionSearchRequest.cs +++ /dev/null @@ -1,84 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2CustomactionSearchRequest. - /// - public class TspublicRestV2CustomactionSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2CustomactionSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tag. - public TspublicRestV2CustomactionSearchRequest( - List tag = null) - { - this.Tag = tag; - } - - /// - /// A JSON array of tag GUIDs. - /// If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags. - /// - [JsonProperty("tag", NullValueHandling = NullValueHandling.Ignore)] - public List Tag { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2CustomactionSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2CustomactionSearchRequest other && - ((this.Tag == null && other.Tag == null) || (this.Tag?.Equals(other.Tag) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Tag = {(this.Tag == null ? "null" : $"[{string.Join(", ", this.Tag)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionUpdateRequest.cs deleted file mode 100644 index 8e084675f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2CustomactionUpdateRequest.cs +++ /dev/null @@ -1,96 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2CustomactionUpdateRequest. - /// - public class TspublicRestV2CustomactionUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2CustomactionUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// configuration. - public TspublicRestV2CustomactionUpdateRequest( - string id, - string configuration) - { - this.Id = id; - this.Configuration = configuration; - } - - /// - /// GUID of the custom action - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// A JSON object with the key-value pair of configuration attributes - /// Example: - /// {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - /// - [JsonProperty("configuration")] - public string Configuration { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2CustomactionUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2CustomactionUpdateRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Configuration == null && other.Configuration == null) || (this.Configuration?.Equals(other.Configuration) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Configuration = {(this.Configuration == null ? "null" : this.Configuration == string.Empty ? "" : this.Configuration)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataAnswerRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataAnswerRequest.cs deleted file mode 100644 index e503222a3..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataAnswerRequest.cs +++ /dev/null @@ -1,136 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2DataAnswerRequest. - /// - public class TspublicRestV2DataAnswerRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2DataAnswerRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// offset. - /// batchNumber. - /// batchSize. - /// formatType. - public TspublicRestV2DataAnswerRequest( - string id, - int? offset = 0, - int? batchNumber = -1, - int? batchSize = -1, - Models.FormatTypeEnum? formatType = Models.FormatTypeEnum.COMPACT) - { - this.Offset = offset; - this.BatchNumber = batchNumber; - this.BatchSize = batchSize; - this.Id = id; - this.FormatType = formatType; - } - - /// - /// The offset point, starting from where the records should be included in the response. - /// If no input is provided then offset starts from 0. - /// - [JsonProperty("offset", NullValueHandling = NullValueHandling.Ignore)] - public int? Offset { get; set; } - - /// - /// An alternate way to set offset for the starting point of the response. - /// The value in offset field will not be considered if batchNumber field has value greater than 0. - /// Offset value will be calculated as (batchNumber - 1) * batchSize. - /// It is mandatory to provide a value for batchSize with batchNumber. - /// Example: - /// Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - /// - [JsonProperty("batchNumber", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchNumber { get; set; } - - /// - /// The number of records that should be included in the response starting from offset position. - /// If no input is provided, then all records starting from the value provided in offset is included in the response - /// - [JsonProperty("batchSize", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchSize { get; set; } - - /// - /// The GUID of the Answer - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// The format of the data in the response. - /// FULL: The response comes in "column":"value" format. - /// COMPACT: The response includes only the value of the columns. - /// - [JsonProperty("formatType", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.FormatTypeEnum? FormatType { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2DataAnswerRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2DataAnswerRequest other && - ((this.Offset == null && other.Offset == null) || (this.Offset?.Equals(other.Offset) == true)) && - ((this.BatchNumber == null && other.BatchNumber == null) || (this.BatchNumber?.Equals(other.BatchNumber) == true)) && - ((this.BatchSize == null && other.BatchSize == null) || (this.BatchSize?.Equals(other.BatchSize) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.FormatType == null && other.FormatType == null) || (this.FormatType?.Equals(other.FormatType) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Offset = {(this.Offset == null ? "null" : this.Offset.ToString())}"); - toStringOutput.Add($"this.BatchNumber = {(this.BatchNumber == null ? "null" : this.BatchNumber.ToString())}"); - toStringOutput.Add($"this.BatchSize = {(this.BatchSize == null ? "null" : this.BatchSize.ToString())}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.FormatType = {(this.FormatType == null ? "null" : this.FormatType.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataLiveboardRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataLiveboardRequest.cs deleted file mode 100644 index 4f57cce02..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataLiveboardRequest.cs +++ /dev/null @@ -1,184 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2DataLiveboardRequest. - /// - public class TspublicRestV2DataLiveboardRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2DataLiveboardRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// offset. - /// batchNumber. - /// batchSize. - /// id. - /// transientContent. - /// vizId. - /// runtimeFilter. - /// runtimeSort. - /// formatType. - public TspublicRestV2DataLiveboardRequest( - int? offset = 0, - int? batchNumber = -1, - int? batchSize = -1, - string id = null, - string transientContent = null, - List vizId = null, - string runtimeFilter = null, - string runtimeSort = null, - Models.FormatTypeEnum? formatType = Models.FormatTypeEnum.COMPACT) - { - this.Offset = offset; - this.BatchNumber = batchNumber; - this.BatchSize = batchSize; - this.Id = id; - this.TransientContent = transientContent; - this.VizId = vizId; - this.RuntimeFilter = runtimeFilter; - this.RuntimeSort = runtimeSort; - this.FormatType = formatType; - } - - /// - /// The offset point, starting from where the records should be included in the response. - /// If no input is provided then offset starts from 0. - /// - [JsonProperty("offset", NullValueHandling = NullValueHandling.Ignore)] - public int? Offset { get; set; } - - /// - /// An alternate way to set offset for the starting point of the response. - /// The value in offset field will not be considered if batchNumber field has value greater than 0. - /// Offset value will be calculated as (batchNumber - 1) * batchSize. - /// It is mandatory to provide a value for batchSize with batchNumber. - /// Example: - /// Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - /// - [JsonProperty("batchNumber", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchNumber { get; set; } - - /// - /// The number of records that should be included in the response starting from offset position. - /// If no input is provided, then all records starting from the value provided in offset is included in the response - /// - [JsonProperty("batchSize", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchSize { get; set; } - - /// - /// The GUID of the Liveboard - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// If you have embedded ThoughtSpot in your host application, and you want to download Liveboard data with unsaved changes then, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If value for this field is provided, then id will not be considered. - /// - [JsonProperty("transientContent", NullValueHandling = NullValueHandling.Ignore)] - public string TransientContent { get; set; } - - /// - /// A JSON array of GUIDs of the visualizations in the Liveboard. - /// - [JsonProperty("vizId", NullValueHandling = NullValueHandling.Ignore)] - public List VizId { get; set; } - - /// - /// JSON object which contains filter condition to filter the data at the time of data retrieval. - /// Example: {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]} - /// For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters - /// - [JsonProperty("runtimeFilter", NullValueHandling = NullValueHandling.Ignore)] - public string RuntimeFilter { get; set; } - - /// - /// JSON object which provides columns to sort the data at the time of data retrieval. - /// Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"} - /// For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. - /// - [JsonProperty("runtimeSort", NullValueHandling = NullValueHandling.Ignore)] - public string RuntimeSort { get; set; } - - /// - /// The format of the data in the response. - /// FULL: The response comes in "column":"value" format. - /// COMPACT: The response includes only the value of the columns. - /// - [JsonProperty("formatType", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.FormatTypeEnum? FormatType { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2DataLiveboardRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2DataLiveboardRequest other && - ((this.Offset == null && other.Offset == null) || (this.Offset?.Equals(other.Offset) == true)) && - ((this.BatchNumber == null && other.BatchNumber == null) || (this.BatchNumber?.Equals(other.BatchNumber) == true)) && - ((this.BatchSize == null && other.BatchSize == null) || (this.BatchSize?.Equals(other.BatchSize) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.TransientContent == null && other.TransientContent == null) || (this.TransientContent?.Equals(other.TransientContent) == true)) && - ((this.VizId == null && other.VizId == null) || (this.VizId?.Equals(other.VizId) == true)) && - ((this.RuntimeFilter == null && other.RuntimeFilter == null) || (this.RuntimeFilter?.Equals(other.RuntimeFilter) == true)) && - ((this.RuntimeSort == null && other.RuntimeSort == null) || (this.RuntimeSort?.Equals(other.RuntimeSort) == true)) && - ((this.FormatType == null && other.FormatType == null) || (this.FormatType?.Equals(other.FormatType) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Offset = {(this.Offset == null ? "null" : this.Offset.ToString())}"); - toStringOutput.Add($"this.BatchNumber = {(this.BatchNumber == null ? "null" : this.BatchNumber.ToString())}"); - toStringOutput.Add($"this.BatchSize = {(this.BatchSize == null ? "null" : this.BatchSize.ToString())}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.TransientContent = {(this.TransientContent == null ? "null" : this.TransientContent == string.Empty ? "" : this.TransientContent)}"); - toStringOutput.Add($"this.VizId = {(this.VizId == null ? "null" : $"[{string.Join(", ", this.VizId)} ]")}"); - toStringOutput.Add($"this.RuntimeFilter = {(this.RuntimeFilter == null ? "null" : this.RuntimeFilter == string.Empty ? "" : this.RuntimeFilter)}"); - toStringOutput.Add($"this.RuntimeSort = {(this.RuntimeSort == null ? "null" : this.RuntimeSort == string.Empty ? "" : this.RuntimeSort)}"); - toStringOutput.Add($"this.FormatType = {(this.FormatType == null ? "null" : this.FormatType.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataSearchRequest.cs deleted file mode 100644 index 6790f365e..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DataSearchRequest.cs +++ /dev/null @@ -1,147 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2DataSearchRequest. - /// - public class TspublicRestV2DataSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2DataSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// queryString. - /// dataObjectId. - /// offset. - /// batchNumber. - /// batchSize. - /// formatType. - public TspublicRestV2DataSearchRequest( - string queryString, - string dataObjectId, - int? offset = -1, - int? batchNumber = -1, - int? batchSize = -1, - Models.FormatTypeEnum? formatType = Models.FormatTypeEnum.COMPACT) - { - this.Offset = offset; - this.BatchNumber = batchNumber; - this.BatchSize = batchSize; - this.QueryString = queryString; - this.DataObjectId = dataObjectId; - this.FormatType = formatType; - } - - /// - /// The offset point, starting from where the records should be included in the response. - /// If no input is provided then offset starts from 0. - /// - [JsonProperty("offset", NullValueHandling = NullValueHandling.Ignore)] - public int? Offset { get; set; } - - /// - /// An alternate way to set offset for the starting point of the response. - /// The value in offset field will not be considered if batchNumber field has value greater than 0. - /// Offset value will be calculated as (batchNumber - 1) * batchSize. - /// It is mandatory to provide a value for batchSize with batchNumber. - /// Example: - /// Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - /// - [JsonProperty("batchNumber", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchNumber { get; set; } - - /// - /// The number of records that should be included in the response starting from offset position. - /// If no input is provided, then all records starting from the value provided in offset is included in the response - /// - [JsonProperty("batchSize", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchSize { get; set; } - - /// - /// The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' - /// - [JsonProperty("queryString")] - public string QueryString { get; set; } - - /// - /// The GUID of the data object, either a worksheet, a view, or a table. - /// - [JsonProperty("dataObjectId")] - public string DataObjectId { get; set; } - - /// - /// The format of the data in the response. - /// FULL: The response comes in "column":"value" format. - /// COMPACT: The response includes only the value of the columns. - /// - [JsonProperty("formatType", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.FormatTypeEnum? FormatType { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2DataSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2DataSearchRequest other && - ((this.Offset == null && other.Offset == null) || (this.Offset?.Equals(other.Offset) == true)) && - ((this.BatchNumber == null && other.BatchNumber == null) || (this.BatchNumber?.Equals(other.BatchNumber) == true)) && - ((this.BatchSize == null && other.BatchSize == null) || (this.BatchSize?.Equals(other.BatchSize) == true)) && - ((this.QueryString == null && other.QueryString == null) || (this.QueryString?.Equals(other.QueryString) == true)) && - ((this.DataObjectId == null && other.DataObjectId == null) || (this.DataObjectId?.Equals(other.DataObjectId) == true)) && - ((this.FormatType == null && other.FormatType == null) || (this.FormatType?.Equals(other.FormatType) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Offset = {(this.Offset == null ? "null" : this.Offset.ToString())}"); - toStringOutput.Add($"this.BatchNumber = {(this.BatchNumber == null ? "null" : this.BatchNumber.ToString())}"); - toStringOutput.Add($"this.BatchSize = {(this.BatchSize == null ? "null" : this.BatchSize.ToString())}"); - toStringOutput.Add($"this.QueryString = {(this.QueryString == null ? "null" : this.QueryString == string.Empty ? "" : this.QueryString)}"); - toStringOutput.Add($"this.DataObjectId = {(this.DataObjectId == null ? "null" : this.DataObjectId == string.Empty ? "" : this.DataObjectId)}"); - toStringOutput.Add($"this.FormatType = {(this.FormatType == null ? "null" : this.FormatType.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableCreateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableCreateRequest.cs deleted file mode 100644 index 8a667345c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableCreateRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2DatabaseTableCreateRequest. - /// - public class TspublicRestV2DatabaseTableCreateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2DatabaseTableCreateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// createDatabase. - /// schema. - public TspublicRestV2DatabaseTableCreateRequest( - bool? createDatabase = true, - string schema = null) - { - this.CreateDatabase = createDatabase; - this.Schema = schema; - } - - /// - /// Flag to indicate if the database and schema should be created if they do not exist in Falcon. (Valid values: True/False) - /// - [JsonProperty("createDatabase", NullValueHandling = NullValueHandling.Ignore)] - public bool? CreateDatabase { get; set; } - - /// - /// DDL of the table to be created. Example: {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} - /// - [JsonProperty("schema", NullValueHandling = NullValueHandling.Ignore)] - public string Schema { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2DatabaseTableCreateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2DatabaseTableCreateRequest other && - ((this.CreateDatabase == null && other.CreateDatabase == null) || (this.CreateDatabase?.Equals(other.CreateDatabase) == true)) && - ((this.Schema == null && other.Schema == null) || (this.Schema?.Equals(other.Schema) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.CreateDatabase = {(this.CreateDatabase == null ? "null" : this.CreateDatabase.ToString())}"); - toStringOutput.Add($"this.Schema = {(this.Schema == null ? "null" : this.Schema == string.Empty ? "" : this.Schema)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableRunqueryRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableRunqueryRequest.cs deleted file mode 100644 index 5d1f31222..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2DatabaseTableRunqueryRequest.cs +++ /dev/null @@ -1,83 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2DatabaseTableRunqueryRequest. - /// - public class TspublicRestV2DatabaseTableRunqueryRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2DatabaseTableRunqueryRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// statement. - public TspublicRestV2DatabaseTableRunqueryRequest( - List statement) - { - this.Statement = statement; - } - - /// - /// A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end with semi-colon (;). The TQL operations that can be run through this API are restricted to create database and schema, alter table, delete and update table rows. If a TQL statement fails, then the subsequent statements in the array are not run. Example: ["alter table test_db.test_schema.test_table drop contraint primary key;";"alter table test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] - /// - [JsonProperty("statement")] - public List Statement { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2DatabaseTableRunqueryRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2DatabaseTableRunqueryRequest other && - ((this.Statement == null && other.Statement == null) || (this.Statement?.Equals(other.Statement) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Statement = {(this.Statement == null ? "null" : $"[{string.Join(", ", this.Statement)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddgroupRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddgroupRequest.cs deleted file mode 100644 index eaa07c8b1..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddgroupRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupAddgroupRequest. - /// - public class TspublicRestV2GroupAddgroupRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupAddgroupRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// groups. - /// name. - /// id. - public TspublicRestV2GroupAddgroupRequest( - List groups, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.Groups = groups; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the group to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups")] - public List Groups { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupAddgroupRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupAddgroupRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddprivilegeRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddprivilegeRequest.cs deleted file mode 100644 index 6a5a59fa6..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAddprivilegeRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupAddprivilegeRequest. - /// - public class TspublicRestV2GroupAddprivilegeRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupAddprivilegeRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// privileges. - public TspublicRestV2GroupAddprivilegeRequest( - string name = null, - string id = null, - List privileges = null) - { - this.Name = name; - this.Id = id; - this.Privileges = privileges; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the group to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A JSON array of name of users or GUIDs of users or both. When both are given then id is considered - /// - [JsonProperty("privileges", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupAddprivilegeRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupAddprivilegeRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAdduserRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAdduserRequest.cs deleted file mode 100644 index 7377e7902..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupAdduserRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupAdduserRequest. - /// - public class TspublicRestV2GroupAdduserRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupAdduserRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// users. - /// name. - /// id. - public TspublicRestV2GroupAdduserRequest( - List users, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.Users = users; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the group to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Array of user name that you want to update in user group. - /// - [JsonProperty("users")] - public List Users { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupAdduserRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupAdduserRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Users == null && other.Users == null) || (this.Users?.Equals(other.Users) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Users = {(this.Users == null ? "null" : $"[{string.Join(", ", this.Users)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupCreateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupCreateRequest.cs deleted file mode 100644 index 08308c10c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupCreateRequest.cs +++ /dev/null @@ -1,171 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupCreateRequest. - /// - public class TspublicRestV2GroupCreateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupCreateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// displayName. - /// visibility. - /// description. - /// privileges. - /// orgId. - /// groups. - /// users. - /// type. - public TspublicRestV2GroupCreateRequest( - string name, - string displayName, - Models.Visibility2Enum? visibility = Models.Visibility2Enum.DEFAULT, - string description = null, - List privileges = null, - int? orgId = null, - List groups = null, - List users = null, - Models.Type10Enum? type = Models.Type10Enum.LOCALGROUP) - { - this.Name = name; - this.DisplayName = displayName; - this.Visibility = visibility; - this.Description = description; - this.Privileges = privileges; - this.OrgId = orgId; - this.Groups = groups; - this.Users = users; - this.Type = type; - } - - /// - /// Name of the user group. The group name string must be unique. - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - /// A unique display name string for the user group, for example, Developer group. - /// - [JsonProperty("displayName")] - public string DisplayName { get; set; } - - /// - /// Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. - /// - [JsonProperty("visibility", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.Visibility2Enum? Visibility { get; set; } - - /// - /// Description text for the group. - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// A JSON array of privileges assigned to the group - /// - [JsonProperty("privileges", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - /// Unique identifier of the organization. If no value is provided then group will be created in the organization associated with the login session. - /// - [JsonProperty("orgId", NullValueHandling = NullValueHandling.Ignore)] - public int? OrgId { get; set; } - - /// - /// Array of objects of groups that the group belong to. - /// - [JsonProperty("groups", NullValueHandling = NullValueHandling.Ignore)] - public List Groups { get; set; } - - /// - /// Array of names of user names that the group belong to. - /// - [JsonProperty("users", NullValueHandling = NullValueHandling.Ignore)] - public List Users { get; set; } - - /// - /// Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.Type10Enum? Type { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupCreateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupCreateRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.DisplayName == null && other.DisplayName == null) || (this.DisplayName?.Equals(other.DisplayName) == true)) && - ((this.Visibility == null && other.Visibility == null) || (this.Visibility?.Equals(other.Visibility) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)) && - ((this.OrgId == null && other.OrgId == null) || (this.OrgId?.Equals(other.OrgId) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)) && - ((this.Users == null && other.Users == null) || (this.Users?.Equals(other.Users) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.DisplayName = {(this.DisplayName == null ? "null" : this.DisplayName == string.Empty ? "" : this.DisplayName)}"); - toStringOutput.Add($"this.Visibility = {(this.Visibility == null ? "null" : this.Visibility.ToString())}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - toStringOutput.Add($"this.OrgId = {(this.OrgId == null ? "null" : this.OrgId.ToString())}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - toStringOutput.Add($"this.Users = {(this.Users == null ? "null" : $"[{string.Join(", ", this.Users)} ]")}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemovegroupRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemovegroupRequest.cs deleted file mode 100644 index 5d7a2783f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemovegroupRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupRemovegroupRequest. - /// - public class TspublicRestV2GroupRemovegroupRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupRemovegroupRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// groups. - /// name. - /// id. - public TspublicRestV2GroupRemovegroupRequest( - List groups, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.Groups = groups; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the group to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups")] - public List Groups { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupRemovegroupRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupRemovegroupRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveprivilegeRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveprivilegeRequest.cs deleted file mode 100644 index e6df2f19d..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveprivilegeRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupRemoveprivilegeRequest. - /// - public class TspublicRestV2GroupRemoveprivilegeRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupRemoveprivilegeRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// privileges. - public TspublicRestV2GroupRemoveprivilegeRequest( - string name = null, - string id = null, - List privileges = null) - { - this.Name = name; - this.Id = id; - this.Privileges = privileges; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the group to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A JSON array of name of users or GUIDs of users or both. When both are given then id is considered - /// - [JsonProperty("privileges", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupRemoveprivilegeRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupRemoveprivilegeRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveuserRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveuserRequest.cs deleted file mode 100644 index 4c4533a03..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupRemoveuserRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupRemoveuserRequest. - /// - public class TspublicRestV2GroupRemoveuserRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupRemoveuserRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// users. - /// name. - /// id. - public TspublicRestV2GroupRemoveuserRequest( - List users, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.Users = users; - } - - /// - /// Name of the group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the group to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Array of user name that you want to delete from user group. - /// - [JsonProperty("users")] - public List Users { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupRemoveuserRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupRemoveuserRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Users == null && other.Users == null) || (this.Users?.Equals(other.Users) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Users = {(this.Users == null ? "null" : $"[{string.Join(", ", this.Users)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupSearchRequest.cs deleted file mode 100644 index be1d0ab74..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupSearchRequest.cs +++ /dev/null @@ -1,182 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupSearchRequest. - /// - public class TspublicRestV2GroupSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// outputFields. - /// name. - /// id. - /// displayName. - /// visibility. - /// description. - /// privileges. - /// groups. - /// users. - /// type. - public TspublicRestV2GroupSearchRequest( - List outputFields = null, - string name = null, - string id = null, - string displayName = null, - string visibility = null, - string description = null, - List privileges = null, - List groups = null, - List users = null, - string type = null) - { - this.OutputFields = outputFields; - this.Name = name; - this.Id = id; - this.DisplayName = displayName; - this.Visibility = visibility; - this.Description = description; - this.Privileges = privileges; - this.Groups = groups; - this.Users = users; - this.Type = type; - } - - /// - /// Array of field names that need to be included in the response - /// - [JsonProperty("outputFields", NullValueHandling = NullValueHandling.Ignore)] - public List OutputFields { get; set; } - - /// - /// Name of the user group - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the group to update - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A unique display name string for the user group, for example, Developer group. - /// - [JsonProperty("displayName", NullValueHandling = NullValueHandling.Ignore)] - public string DisplayName { get; set; } - - /// - /// Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. - /// - [JsonProperty("visibility", NullValueHandling = NullValueHandling.Ignore)] - public string Visibility { get; set; } - - /// - /// Description text for the group. - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// A JSON array of privileges assigned to the group - /// - [JsonProperty("privileges", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups", NullValueHandling = NullValueHandling.Ignore)] - public List Groups { get; set; } - - /// - /// Array of user name that associated with group. - /// - [JsonProperty("users", NullValueHandling = NullValueHandling.Ignore)] - public List Users { get; set; } - - /// - /// Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupSearchRequest other && - ((this.OutputFields == null && other.OutputFields == null) || (this.OutputFields?.Equals(other.OutputFields) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.DisplayName == null && other.DisplayName == null) || (this.DisplayName?.Equals(other.DisplayName) == true)) && - ((this.Visibility == null && other.Visibility == null) || (this.Visibility?.Equals(other.Visibility) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)) && - ((this.Users == null && other.Users == null) || (this.Users?.Equals(other.Users) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.OutputFields = {(this.OutputFields == null ? "null" : $"[{string.Join(", ", this.OutputFields)} ]")}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.DisplayName = {(this.DisplayName == null ? "null" : this.DisplayName == string.Empty ? "" : this.DisplayName)}"); - toStringOutput.Add($"this.Visibility = {(this.Visibility == null ? "null" : this.Visibility == string.Empty ? "" : this.Visibility)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - toStringOutput.Add($"this.Users = {(this.Users == null ? "null" : $"[{string.Join(", ", this.Users)} ]")}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupUpdateRequest.cs deleted file mode 100644 index 94336235c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2GroupUpdateRequest.cs +++ /dev/null @@ -1,182 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2GroupUpdateRequest. - /// - public class TspublicRestV2GroupUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2GroupUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// displayName. - /// visibility. - /// description. - /// privileges. - /// groups. - /// users. - /// assignedLiveboards. - /// type. - public TspublicRestV2GroupUpdateRequest( - string name = null, - string id = null, - string displayName = null, - Models.Visibility2Enum? visibility = Models.Visibility2Enum.DEFAULT, - string description = null, - List privileges = null, - List groups = null, - List users = null, - List assignedLiveboards = null, - Models.Type10Enum? type = Models.Type10Enum.LOCALGROUP) - { - this.Name = name; - this.Id = id; - this.DisplayName = displayName; - this.Visibility = visibility; - this.Description = description; - this.Privileges = privileges; - this.Groups = groups; - this.Users = users; - this.AssignedLiveboards = assignedLiveboards; - this.Type = type; - } - - /// - /// Name of the user group. The group name string must be unique. - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// he GUID of the user account to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A unique display name string for the user group, for example, Developer group. - /// - [JsonProperty("displayName", NullValueHandling = NullValueHandling.Ignore)] - public string DisplayName { get; set; } - - /// - /// Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. - /// - [JsonProperty("visibility", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.Visibility2Enum? Visibility { get; set; } - - /// - /// Description text for the group. - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// A JSON array of privileges assigned to the group - /// - [JsonProperty("privileges", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups", NullValueHandling = NullValueHandling.Ignore)] - public List Groups { get; set; } - - /// - /// Array of object, A JSON array of name of users of users. - /// - [JsonProperty("users", NullValueHandling = NullValueHandling.Ignore)] - public List Users { get; set; } - - /// - /// Array of string. An array of liveboard ids to be assigned to the group. - /// - [JsonProperty("assignedLiveboards", NullValueHandling = NullValueHandling.Ignore)] - public List AssignedLiveboards { get; set; } - - /// - /// Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.Type10Enum? Type { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2GroupUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2GroupUpdateRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.DisplayName == null && other.DisplayName == null) || (this.DisplayName?.Equals(other.DisplayName) == true)) && - ((this.Visibility == null && other.Visibility == null) || (this.Visibility?.Equals(other.Visibility) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)) && - ((this.Users == null && other.Users == null) || (this.Users?.Equals(other.Users) == true)) && - ((this.AssignedLiveboards == null && other.AssignedLiveboards == null) || (this.AssignedLiveboards?.Equals(other.AssignedLiveboards) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.DisplayName = {(this.DisplayName == null ? "null" : this.DisplayName == string.Empty ? "" : this.DisplayName)}"); - toStringOutput.Add($"this.Visibility = {(this.Visibility == null ? "null" : this.Visibility.ToString())}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - toStringOutput.Add($"this.Users = {(this.Users == null ? "null" : $"[{string.Join(", ", this.Users)} ]")}"); - toStringOutput.Add($"this.AssignedLiveboards = {(this.AssignedLiveboards == null ? "null" : $"[{string.Join(", ", this.AssignedLiveboards)} ]")}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MaterializationRefreshviewRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MaterializationRefreshviewRequest.cs deleted file mode 100644 index 7fcf81217..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MaterializationRefreshviewRequest.cs +++ /dev/null @@ -1,83 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MaterializationRefreshviewRequest. - /// - public class TspublicRestV2MaterializationRefreshviewRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MaterializationRefreshviewRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - public TspublicRestV2MaterializationRefreshviewRequest( - string id) - { - this.Id = id; - } - - /// - /// GUID of metadata object - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MaterializationRefreshviewRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MaterializationRefreshviewRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDependencyRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDependencyRequest.cs deleted file mode 100644 index 6e29cebba..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDependencyRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataDependencyRequest. - /// - public class TspublicRestV2MetadataDependencyRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataDependencyRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// id. - /// batchSize. - public TspublicRestV2MetadataDependencyRequest( - Models.Type13Enum type, - List id, - int? batchSize = -1) - { - this.Type = type; - this.Id = id; - this.BatchSize = batchSize; - } - - /// - /// Type of the data object - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.Type13Enum Type { get; set; } - - /// - /// A JSON array of GUIDs of the objects - /// - [JsonProperty("id")] - public List Id { get; set; } - - /// - /// The maximum number of batches to fetch in a query. If this attribute is not defined, the value specified in the cluster configuration is used. To get the list of all dependent objects in a single query, define the batch size attribute as -1 - /// - [JsonProperty("batchSize", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchSize { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataDependencyRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataDependencyRequest other && - this.Type.Equals(other.Type) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.BatchSize == null && other.BatchSize == null) || (this.BatchSize?.Equals(other.BatchSize) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Type = {this.Type}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : $"[{string.Join(", ", this.Id)} ]")}"); - toStringOutput.Add($"this.BatchSize = {(this.BatchSize == null ? "null" : this.BatchSize.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDetailSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDetailSearchRequest.cs deleted file mode 100644 index 020170f6a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataDetailSearchRequest.cs +++ /dev/null @@ -1,127 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataDetailSearchRequest. - /// - public class TspublicRestV2MetadataDetailSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataDetailSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// id. - /// showHidden. - /// dropQuestionDetails. - /// version. - public TspublicRestV2MetadataDetailSearchRequest( - Models.Type6Enum type, - List id, - bool? showHidden = false, - bool? dropQuestionDetails = false, - string version = null) - { - this.Type = type; - this.Id = id; - this.ShowHidden = showHidden; - this.DropQuestionDetails = dropQuestionDetails; - this.Version = version; - } - - /// - /// Type of the metadata object being searched. - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.Type6Enum Type { get; set; } - - /// - /// A JSON array of GUIDs of the objects. - /// - [JsonProperty("id")] - public List Id { get; set; } - - /// - /// When set to true, returns details of the hidden objects, such as a column in a worksheet or a table. - /// - [JsonProperty("showHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? ShowHidden { get; set; } - - /// - /// When set to true, the search assist data associated with a worksheet is not included in the API response. This attribute is applicable only for DATAOBJECT data type. - /// - [JsonProperty("dropQuestionDetails", NullValueHandling = NullValueHandling.Ignore)] - public bool? DropQuestionDetails { get; set; } - - /// - /// Specify the version to retrieve the objects from. By default, the API returns metadata for all versions of the object. - /// - [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] - public string Version { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataDetailSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataDetailSearchRequest other && - this.Type.Equals(other.Type) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.ShowHidden == null && other.ShowHidden == null) || (this.ShowHidden?.Equals(other.ShowHidden) == true)) && - ((this.DropQuestionDetails == null && other.DropQuestionDetails == null) || (this.DropQuestionDetails?.Equals(other.DropQuestionDetails) == true)) && - ((this.Version == null && other.Version == null) || (this.Version?.Equals(other.Version) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Type = {this.Type}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : $"[{string.Join(", ", this.Id)} ]")}"); - toStringOutput.Add($"this.ShowHidden = {(this.ShowHidden == null ? "null" : this.ShowHidden.ToString())}"); - toStringOutput.Add($"this.DropQuestionDetails = {(this.DropQuestionDetails == null ? "null" : this.DropQuestionDetails.ToString())}"); - toStringOutput.Add($"this.Version = {(this.Version == null ? "null" : this.Version == string.Empty ? "" : this.Version)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteAssignRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteAssignRequest.cs deleted file mode 100644 index 8b4ccb23b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteAssignRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataFavoriteAssignRequest. - /// - public class TspublicRestV2MetadataFavoriteAssignRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataFavoriteAssignRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tsObject. - /// userName. - /// userId. - public TspublicRestV2MetadataFavoriteAssignRequest( - List tsObject, - string userName = null, - string userId = null) - { - this.UserName = userName; - this.UserId = userId; - this.TsObject = tsObject; - } - - /// - /// Name of the user - /// - [JsonProperty("userName", NullValueHandling = NullValueHandling.Ignore)] - public string UserName { get; set; } - - /// - /// The GUID of the user - /// - [JsonProperty("userId", NullValueHandling = NullValueHandling.Ignore)] - public string UserId { get; set; } - - /// - /// A JSON Array of GUIDs and type of metadata object. - /// - [JsonProperty("tsObject")] - public List TsObject { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataFavoriteAssignRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataFavoriteAssignRequest other && - ((this.UserName == null && other.UserName == null) || (this.UserName?.Equals(other.UserName) == true)) && - ((this.UserId == null && other.UserId == null) || (this.UserId?.Equals(other.UserId) == true)) && - ((this.TsObject == null && other.TsObject == null) || (this.TsObject?.Equals(other.TsObject) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.UserName = {(this.UserName == null ? "null" : this.UserName == string.Empty ? "" : this.UserName)}"); - toStringOutput.Add($"this.UserId = {(this.UserId == null ? "null" : this.UserId == string.Empty ? "" : this.UserId)}"); - toStringOutput.Add($"this.TsObject = {(this.TsObject == null ? "null" : $"[{string.Join(", ", this.TsObject)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteUnassignRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteUnassignRequest.cs deleted file mode 100644 index 7017b6a39..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataFavoriteUnassignRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataFavoriteUnassignRequest. - /// - public class TspublicRestV2MetadataFavoriteUnassignRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataFavoriteUnassignRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tsObject. - /// userName. - /// userId. - public TspublicRestV2MetadataFavoriteUnassignRequest( - List tsObject, - string userName = null, - string userId = null) - { - this.UserName = userName; - this.UserId = userId; - this.TsObject = tsObject; - } - - /// - /// Name of the user - /// - [JsonProperty("userName", NullValueHandling = NullValueHandling.Ignore)] - public string UserName { get; set; } - - /// - /// The GUID of the user - /// - [JsonProperty("userId", NullValueHandling = NullValueHandling.Ignore)] - public string UserId { get; set; } - - /// - /// A JSON Array of GUIDs and type of metadata object. - /// - [JsonProperty("tsObject")] - public List TsObject { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataFavoriteUnassignRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataFavoriteUnassignRequest other && - ((this.UserName == null && other.UserName == null) || (this.UserName?.Equals(other.UserName) == true)) && - ((this.UserId == null && other.UserId == null) || (this.UserId?.Equals(other.UserId) == true)) && - ((this.TsObject == null && other.TsObject == null) || (this.TsObject?.Equals(other.TsObject) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.UserName = {(this.UserName == null ? "null" : this.UserName == string.Empty ? "" : this.UserName)}"); - toStringOutput.Add($"this.UserId = {(this.UserId == null ? "null" : this.UserId == string.Empty ? "" : this.UserId)}"); - toStringOutput.Add($"this.TsObject = {(this.TsObject == null ? "null" : $"[{string.Join(", ", this.TsObject)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHeaderSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHeaderSearchRequest.cs deleted file mode 100644 index 0f715144f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHeaderSearchRequest.cs +++ /dev/null @@ -1,269 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataHeaderSearchRequest. - /// - public class TspublicRestV2MetadataHeaderSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataHeaderSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// outputFields. - /// offset. - /// batchNumber. - /// batchSize. - /// sortBy. - /// sortOrder. - /// namePattern. - /// fetchId. - /// skipId. - /// showHidden. - /// autoCreated. - /// accessLevel. - /// tag. - /// favoriteFor. - /// author. - /// lastModifiedBy. - public TspublicRestV2MetadataHeaderSearchRequest( - Models.Type3Enum type, - List outputFields = null, - int? offset = 0, - int? batchNumber = null, - int? batchSize = -1, - Models.SortByEnum? sortBy = Models.SortByEnum.DEFAULT, - Models.SortOrderEnum? sortOrder = Models.SortOrderEnum.DEFAULT, - string namePattern = null, - List fetchId = null, - List skipId = null, - bool? showHidden = false, - bool? autoCreated = null, - List accessLevel = null, - List tag = null, - List favoriteFor = null, - List author = null, - List lastModifiedBy = null) - { - this.OutputFields = outputFields; - this.Offset = offset; - this.BatchNumber = batchNumber; - this.BatchSize = batchSize; - this.SortBy = sortBy; - this.SortOrder = sortOrder; - this.Type = type; - this.NamePattern = namePattern; - this.FetchId = fetchId; - this.SkipId = skipId; - this.ShowHidden = showHidden; - this.AutoCreated = autoCreated; - this.AccessLevel = accessLevel; - this.Tag = tag; - this.FavoriteFor = favoriteFor; - this.Author = author; - this.LastModifiedBy = lastModifiedBy; - } - - /// - /// Array of header field names that need to be included in the header response - /// - [JsonProperty("outputFields", NullValueHandling = NullValueHandling.Ignore)] - public List OutputFields { get; set; } - - /// - /// The batch offset, starting from where the records should be included in the response. If no input is provided then offset starts from 0. Default: 0 - /// - [JsonProperty("offset", NullValueHandling = NullValueHandling.Ignore)] - public int? Offset { get; set; } - - /// - /// An alternate way to set offset for the starting point of the response. - /// The value in offset field will not be considered if batchNumber field has value greater than 0. - /// Offset value will be calculated as (batchNumber - 1) * batchSize. - /// It is mandatory to provide a value for batchSize with batchNumber. - /// Example: - /// Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - /// - [JsonProperty("batchNumber", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchNumber { get; set; } - - /// - /// The number of records that should be included in the response starting from offset position. If no input is provided then first page is included in the response. - /// - [JsonProperty("batchSize", NullValueHandling = NullValueHandling.Ignore)] - public int? BatchSize { get; set; } - - /// - /// Field based on which the response needs to be ordered. - /// - [JsonProperty("sortBy", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.SortByEnum? SortBy { get; set; } - - /// - /// Order in which sortBy should be applied. - /// - [JsonProperty("sortOrder", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.SortOrderEnum? SortOrder { get; set; } - - /// - /// Type of the metadata object being searched. - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.Type3Enum Type { get; set; } - - /// - /// A pattern to match the name of the metadata object. This parameter supports matching case-insensitive strings. For a wildcard match, use %. - /// - [JsonProperty("namePattern", NullValueHandling = NullValueHandling.Ignore)] - public string NamePattern { get; set; } - - /// - /// A JSON array containing the GUIDs of the metadata objects that you want to fetch. - /// - [JsonProperty("fetchId", NullValueHandling = NullValueHandling.Ignore)] - public List FetchId { get; set; } - - /// - /// A JSON array containing the GUIDs of the metadata objects that you want to skip. - /// - [JsonProperty("skipId", NullValueHandling = NullValueHandling.Ignore)] - public List SkipId { get; set; } - - /// - /// When set to true, returns details of the hidden objects, such as a column in a worksheet or a table. - /// - [JsonProperty("showHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? ShowHidden { get; set; } - - /// - /// A flag to indicate whether to list only the auto created objects. When no value is provided as input then all objects are returned. - /// - [JsonProperty("autoCreated", NullValueHandling = NullValueHandling.Ignore)] - public bool? AutoCreated { get; set; } - - /// - /// A JSON array of objects with user details for which the metadata objects should be considered from the repository - /// If you specify ID or name of user and set the type parameter to USER, the API returns metadata objects associated with the user - /// If you specify ID or name of user group and set the type parameter to USER_GROUP, the API returns metadata objects for all the users mapped to the specified user group. - /// If the id or name parameter is not defined, but the type attribute is set to USER or USER_GROUP, then the API will not return and response. - /// If no input is provided for any field for this object, then the API returns headers for all users. - /// If both name and id is provided, then id will be considered. - /// - [JsonProperty("accessLevel", NullValueHandling = NullValueHandling.Ignore)] - public List AccessLevel { get; set; } - - /// - /// A JSON array of name or GUID of tags or both. When both are given then id is considered. - /// - [JsonProperty("tag", NullValueHandling = NullValueHandling.Ignore)] - public List Tag { get; set; } - - /// - /// A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. When both are given then id is considered. - /// - [JsonProperty("favoriteFor", NullValueHandling = NullValueHandling.Ignore)] - public List FavoriteFor { get; set; } - - /// - /// A JSON array of name or GUID of the user or both who created the object. When both are given then id is considered - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public List Author { get; set; } - - /// - /// A JSON array of name or GUID of the user or both who last modified the object. When both are given then id is considered. - /// - [JsonProperty("lastModifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public List LastModifiedBy { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataHeaderSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataHeaderSearchRequest other && - ((this.OutputFields == null && other.OutputFields == null) || (this.OutputFields?.Equals(other.OutputFields) == true)) && - ((this.Offset == null && other.Offset == null) || (this.Offset?.Equals(other.Offset) == true)) && - ((this.BatchNumber == null && other.BatchNumber == null) || (this.BatchNumber?.Equals(other.BatchNumber) == true)) && - ((this.BatchSize == null && other.BatchSize == null) || (this.BatchSize?.Equals(other.BatchSize) == true)) && - ((this.SortBy == null && other.SortBy == null) || (this.SortBy?.Equals(other.SortBy) == true)) && - ((this.SortOrder == null && other.SortOrder == null) || (this.SortOrder?.Equals(other.SortOrder) == true)) && - this.Type.Equals(other.Type) && - ((this.NamePattern == null && other.NamePattern == null) || (this.NamePattern?.Equals(other.NamePattern) == true)) && - ((this.FetchId == null && other.FetchId == null) || (this.FetchId?.Equals(other.FetchId) == true)) && - ((this.SkipId == null && other.SkipId == null) || (this.SkipId?.Equals(other.SkipId) == true)) && - ((this.ShowHidden == null && other.ShowHidden == null) || (this.ShowHidden?.Equals(other.ShowHidden) == true)) && - ((this.AutoCreated == null && other.AutoCreated == null) || (this.AutoCreated?.Equals(other.AutoCreated) == true)) && - ((this.AccessLevel == null && other.AccessLevel == null) || (this.AccessLevel?.Equals(other.AccessLevel) == true)) && - ((this.Tag == null && other.Tag == null) || (this.Tag?.Equals(other.Tag) == true)) && - ((this.FavoriteFor == null && other.FavoriteFor == null) || (this.FavoriteFor?.Equals(other.FavoriteFor) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.LastModifiedBy == null && other.LastModifiedBy == null) || (this.LastModifiedBy?.Equals(other.LastModifiedBy) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.OutputFields = {(this.OutputFields == null ? "null" : $"[{string.Join(", ", this.OutputFields)} ]")}"); - toStringOutput.Add($"this.Offset = {(this.Offset == null ? "null" : this.Offset.ToString())}"); - toStringOutput.Add($"this.BatchNumber = {(this.BatchNumber == null ? "null" : this.BatchNumber.ToString())}"); - toStringOutput.Add($"this.BatchSize = {(this.BatchSize == null ? "null" : this.BatchSize.ToString())}"); - toStringOutput.Add($"this.SortBy = {(this.SortBy == null ? "null" : this.SortBy.ToString())}"); - toStringOutput.Add($"this.SortOrder = {(this.SortOrder == null ? "null" : this.SortOrder.ToString())}"); - toStringOutput.Add($"this.Type = {this.Type}"); - toStringOutput.Add($"this.NamePattern = {(this.NamePattern == null ? "null" : this.NamePattern == string.Empty ? "" : this.NamePattern)}"); - toStringOutput.Add($"this.FetchId = {(this.FetchId == null ? "null" : $"[{string.Join(", ", this.FetchId)} ]")}"); - toStringOutput.Add($"this.SkipId = {(this.SkipId == null ? "null" : $"[{string.Join(", ", this.SkipId)} ]")}"); - toStringOutput.Add($"this.ShowHidden = {(this.ShowHidden == null ? "null" : this.ShowHidden.ToString())}"); - toStringOutput.Add($"this.AutoCreated = {(this.AutoCreated == null ? "null" : this.AutoCreated.ToString())}"); - toStringOutput.Add($"this.AccessLevel = {(this.AccessLevel == null ? "null" : $"[{string.Join(", ", this.AccessLevel)} ]")}"); - toStringOutput.Add($"this.Tag = {(this.Tag == null ? "null" : $"[{string.Join(", ", this.Tag)} ]")}"); - toStringOutput.Add($"this.FavoriteFor = {(this.FavoriteFor == null ? "null" : $"[{string.Join(", ", this.FavoriteFor)} ]")}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : $"[{string.Join(", ", this.Author)} ]")}"); - toStringOutput.Add($"this.LastModifiedBy = {(this.LastModifiedBy == null ? "null" : $"[{string.Join(", ", this.LastModifiedBy)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardAssignRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardAssignRequest.cs deleted file mode 100644 index f4c38d090..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardAssignRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataHomeliveboardAssignRequest. - /// - public class TspublicRestV2MetadataHomeliveboardAssignRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataHomeliveboardAssignRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// userName. - /// userId. - /// liveboardId. - public TspublicRestV2MetadataHomeliveboardAssignRequest( - string userName = null, - string userId = null, - string liveboardId = null) - { - this.UserName = userName; - this.UserId = userId; - this.LiveboardId = liveboardId; - } - - /// - /// Name of the user - /// - [JsonProperty("userName", NullValueHandling = NullValueHandling.Ignore)] - public string UserName { get; set; } - - /// - /// The GUID of the user - /// - [JsonProperty("userId", NullValueHandling = NullValueHandling.Ignore)] - public string UserId { get; set; } - - /// - /// The GUID of the liveboard - /// - [JsonProperty("liveboardId", NullValueHandling = NullValueHandling.Ignore)] - public string LiveboardId { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataHomeliveboardAssignRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataHomeliveboardAssignRequest other && - ((this.UserName == null && other.UserName == null) || (this.UserName?.Equals(other.UserName) == true)) && - ((this.UserId == null && other.UserId == null) || (this.UserId?.Equals(other.UserId) == true)) && - ((this.LiveboardId == null && other.LiveboardId == null) || (this.LiveboardId?.Equals(other.LiveboardId) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.UserName = {(this.UserName == null ? "null" : this.UserName == string.Empty ? "" : this.UserName)}"); - toStringOutput.Add($"this.UserId = {(this.UserId == null ? "null" : this.UserId == string.Empty ? "" : this.UserId)}"); - toStringOutput.Add($"this.LiveboardId = {(this.LiveboardId == null ? "null" : this.LiveboardId == string.Empty ? "" : this.LiveboardId)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardUnassignRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardUnassignRequest.cs deleted file mode 100644 index 7d78c06ad..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataHomeliveboardUnassignRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataHomeliveboardUnassignRequest. - /// - public class TspublicRestV2MetadataHomeliveboardUnassignRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataHomeliveboardUnassignRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// userName. - /// userId. - public TspublicRestV2MetadataHomeliveboardUnassignRequest( - string userName = null, - string userId = null) - { - this.UserName = userName; - this.UserId = userId; - } - - /// - /// Name of the user - /// - [JsonProperty("userName", NullValueHandling = NullValueHandling.Ignore)] - public string UserName { get; set; } - - /// - /// The GUID of the user - /// - [JsonProperty("userId", NullValueHandling = NullValueHandling.Ignore)] - public string UserId { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataHomeliveboardUnassignRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataHomeliveboardUnassignRequest other && - ((this.UserName == null && other.UserName == null) || (this.UserName?.Equals(other.UserName) == true)) && - ((this.UserId == null && other.UserId == null) || (this.UserId?.Equals(other.UserId) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.UserName = {(this.UserName == null ? "null" : this.UserName == string.Empty ? "" : this.UserName)}"); - toStringOutput.Add($"this.UserId = {(this.UserId == null ? "null" : this.UserId == string.Empty ? "" : this.UserId)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagAssignRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagAssignRequest.cs deleted file mode 100644 index 71d76ea2a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagAssignRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataTagAssignRequest. - /// - public class TspublicRestV2MetadataTagAssignRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataTagAssignRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tsObject. - /// name. - /// id. - public TspublicRestV2MetadataTagAssignRequest( - List tsObject, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.TsObject = tsObject; - } - - /// - /// Name of the tag - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the tag - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A JSON Array of GUIDs and type of metadata object. - /// - [JsonProperty("tsObject")] - public List TsObject { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataTagAssignRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataTagAssignRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.TsObject == null && other.TsObject == null) || (this.TsObject?.Equals(other.TsObject) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.TsObject = {(this.TsObject == null ? "null" : $"[{string.Join(", ", this.TsObject)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagCreateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagCreateRequest.cs deleted file mode 100644 index e63ede02b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagCreateRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataTagCreateRequest. - /// - public class TspublicRestV2MetadataTagCreateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataTagCreateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// color. - public TspublicRestV2MetadataTagCreateRequest( - string name, - string color = null) - { - this.Name = name; - this.Color = color; - } - - /// - /// Name of the tag - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - /// Hex color code to be assigned to the tag - /// - [JsonProperty("color", NullValueHandling = NullValueHandling.Ignore)] - public string Color { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataTagCreateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataTagCreateRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Color == null && other.Color == null) || (this.Color?.Equals(other.Color) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Color = {(this.Color == null ? "null" : this.Color == string.Empty ? "" : this.Color)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUnassignRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUnassignRequest.cs deleted file mode 100644 index 43d168f8c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUnassignRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataTagUnassignRequest. - /// - public class TspublicRestV2MetadataTagUnassignRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataTagUnassignRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tsObject. - /// name. - /// id. - public TspublicRestV2MetadataTagUnassignRequest( - List tsObject, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.TsObject = tsObject; - } - - /// - /// Name of the tag - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the tag - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A JSON Array of GUIDs and type of metadata object. - /// - [JsonProperty("tsObject")] - public List TsObject { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataTagUnassignRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataTagUnassignRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.TsObject == null && other.TsObject == null) || (this.TsObject?.Equals(other.TsObject) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.TsObject = {(this.TsObject == null ? "null" : $"[{string.Join(", ", this.TsObject)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUpdateRequest.cs deleted file mode 100644 index 8a4fdc4e6..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTagUpdateRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataTagUpdateRequest. - /// - public class TspublicRestV2MetadataTagUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataTagUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// color. - public TspublicRestV2MetadataTagUpdateRequest( - string name = null, - string id = null, - string color = null) - { - this.Name = name; - this.Id = id; - this.Color = color; - } - - /// - /// Name of the tag - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the tag - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Hex color code to be assigned to the tag - /// - [JsonProperty("color", NullValueHandling = NullValueHandling.Ignore)] - public string Color { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataTagUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataTagUpdateRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Color == null && other.Color == null) || (this.Color?.Equals(other.Color) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Color = {(this.Color == null ? "null" : this.Color == string.Empty ? "" : this.Color)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlExportRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlExportRequest.cs deleted file mode 100644 index 837aa7002..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlExportRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataTmlExportRequest. - /// - public class TspublicRestV2MetadataTmlExportRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataTmlExportRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// formatType. - /// exportAssociated. - public TspublicRestV2MetadataTmlExportRequest( - List id, - Models.FormatType3Enum? formatType = Models.FormatType3Enum.YAML, - bool? exportAssociated = false) - { - this.Id = id; - this.FormatType = formatType; - this.ExportAssociated = exportAssociated; - } - - /// - /// A JSON array of GUIDs of the objects. - /// - [JsonProperty("id")] - public List Id { get; set; } - - /// - /// The format in which to export the objects - /// - [JsonProperty("formatType", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.FormatType3Enum? FormatType { get; set; } - - /// - /// Specifies if you would like to export the associated objects. To export the objects associated with the objects specified in id, set the value to true. When set to true, the API exports any underlying worksheets, tables, or views for a given object. By default, the API does not export these underlying objects - /// - [JsonProperty("exportAssociated", NullValueHandling = NullValueHandling.Ignore)] - public bool? ExportAssociated { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataTmlExportRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataTmlExportRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.FormatType == null && other.FormatType == null) || (this.FormatType?.Equals(other.FormatType) == true)) && - ((this.ExportAssociated == null && other.ExportAssociated == null) || (this.ExportAssociated?.Equals(other.ExportAssociated) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : $"[{string.Join(", ", this.Id)} ]")}"); - toStringOutput.Add($"this.FormatType = {(this.FormatType == null ? "null" : this.FormatType.ToString())}"); - toStringOutput.Add($"this.ExportAssociated = {(this.ExportAssociated == null ? "null" : this.ExportAssociated.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlImportRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlImportRequest.cs deleted file mode 100644 index 3332406ba..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2MetadataTmlImportRequest.cs +++ /dev/null @@ -1,111 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2MetadataTmlImportRequest. - /// - public class TspublicRestV2MetadataTmlImportRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2MetadataTmlImportRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// objectTML. - /// importPolicy. - /// forceCreate. - public TspublicRestV2MetadataTmlImportRequest( - List objectTML, - Models.ImportPolicyEnum? importPolicy = Models.ImportPolicyEnum.PARTIAL, - bool? forceCreate = false) - { - this.ObjectTML = objectTML; - this.ImportPolicy = importPolicy; - this.ForceCreate = forceCreate; - } - - /// - /// A string array of TML objects to upload, in YAML or JSON format. - /// If TML is in YAML format, then use escape characters for quotes and new line characters. - /// Example TML: - /// guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: DONT_INDEX\n db_column_properties:\n data_type: INT64\n - /// If TML is in JSON format, then use escape characters for quotes. - /// Example TML: - /// {\\"guid\\": \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', - /// - [JsonProperty("objectTML")] - public List ObjectTML { get; set; } - - /// - /// Policy to follow during import - /// - [JsonProperty("importPolicy", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.ImportPolicyEnum? ImportPolicy { get; set; } - - /// - /// Specifies if you are updating or creating objects. To create new objects, specify true. By default, ThoughtSpot updates existing objects that have the same GUID as the objects you are importing. When set to true, the GUID property in the imported TML is replaced on the server, and the response headers will include the id_guid property with the GUID of the new object. The new object will be assigned a new GUID, even if the imported TML file included a guid value. Thus, there is no need to include the guid in the TML file if you are using forceCreate=true. - /// - [JsonProperty("forceCreate", NullValueHandling = NullValueHandling.Ignore)] - public bool? ForceCreate { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2MetadataTmlImportRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2MetadataTmlImportRequest other && - ((this.ObjectTML == null && other.ObjectTML == null) || (this.ObjectTML?.Equals(other.ObjectTML) == true)) && - ((this.ImportPolicy == null && other.ImportPolicy == null) || (this.ImportPolicy?.Equals(other.ImportPolicy) == true)) && - ((this.ForceCreate == null && other.ForceCreate == null) || (this.ForceCreate?.Equals(other.ForceCreate) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.ObjectTML = {(this.ObjectTML == null ? "null" : $"[{string.Join(", ", this.ObjectTML)} ]")}"); - toStringOutput.Add($"this.ImportPolicy = {(this.ImportPolicy == null ? "null" : this.ImportPolicy.ToString())}"); - toStringOutput.Add($"this.ForceCreate = {(this.ForceCreate == null ? "null" : this.ForceCreate.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgCreateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgCreateRequest.cs deleted file mode 100644 index dad4e15b9..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgCreateRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2OrgCreateRequest. - /// - public class TspublicRestV2OrgCreateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2OrgCreateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// description. - public TspublicRestV2OrgCreateRequest( - string name, - string description = null) - { - this.Name = name; - this.Description = description; - } - - /// - /// Name of the organization. - /// - [JsonProperty("name")] - public string Name { get; set; } - - /// - /// Description text for the organization. - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2OrgCreateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2OrgCreateRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgSearchRequest.cs deleted file mode 100644 index fa4863d60..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgSearchRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2OrgSearchRequest. - /// - public class TspublicRestV2OrgSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2OrgSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// showDeleted. - public TspublicRestV2OrgSearchRequest( - string name = null, - int? id = null, - bool? showDeleted = false) - { - this.Name = name; - this.Id = id; - this.ShowDeleted = showDeleted; - } - - /// - /// Name of the organization. - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The ID of the organization. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public int? Id { get; set; } - - /// - /// When set to true, the response will include the details of deleted organization also. - /// - [JsonProperty("showDeleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? ShowDeleted { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2OrgSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2OrgSearchRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.ShowDeleted == null && other.ShowDeleted == null) || (this.ShowDeleted?.Equals(other.ShowDeleted) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id.ToString())}"); - toStringOutput.Add($"this.ShowDeleted = {(this.ShowDeleted == null ? "null" : this.ShowDeleted.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgUpdateRequest.cs deleted file mode 100644 index 0a9845f25..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2OrgUpdateRequest.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2OrgUpdateRequest. - /// - public class TspublicRestV2OrgUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2OrgUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// description. - /// active. - public TspublicRestV2OrgUpdateRequest( - string name = null, - int? id = null, - string description = null, - bool? active = null) - { - this.Name = name; - this.Id = id; - this.Description = description; - this.Active = active; - } - - /// - /// Name of the organization. - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The ID of the organization. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public int? Id { get; set; } - - /// - /// Description text for the organization. - /// - [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] - public string Description { get; set; } - - /// - /// Status of the organization. - /// - [JsonProperty("active", NullValueHandling = NullValueHandling.Ignore)] - public bool? Active { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2OrgUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2OrgUpdateRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Description == null && other.Description == null) || (this.Description?.Equals(other.Description) == true)) && - ((this.Active == null && other.Active == null) || (this.Active?.Equals(other.Active) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id.ToString())}"); - toStringOutput.Add($"this.Description = {(this.Description == null ? "null" : this.Description == string.Empty ? "" : this.Description)}"); - toStringOutput.Add($"this.Active = {(this.Active == null ? "null" : this.Active.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.cs deleted file mode 100644 index 7d8541bfc..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2SecurityPermissionPrincipalSearchRequest. - /// - public class TspublicRestV2SecurityPermissionPrincipalSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2SecurityPermissionPrincipalSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// principal. - /// tsObject. - public TspublicRestV2SecurityPermissionPrincipalSearchRequest( - List principal, - List tsObject = null) - { - this.Principal = principal; - this.TsObject = tsObject; - } - - /// - /// A JSON array of principal names or GUIDs to be included in the request. When both are given then id is considered. - /// - [JsonProperty("principal")] - public List Principal { get; set; } - - /// - /// A JSON Array of GUIDs and type of metadata object. - /// - [JsonProperty("tsObject", NullValueHandling = NullValueHandling.Ignore)] - public List TsObject { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2SecurityPermissionPrincipalSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2SecurityPermissionPrincipalSearchRequest other && - ((this.Principal == null && other.Principal == null) || (this.Principal?.Equals(other.Principal) == true)) && - ((this.TsObject == null && other.TsObject == null) || (this.TsObject?.Equals(other.TsObject) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Principal = {(this.Principal == null ? "null" : $"[{string.Join(", ", this.Principal)} ]")}"); - toStringOutput.Add($"this.TsObject = {(this.TsObject == null ? "null" : $"[{string.Join(", ", this.TsObject)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.cs deleted file mode 100644 index 9e9a260a5..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2SecurityPermissionTsobjectSearchRequest. - /// - public class TspublicRestV2SecurityPermissionTsobjectSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2SecurityPermissionTsobjectSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// tsObject. - /// principal. - /// includeDependent. - public TspublicRestV2SecurityPermissionTsobjectSearchRequest( - List tsObject, - List principal = null, - bool? includeDependent = false) - { - this.TsObject = tsObject; - this.Principal = principal; - this.IncludeDependent = includeDependent; - } - - /// - /// A JSON Array of GUIDs and type of metadata object. - /// - [JsonProperty("tsObject")] - public List TsObject { get; set; } - - /// - /// A JSON array of principal names or GUIDs. When both are given then id is considered. - /// - [JsonProperty("principal", NullValueHandling = NullValueHandling.Ignore)] - public List Principal { get; set; } - - /// - /// When this field is set to true, the API response includes the permission details for the dependent objects. - /// - [JsonProperty("includeDependent", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludeDependent { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2SecurityPermissionTsobjectSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2SecurityPermissionTsobjectSearchRequest other && - ((this.TsObject == null && other.TsObject == null) || (this.TsObject?.Equals(other.TsObject) == true)) && - ((this.Principal == null && other.Principal == null) || (this.Principal?.Equals(other.Principal) == true)) && - ((this.IncludeDependent == null && other.IncludeDependent == null) || (this.IncludeDependent?.Equals(other.IncludeDependent) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.TsObject = {(this.TsObject == null ? "null" : $"[{string.Join(", ", this.TsObject)} ]")}"); - toStringOutput.Add($"this.Principal = {(this.Principal == null ? "null" : $"[{string.Join(", ", this.Principal)} ]")}"); - toStringOutput.Add($"this.IncludeDependent = {(this.IncludeDependent == null ? "null" : this.IncludeDependent.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareTsobjectRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareTsobjectRequest.cs deleted file mode 100644 index 2eb28fd05..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareTsobjectRequest.cs +++ /dev/null @@ -1,152 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2SecurityShareTsobjectRequest. - /// - public class TspublicRestV2SecurityShareTsobjectRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2SecurityShareTsobjectRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// type. - /// id. - /// permission. - /// emailId. - /// notify. - /// message. - /// includeCustomEmbedUrl. - public TspublicRestV2SecurityShareTsobjectRequest( - Models.Type18Enum type, - List id, - string permission, - List emailId = null, - bool? notify = true, - string message = null, - bool? includeCustomEmbedUrl = false) - { - this.Type = type; - this.Id = id; - this.Permission = permission; - this.EmailId = emailId; - this.Notify = notify; - this.Message = message; - this.IncludeCustomEmbedUrl = includeCustomEmbedUrl; - } - - /// - /// Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter))] - public Models.Type18Enum Type { get; set; } - - /// - /// A JSON array of the GUIDs of the objects to be shared - /// - [JsonProperty("id")] - public List Id { get; set; } - - /// - /// A JSON object with GUIDs of user and user group, and the type of access privilge. - /// You can provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user group can view the shared object, whereas MODIFY access enables users to modify the object. - /// To remove access to a shared object, you can set the shareMode in the permission string to NO_ACCESS. Example: - /// {"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} - /// - [JsonProperty("permission")] - public string Permission { get; set; } - - /// - /// The email addresses that should ne notified when the objects are shared. - /// - [JsonProperty("emailId", NullValueHandling = NullValueHandling.Ignore)] - public List EmailId { get; set; } - - /// - /// When set to true, a notification is sent to the users after an object is shared. - /// - [JsonProperty("notify", NullValueHandling = NullValueHandling.Ignore)] - public bool? Notify { get; set; } - - /// - /// The message text to send in the notification email. - /// - [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] - public string Message { get; set; } - - /// - /// When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance. - /// - [JsonProperty("includeCustomEmbedUrl", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludeCustomEmbedUrl { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2SecurityShareTsobjectRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2SecurityShareTsobjectRequest other && - this.Type.Equals(other.Type) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Permission == null && other.Permission == null) || (this.Permission?.Equals(other.Permission) == true)) && - ((this.EmailId == null && other.EmailId == null) || (this.EmailId?.Equals(other.EmailId) == true)) && - ((this.Notify == null && other.Notify == null) || (this.Notify?.Equals(other.Notify) == true)) && - ((this.Message == null && other.Message == null) || (this.Message?.Equals(other.Message) == true)) && - ((this.IncludeCustomEmbedUrl == null && other.IncludeCustomEmbedUrl == null) || (this.IncludeCustomEmbedUrl?.Equals(other.IncludeCustomEmbedUrl) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Type = {this.Type}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : $"[{string.Join(", ", this.Id)} ]")}"); - toStringOutput.Add($"this.Permission = {(this.Permission == null ? "null" : this.Permission == string.Empty ? "" : this.Permission)}"); - toStringOutput.Add($"this.EmailId = {(this.EmailId == null ? "null" : $"[{string.Join(", ", this.EmailId)} ]")}"); - toStringOutput.Add($"this.Notify = {(this.Notify == null ? "null" : this.Notify.ToString())}"); - toStringOutput.Add($"this.Message = {(this.Message == null ? "null" : this.Message == string.Empty ? "" : this.Message)}"); - toStringOutput.Add($"this.IncludeCustomEmbedUrl = {(this.IncludeCustomEmbedUrl == null ? "null" : this.IncludeCustomEmbedUrl.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareVisualizationRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareVisualizationRequest.cs deleted file mode 100644 index 7895ef6ff..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2SecurityShareVisualizationRequest.cs +++ /dev/null @@ -1,149 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2SecurityShareVisualizationRequest. - /// - public class TspublicRestV2SecurityShareVisualizationRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2SecurityShareVisualizationRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// id. - /// vizId. - /// principalId. - /// emailId. - /// notify. - /// message. - /// includeCustomEmbedUrl. - public TspublicRestV2SecurityShareVisualizationRequest( - string id, - string vizId, - List principalId, - List emailId = null, - bool? notify = true, - string message = null, - bool? includeCustomEmbedUrl = false) - { - this.Id = id; - this.VizId = vizId; - this.PrincipalId = principalId; - this.EmailId = emailId; - this.Notify = notify; - this.Message = message; - this.IncludeCustomEmbedUrl = includeCustomEmbedUrl; - } - - /// - /// A JSON array of the GUIDs of the objects to be shared - /// - [JsonProperty("id")] - public string Id { get; set; } - - /// - /// The GUID of visualization - /// - [JsonProperty("vizId")] - public string VizId { get; set; } - - /// - /// The GUID of the users and user groups with which you want to share the visualization - /// - [JsonProperty("principalId")] - public List PrincipalId { get; set; } - - /// - /// The email addresses that should ne notified when the objects are shared - /// - [JsonProperty("emailId", NullValueHandling = NullValueHandling.Ignore)] - public List EmailId { get; set; } - - /// - /// When set to true, a notification is sent to the users after an object is shared. - /// - [JsonProperty("notify", NullValueHandling = NullValueHandling.Ignore)] - public bool? Notify { get; set; } - - /// - /// The message text to send in the notification email. - /// - [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] - public string Message { get; set; } - - /// - /// When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance. - /// - [JsonProperty("includeCustomEmbedUrl", NullValueHandling = NullValueHandling.Ignore)] - public bool? IncludeCustomEmbedUrl { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2SecurityShareVisualizationRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2SecurityShareVisualizationRequest other && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.VizId == null && other.VizId == null) || (this.VizId?.Equals(other.VizId) == true)) && - ((this.PrincipalId == null && other.PrincipalId == null) || (this.PrincipalId?.Equals(other.PrincipalId) == true)) && - ((this.EmailId == null && other.EmailId == null) || (this.EmailId?.Equals(other.EmailId) == true)) && - ((this.Notify == null && other.Notify == null) || (this.Notify?.Equals(other.Notify) == true)) && - ((this.Message == null && other.Message == null) || (this.Message?.Equals(other.Message) == true)) && - ((this.IncludeCustomEmbedUrl == null && other.IncludeCustomEmbedUrl == null) || (this.IncludeCustomEmbedUrl?.Equals(other.IncludeCustomEmbedUrl) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.VizId = {(this.VizId == null ? "null" : this.VizId == string.Empty ? "" : this.VizId)}"); - toStringOutput.Add($"this.PrincipalId = {(this.PrincipalId == null ? "null" : $"[{string.Join(", ", this.PrincipalId)} ]")}"); - toStringOutput.Add($"this.EmailId = {(this.EmailId == null ? "null" : $"[{string.Join(", ", this.EmailId)} ]")}"); - toStringOutput.Add($"this.Notify = {(this.Notify == null ? "null" : this.Notify.ToString())}"); - toStringOutput.Add($"this.Message = {(this.Message == null ? "null" : this.Message == string.Empty ? "" : this.Message)}"); - toStringOutput.Add($"this.IncludeCustomEmbedUrl = {(this.IncludeCustomEmbedUrl == null ? "null" : this.IncludeCustomEmbedUrl.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddgroupRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddgroupRequest.cs deleted file mode 100644 index bc6248bf1..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddgroupRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2UserAddgroupRequest. - /// - public class TspublicRestV2UserAddgroupRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2UserAddgroupRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// groups. - /// name. - /// id. - public TspublicRestV2UserAddgroupRequest( - List groups, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.Groups = groups; - } - - /// - /// User name of the user account - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the user account - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups")] - public List Groups { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2UserAddgroupRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2UserAddgroupRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddorgRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddorgRequest.cs deleted file mode 100644 index c4415e6f5..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserAddorgRequest.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2UserAddorgRequest. - /// - public class TspublicRestV2UserAddorgRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2UserAddorgRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// users. - /// orgId. - public TspublicRestV2UserAddorgRequest( - List users, - int? orgId = null) - { - this.OrgId = orgId; - this.Users = users; - } - - /// - /// The ID of the organization. - /// - [JsonProperty("orgId", NullValueHandling = NullValueHandling.Ignore)] - public int? OrgId { get; set; } - - /// - /// Array of objects. A JSON array of name of users or GUIDs of users or both. When both are given then id is considered - /// - [JsonProperty("users")] - public List Users { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2UserAddorgRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2UserAddorgRequest other && - ((this.OrgId == null && other.OrgId == null) || (this.OrgId?.Equals(other.OrgId) == true)) && - ((this.Users == null && other.Users == null) || (this.Users?.Equals(other.Users) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.OrgId = {(this.OrgId == null ? "null" : this.OrgId.ToString())}"); - toStringOutput.Add($"this.Users = {(this.Users == null ? "null" : $"[{string.Join(", ", this.Users)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserChangepasswordRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserChangepasswordRequest.cs deleted file mode 100644 index 56797cd57..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserChangepasswordRequest.cs +++ /dev/null @@ -1,116 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2UserChangepasswordRequest. - /// - public class TspublicRestV2UserChangepasswordRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2UserChangepasswordRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// currentPassword. - /// newPassword. - /// name. - /// id. - public TspublicRestV2UserChangepasswordRequest( - string currentPassword, - string newPassword, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.CurrentPassword = currentPassword; - this.NewPassword = newPassword; - } - - /// - /// User name of the user account. - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the user account to query. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// The current password of the user. - /// - [JsonProperty("currentPassword")] - public string CurrentPassword { get; set; } - - /// - /// A new password for the user. - /// - [JsonProperty("newPassword")] - public string NewPassword { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2UserChangepasswordRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2UserChangepasswordRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.CurrentPassword == null && other.CurrentPassword == null) || (this.CurrentPassword?.Equals(other.CurrentPassword) == true)) && - ((this.NewPassword == null && other.NewPassword == null) || (this.NewPassword?.Equals(other.NewPassword) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.CurrentPassword = {(this.CurrentPassword == null ? "null" : this.CurrentPassword == string.Empty ? "" : this.CurrentPassword)}"); - toStringOutput.Add($"this.NewPassword = {(this.NewPassword == null ? "null" : this.NewPassword == string.Empty ? "" : this.NewPassword)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserRemovegroupRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserRemovegroupRequest.cs deleted file mode 100644 index f15d7d77d..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserRemovegroupRequest.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2UserRemovegroupRequest. - /// - public class TspublicRestV2UserRemovegroupRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2UserRemovegroupRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// groups. - /// name. - /// id. - public TspublicRestV2UserRemovegroupRequest( - List groups, - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - this.Groups = groups; - } - - /// - /// User name of the user account - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the user account - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups")] - public List Groups { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2UserRemovegroupRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2UserRemovegroupRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserSearchRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserSearchRequest.cs deleted file mode 100644 index 7b0084e51..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserSearchRequest.cs +++ /dev/null @@ -1,215 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2UserSearchRequest. - /// - public class TspublicRestV2UserSearchRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2UserSearchRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// outputFields. - /// name. - /// id. - /// displayName. - /// visibility. - /// mail. - /// groups. - /// privileges. - /// state. - /// notifyOnShare. - /// showWalkMe. - /// analystOnboardingComplete. - /// type. - public TspublicRestV2UserSearchRequest( - List outputFields = null, - string name = null, - string id = null, - string displayName = null, - string visibility = null, - string mail = null, - List groups = null, - List privileges = null, - string state = null, - bool? notifyOnShare = null, - bool? showWalkMe = null, - bool? analystOnboardingComplete = null, - string type = null) - { - this.OutputFields = outputFields; - this.Name = name; - this.Id = id; - this.DisplayName = displayName; - this.Visibility = visibility; - this.Mail = mail; - this.Groups = groups; - this.Privileges = privileges; - this.State = state; - this.NotifyOnShare = notifyOnShare; - this.ShowWalkMe = showWalkMe; - this.AnalystOnboardingComplete = analystOnboardingComplete; - this.Type = type; - } - - /// - /// Array of field names that need to be included in the response - /// - [JsonProperty("outputFields", NullValueHandling = NullValueHandling.Ignore)] - public List OutputFields { get; set; } - - /// - /// User name of the user account - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the user account - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A unique display name string for the user, usually their first and last name. - /// - [JsonProperty("displayName", NullValueHandling = NullValueHandling.Ignore)] - public string DisplayName { get; set; } - - /// - /// Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. - /// - [JsonProperty("visibility", NullValueHandling = NullValueHandling.Ignore)] - public string Visibility { get; set; } - - /// - /// email of the user. - /// - [JsonProperty("mail", NullValueHandling = NullValueHandling.Ignore)] - public string Mail { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups", NullValueHandling = NullValueHandling.Ignore)] - public List Groups { get; set; } - - /// - /// Privileges assigned to user account - /// - [JsonProperty("privileges", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - /// Status of user account. acitve or inactive. - /// - [JsonProperty("state", NullValueHandling = NullValueHandling.Ignore)] - public string State { get; set; } - - /// - /// User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. - /// - [JsonProperty("notifyOnShare", NullValueHandling = NullValueHandling.Ignore)] - public bool? NotifyOnShare { get; set; } - - /// - /// The user preference for revisiting the onboarding experience. - /// - [JsonProperty("showWalkMe", NullValueHandling = NullValueHandling.Ignore)] - public bool? ShowWalkMe { get; set; } - - /// - /// ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. - /// - [JsonProperty("analystOnboardingComplete", NullValueHandling = NullValueHandling.Ignore)] - public bool? AnalystOnboardingComplete { get; set; } - - /// - /// Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2UserSearchRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2UserSearchRequest other && - ((this.OutputFields == null && other.OutputFields == null) || (this.OutputFields?.Equals(other.OutputFields) == true)) && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.DisplayName == null && other.DisplayName == null) || (this.DisplayName?.Equals(other.DisplayName) == true)) && - ((this.Visibility == null && other.Visibility == null) || (this.Visibility?.Equals(other.Visibility) == true)) && - ((this.Mail == null && other.Mail == null) || (this.Mail?.Equals(other.Mail) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)) && - ((this.State == null && other.State == null) || (this.State?.Equals(other.State) == true)) && - ((this.NotifyOnShare == null && other.NotifyOnShare == null) || (this.NotifyOnShare?.Equals(other.NotifyOnShare) == true)) && - ((this.ShowWalkMe == null && other.ShowWalkMe == null) || (this.ShowWalkMe?.Equals(other.ShowWalkMe) == true)) && - ((this.AnalystOnboardingComplete == null && other.AnalystOnboardingComplete == null) || (this.AnalystOnboardingComplete?.Equals(other.AnalystOnboardingComplete) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.OutputFields = {(this.OutputFields == null ? "null" : $"[{string.Join(", ", this.OutputFields)} ]")}"); - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.DisplayName = {(this.DisplayName == null ? "null" : this.DisplayName == string.Empty ? "" : this.DisplayName)}"); - toStringOutput.Add($"this.Visibility = {(this.Visibility == null ? "null" : this.Visibility == string.Empty ? "" : this.Visibility)}"); - toStringOutput.Add($"this.Mail = {(this.Mail == null ? "null" : this.Mail == string.Empty ? "" : this.Mail)}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - toStringOutput.Add($"this.State = {(this.State == null ? "null" : this.State == string.Empty ? "" : this.State)}"); - toStringOutput.Add($"this.NotifyOnShare = {(this.NotifyOnShare == null ? "null" : this.NotifyOnShare.ToString())}"); - toStringOutput.Add($"this.ShowWalkMe = {(this.ShowWalkMe == null ? "null" : this.ShowWalkMe.ToString())}"); - toStringOutput.Add($"this.AnalystOnboardingComplete = {(this.AnalystOnboardingComplete == null ? "null" : this.AnalystOnboardingComplete.ToString())}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserUpdateRequest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserUpdateRequest.cs deleted file mode 100644 index ce7381120..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TspublicRestV2UserUpdateRequest.cs +++ /dev/null @@ -1,193 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TspublicRestV2UserUpdateRequest. - /// - public class TspublicRestV2UserUpdateRequest - { - /// - /// Initializes a new instance of the class. - /// - public TspublicRestV2UserUpdateRequest() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// displayName. - /// visibility. - /// mail. - /// state. - /// notifyOnShare. - /// showWalkMe. - /// analystOnboardingComplete. - /// type. - /// groups. - public TspublicRestV2UserUpdateRequest( - string name = null, - string id = null, - string displayName = null, - Models.Visibility1Enum? visibility = Models.Visibility1Enum.DEFAULT, - string mail = null, - Models.State1Enum? state = Models.State1Enum.ACTIVE, - bool? notifyOnShare = true, - bool? showWalkMe = true, - bool? analystOnboardingComplete = false, - Models.Type9Enum? type = Models.Type9Enum.LOCALUSER, - List groups = null) - { - this.Name = name; - this.Id = id; - this.DisplayName = displayName; - this.Visibility = visibility; - this.Mail = mail; - this.State = state; - this.NotifyOnShare = notifyOnShare; - this.ShowWalkMe = showWalkMe; - this.AnalystOnboardingComplete = analystOnboardingComplete; - this.Type = type; - this.Groups = groups; - } - - /// - /// Name of the user. The username string must be unique. - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the user account to query - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// A unique display name string for the user, usually their first and last name. - /// - [JsonProperty("displayName", NullValueHandling = NullValueHandling.Ignore)] - public string DisplayName { get; set; } - - /// - /// Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. - /// - [JsonProperty("visibility", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.Visibility1Enum? Visibility { get; set; } - - /// - /// email of the user. - /// - [JsonProperty("mail", NullValueHandling = NullValueHandling.Ignore)] - public string Mail { get; set; } - - /// - /// Status of user account. acitve or inactive. - /// - [JsonProperty("state", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.State1Enum? State { get; set; } - - /// - /// User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. - /// - [JsonProperty("notifyOnShare", NullValueHandling = NullValueHandling.Ignore)] - public bool? NotifyOnShare { get; set; } - - /// - /// The user preference for revisiting the onboarding experience. - /// - [JsonProperty("showWalkMe", NullValueHandling = NullValueHandling.Ignore)] - public bool? ShowWalkMe { get; set; } - - /// - /// ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. - /// - [JsonProperty("analystOnboardingComplete", NullValueHandling = NullValueHandling.Ignore)] - public bool? AnalystOnboardingComplete { get; set; } - - /// - /// Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. - /// - [JsonProperty("type", ItemConverterType = typeof(StringEnumConverter), NullValueHandling = NullValueHandling.Ignore)] - public Models.Type9Enum? Type { get; set; } - - /// - /// Array of objects of groups that the user belong to. - /// - [JsonProperty("groups", NullValueHandling = NullValueHandling.Ignore)] - public List Groups { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"TspublicRestV2UserUpdateRequest : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is TspublicRestV2UserUpdateRequest other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.DisplayName == null && other.DisplayName == null) || (this.DisplayName?.Equals(other.DisplayName) == true)) && - ((this.Visibility == null && other.Visibility == null) || (this.Visibility?.Equals(other.Visibility) == true)) && - ((this.Mail == null && other.Mail == null) || (this.Mail?.Equals(other.Mail) == true)) && - ((this.State == null && other.State == null) || (this.State?.Equals(other.State) == true)) && - ((this.NotifyOnShare == null && other.NotifyOnShare == null) || (this.NotifyOnShare?.Equals(other.NotifyOnShare) == true)) && - ((this.ShowWalkMe == null && other.ShowWalkMe == null) || (this.ShowWalkMe?.Equals(other.ShowWalkMe) == true)) && - ((this.AnalystOnboardingComplete == null && other.AnalystOnboardingComplete == null) || (this.AnalystOnboardingComplete?.Equals(other.AnalystOnboardingComplete) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.DisplayName = {(this.DisplayName == null ? "null" : this.DisplayName == string.Empty ? "" : this.DisplayName)}"); - toStringOutput.Add($"this.Visibility = {(this.Visibility == null ? "null" : this.Visibility.ToString())}"); - toStringOutput.Add($"this.Mail = {(this.Mail == null ? "null" : this.Mail == string.Empty ? "" : this.Mail)}"); - toStringOutput.Add($"this.State = {(this.State == null ? "null" : this.State.ToString())}"); - toStringOutput.Add($"this.NotifyOnShare = {(this.NotifyOnShare == null ? "null" : this.NotifyOnShare.ToString())}"); - toStringOutput.Add($"this.ShowWalkMe = {(this.ShowWalkMe == null ? "null" : this.ShowWalkMe.ToString())}"); - toStringOutput.Add($"this.AnalystOnboardingComplete = {(this.AnalystOnboardingComplete == null ? "null" : this.AnalystOnboardingComplete.ToString())}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type.ToString())}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type10Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type10Enum.cs deleted file mode 100644 index 65a643f17..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type10Enum.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type10Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type10Enum - { - /// - /// LOCALGROUP. - /// - [EnumMember(Value = "LOCAL_GROUP")] - LOCALGROUP, - - /// - /// TENANTGROUP. - /// - [EnumMember(Value = "TENANT_GROUP")] - TENANTGROUP - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type13Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type13Enum.cs deleted file mode 100644 index 8d558a797..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type13Enum.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type13Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type13Enum - { - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// DATAOBJECT. - /// - [EnumMember(Value = "DATAOBJECT")] - DATAOBJECT, - - /// - /// COLUMN. - /// - [EnumMember(Value = "COLUMN")] - COLUMN, - - /// - /// JOIN. - /// - [EnumMember(Value = "JOIN")] - JOIN - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type14Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type14Enum.cs deleted file mode 100644 index 9b0b1a76c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type14Enum.cs +++ /dev/null @@ -1,87 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type14Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type14Enum - { - /// - /// SNOWFLAKE. - /// - [EnumMember(Value = "SNOWFLAKE")] - SNOWFLAKE, - - /// - /// AMAZONREDSHIFT. - /// - [EnumMember(Value = "AMAZON_REDSHIFT")] - AMAZONREDSHIFT, - - /// - /// GOOGLEBIGQUERY. - /// - [EnumMember(Value = "GOOGLE_BIGQUERY")] - GOOGLEBIGQUERY, - - /// - /// AZURESYNAPSE. - /// - [EnumMember(Value = "AZURE_SYNAPSE")] - AZURESYNAPSE, - - /// - /// TERADATA. - /// - [EnumMember(Value = "TERADATA")] - TERADATA, - - /// - /// STARBURST. - /// - [EnumMember(Value = "STARBURST")] - STARBURST, - - /// - /// SAPHANA. - /// - [EnumMember(Value = "SAP_HANA")] - SAPHANA, - - /// - /// ORACLEADW. - /// - [EnumMember(Value = "ORACLE_ADW")] - ORACLEADW, - - /// - /// DATABRICKS. - /// - [EnumMember(Value = "DATABRICKS")] - DATABRICKS, - - /// - /// DENODO. - /// - [EnumMember(Value = "DENODO")] - DENODO, - - /// - /// DREMIO. - /// - [EnumMember(Value = "DREMIO")] - DREMIO - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type15Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type15Enum.cs deleted file mode 100644 index 0849606d9..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type15Enum.cs +++ /dev/null @@ -1,87 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type15Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type15Enum - { - /// - /// SNOWFLAKE. - /// - [EnumMember(Value = "SNOWFLAKE")] - SNOWFLAKE, - - /// - /// AMAZONREDSHIFT. - /// - [EnumMember(Value = "AMAZON_REDSHIFT")] - AMAZONREDSHIFT, - - /// - /// GOOGLEBIGQUERY. - /// - [EnumMember(Value = "GOOGLE_BIGQUERY")] - GOOGLEBIGQUERY, - - /// - /// AZURESYNAPSE. - /// - [EnumMember(Value = "AZURE_SYNAPSE")] - AZURESYNAPSE, - - /// - /// TERADATA. - /// - [EnumMember(Value = "TERADATA")] - TERADATA, - - /// - /// STARBURST. - /// - [EnumMember(Value = "STARBURST")] - STARBURST, - - /// - /// SAPHANA. - /// - [EnumMember(Value = "SAP_HANA")] - SAPHANA, - - /// - /// ORACLEADW. - /// - [EnumMember(Value = "ORACLE_ADW")] - ORACLEADW, - - /// - /// DATABRICKS. - /// - [EnumMember(Value = "DATABRICKS")] - DATABRICKS, - - /// - /// DENODO. - /// - [EnumMember(Value = "DENODO")] - DENODO, - - /// - /// DREMIO. - /// - [EnumMember(Value = "DREMIO")] - DREMIO - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type16Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type16Enum.cs deleted file mode 100644 index ef9569a06..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type16Enum.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type16Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type16Enum - { - /// - /// CSV. - /// - [EnumMember(Value = "CSV")] - CSV, - - /// - /// XLSX. - /// - [EnumMember(Value = "XLSX")] - XLSX, - - /// - /// PDF. - /// - [EnumMember(Value = "PDF")] - PDF, - - /// - /// PNG. - /// - [EnumMember(Value = "PNG")] - PNG - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type18Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type18Enum.cs deleted file mode 100644 index 7c93d88ac..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type18Enum.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type18Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type18Enum - { - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// DATAOBJECT. - /// - [EnumMember(Value = "DATAOBJECT")] - DATAOBJECT, - - /// - /// COLUMN. - /// - [EnumMember(Value = "COLUMN")] - COLUMN - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type1Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type1Enum.cs deleted file mode 100644 index 419853dfd..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type1Enum.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type1Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type1Enum - { - /// - /// USER. - /// - [EnumMember(Value = "USER")] - USER, - - /// - /// USERGROUP. - /// - [EnumMember(Value = "USER_GROUP")] - USERGROUP - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type2Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type2Enum.cs deleted file mode 100644 index 00c760c9b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type2Enum.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type2Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type2Enum - { - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// DATAOBJECT. - /// - [EnumMember(Value = "DATAOBJECT")] - DATAOBJECT, - - /// - /// COLUMN. - /// - [EnumMember(Value = "COLUMN")] - COLUMN - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type3Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type3Enum.cs deleted file mode 100644 index 5d2d7b4d2..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type3Enum.cs +++ /dev/null @@ -1,135 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type3Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type3Enum - { - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// DATAOBJECTALL. - /// - [EnumMember(Value = "DATAOBJECT_ALL")] - DATAOBJECTALL, - - /// - /// DATAOBJECTWORKSHEET. - /// - [EnumMember(Value = "DATAOBJECT_WORKSHEET")] - DATAOBJECTWORKSHEET, - - /// - /// DATAOBJECTTABLE. - /// - [EnumMember(Value = "DATAOBJECT_TABLE")] - DATAOBJECTTABLE, - - /// - /// DATAOBJECTUSERDEFINED. - /// - [EnumMember(Value = "DATAOBJECT_USER_DEFINED")] - DATAOBJECTUSERDEFINED, - - /// - /// DATAOBJECTVIEW. - /// - [EnumMember(Value = "DATAOBJECT_VIEW")] - DATAOBJECTVIEW, - - /// - /// DATAOBJECTCALENDARTABLE. - /// - [EnumMember(Value = "DATAOBJECT_CALENDAR_TABLE")] - DATAOBJECTCALENDARTABLE, - - /// - /// COLUMNALL. - /// - [EnumMember(Value = "COLUMN_ALL")] - COLUMNALL, - - /// - /// COLUMNWORKSHEET. - /// - [EnumMember(Value = "COLUMN_WORKSHEET")] - COLUMNWORKSHEET, - - /// - /// COLUMNTABLE. - /// - [EnumMember(Value = "COLUMN_TABLE")] - COLUMNTABLE, - - /// - /// COLUMNUSERDEFINED. - /// - [EnumMember(Value = "COLUMN_USER_DEFINED")] - COLUMNUSERDEFINED, - - /// - /// COLUMNVIEW. - /// - [EnumMember(Value = "COLUMN_VIEW")] - COLUMNVIEW, - - /// - /// COLUMNCALENDARTABLE. - /// - [EnumMember(Value = "COLUMN_CALENDAR_TABLE")] - COLUMNCALENDARTABLE, - - /// - /// JOIN. - /// - [EnumMember(Value = "JOIN")] - JOIN, - - /// - /// CONNECTION. - /// - [EnumMember(Value = "CONNECTION")] - CONNECTION, - - /// - /// TAG. - /// - [EnumMember(Value = "TAG")] - TAG, - - /// - /// USER. - /// - [EnumMember(Value = "USER")] - USER, - - /// - /// USERGROUP. - /// - [EnumMember(Value = "USER_GROUP")] - USERGROUP - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type4Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type4Enum.cs deleted file mode 100644 index 581a6ff45..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type4Enum.cs +++ /dev/null @@ -1,75 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type4Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type4Enum - { - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// DATAOBJECT. - /// - [EnumMember(Value = "DATAOBJECT")] - DATAOBJECT, - - /// - /// COLUMN. - /// - [EnumMember(Value = "COLUMN")] - COLUMN, - - /// - /// JOIN. - /// - [EnumMember(Value = "JOIN")] - JOIN, - - /// - /// CONNECTION. - /// - [EnumMember(Value = "CONNECTION")] - CONNECTION, - - /// - /// TAG. - /// - [EnumMember(Value = "TAG")] - TAG, - - /// - /// USER. - /// - [EnumMember(Value = "USER")] - USER, - - /// - /// USERGROUP. - /// - [EnumMember(Value = "USER_GROUP")] - USERGROUP - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type5Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type5Enum.cs deleted file mode 100644 index af09c6f4e..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type5Enum.cs +++ /dev/null @@ -1,135 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type5Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type5Enum - { - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// DATAOBJECTALL. - /// - [EnumMember(Value = "DATAOBJECT_ALL")] - DATAOBJECTALL, - - /// - /// DATAOBJECTWORKSHEET. - /// - [EnumMember(Value = "DATAOBJECT_WORKSHEET")] - DATAOBJECTWORKSHEET, - - /// - /// DATAOBJECTTABLE. - /// - [EnumMember(Value = "DATAOBJECT_TABLE")] - DATAOBJECTTABLE, - - /// - /// DATAOBJECTUSERDEFINED. - /// - [EnumMember(Value = "DATAOBJECT_USER_DEFINED")] - DATAOBJECTUSERDEFINED, - - /// - /// DATAOBJECTVIEW. - /// - [EnumMember(Value = "DATAOBJECT_VIEW")] - DATAOBJECTVIEW, - - /// - /// DATAOBJECTCALENDARTABLE. - /// - [EnumMember(Value = "DATAOBJECT_CALENDAR_TABLE")] - DATAOBJECTCALENDARTABLE, - - /// - /// COLUMNALL. - /// - [EnumMember(Value = "COLUMN_ALL")] - COLUMNALL, - - /// - /// COLUMNWORKSHEET. - /// - [EnumMember(Value = "COLUMN_WORKSHEET")] - COLUMNWORKSHEET, - - /// - /// COLUMNTABLE. - /// - [EnumMember(Value = "COLUMN_TABLE")] - COLUMNTABLE, - - /// - /// COLUMNUSERDEFINED. - /// - [EnumMember(Value = "COLUMN_USER_DEFINED")] - COLUMNUSERDEFINED, - - /// - /// COLUMNVIEW. - /// - [EnumMember(Value = "COLUMN_VIEW")] - COLUMNVIEW, - - /// - /// COLUMNCALENDARTABLE. - /// - [EnumMember(Value = "COLUMN_CALENDAR_TABLE")] - COLUMNCALENDARTABLE, - - /// - /// JOIN. - /// - [EnumMember(Value = "JOIN")] - JOIN, - - /// - /// CONNECTION. - /// - [EnumMember(Value = "CONNECTION")] - CONNECTION, - - /// - /// TAG. - /// - [EnumMember(Value = "TAG")] - TAG, - - /// - /// USER. - /// - [EnumMember(Value = "USER")] - USER, - - /// - /// USERGROUP. - /// - [EnumMember(Value = "USER_GROUP")] - USERGROUP - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type6Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type6Enum.cs deleted file mode 100644 index ab84d18fe..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type6Enum.cs +++ /dev/null @@ -1,75 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type6Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type6Enum - { - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// DATAOBJECT. - /// - [EnumMember(Value = "DATAOBJECT")] - DATAOBJECT, - - /// - /// COLUMN. - /// - [EnumMember(Value = "COLUMN")] - COLUMN, - - /// - /// JOIN. - /// - [EnumMember(Value = "JOIN")] - JOIN, - - /// - /// CONNECTION. - /// - [EnumMember(Value = "CONNECTION")] - CONNECTION, - - /// - /// TAG. - /// - [EnumMember(Value = "TAG")] - TAG, - - /// - /// USER. - /// - [EnumMember(Value = "USER")] - USER, - - /// - /// USERGROUP. - /// - [EnumMember(Value = "USER_GROUP")] - USERGROUP - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type7Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type7Enum.cs deleted file mode 100644 index 5efb3cec8..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type7Enum.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type7Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type7Enum - { - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// DATAOBJECT. - /// - [EnumMember(Value = "DATAOBJECT")] - DATAOBJECT, - - /// - /// COLUMN. - /// - [EnumMember(Value = "COLUMN")] - COLUMN - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type8Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type8Enum.cs deleted file mode 100644 index 55f9aaeb5..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type8Enum.cs +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type8Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type8Enum - { - /// - /// UNKNOWN. - /// - [EnumMember(Value = "UNKNOWN")] - UNKNOWN, - - /// - /// LDAPUSER. - /// - [EnumMember(Value = "LDAP_USER")] - LDAPUSER, - - /// - /// SAMLUSER. - /// - [EnumMember(Value = "SAML_USER")] - SAMLUSER, - - /// - /// OIDCUSER. - /// - [EnumMember(Value = "OIDC_USER")] - OIDCUSER, - - /// - /// LOCALUSER. - /// - [EnumMember(Value = "LOCAL_USER")] - LOCALUSER - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type9Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type9Enum.cs deleted file mode 100644 index fb92a2735..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Type9Enum.cs +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Type9Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Type9Enum - { - /// - /// UNKNOWN. - /// - [EnumMember(Value = "UNKNOWN")] - UNKNOWN, - - /// - /// LDAPUSER. - /// - [EnumMember(Value = "LDAP_USER")] - LDAPUSER, - - /// - /// SAMLUSER. - /// - [EnumMember(Value = "SAML_USER")] - SAMLUSER, - - /// - /// OIDCUSER. - /// - [EnumMember(Value = "OIDC_USER")] - OIDCUSER, - - /// - /// LOCALUSER. - /// - [EnumMember(Value = "LOCAL_USER")] - LOCALUSER - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TypeEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TypeEnum.cs deleted file mode 100644 index 464a6d61b..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/TypeEnum.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TypeEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum TypeEnum - { - /// - /// ANSWER. - /// - [EnumMember(Value = "ANSWER")] - ANSWER, - - /// - /// LIVEBOARD. - /// - [EnumMember(Value = "LIVEBOARD")] - LIVEBOARD, - - /// - /// DATAOBJECT. - /// - [EnumMember(Value = "DATAOBJECT")] - DATAOBJECT, - - /// - /// CONNECTION. - /// - [EnumMember(Value = "CONNECTION")] - CONNECTION - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndID.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndID.cs deleted file mode 100644 index 5f288bec7..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndID.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// UserNameAndID. - /// - public class UserNameAndID - { - /// - /// Initializes a new instance of the class. - /// - public UserNameAndID() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public UserNameAndID( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Username of the user - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the user - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"UserNameAndID : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is UserNameAndID other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndIDInput.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndIDInput.cs deleted file mode 100644 index ce85f64e6..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserNameAndIDInput.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// UserNameAndIDInput. - /// - public class UserNameAndIDInput - { - /// - /// Initializes a new instance of the class. - /// - public UserNameAndIDInput() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - public UserNameAndIDInput( - string name = null, - string id = null) - { - this.Name = name; - this.Id = id; - } - - /// - /// Username of the user - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// GUID of the user - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"UserNameAndIDInput : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is UserNameAndIDInput other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserResponse.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserResponse.cs deleted file mode 100644 index e4e09a3d4..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/UserResponse.cs +++ /dev/null @@ -1,425 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// UserResponse. - /// - public class UserResponse - { - /// - /// Initializes a new instance of the class. - /// - public UserResponse() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// displayName. - /// id. - /// visibility. - /// mail. - /// groups. - /// privileges. - /// orgs. - /// tags. - /// state. - /// notifyOnShare. - /// showWalkMe. - /// analystOnboardingComplete. - /// firstLogin. - /// welcomeEmailSent. - /// isDeleted. - /// isHidden. - /// isExternal. - /// isDeprecated. - /// complete. - /// isSuperUser. - /// isSystemPrincipal. - /// type. - /// parenttype. - /// tenantId. - /// indexVersion. - /// generationNum. - /// created. - /// modified. - /// author. - /// modifiedBy. - /// owner. - public UserResponse( - string name = null, - string displayName = null, - string id = null, - string visibility = null, - string mail = null, - List groups = null, - List privileges = null, - List orgs = null, - List tags = null, - string state = null, - bool? notifyOnShare = null, - bool? showWalkMe = null, - bool? analystOnboardingComplete = null, - int? firstLogin = null, - bool? welcomeEmailSent = null, - bool? isDeleted = null, - bool? isHidden = null, - bool? isExternal = null, - bool? isDeprecated = null, - bool? complete = null, - bool? isSuperUser = null, - bool? isSystemPrincipal = null, - string type = null, - string parenttype = null, - string tenantId = null, - double? indexVersion = null, - double? generationNum = null, - double? created = null, - double? modified = null, - Models.UserNameAndID author = null, - Models.UserNameAndID modifiedBy = null, - Models.UserNameAndID owner = null) - { - this.Name = name; - this.DisplayName = displayName; - this.Id = id; - this.Visibility = visibility; - this.Mail = mail; - this.Groups = groups; - this.Privileges = privileges; - this.Orgs = orgs; - this.Tags = tags; - this.State = state; - this.NotifyOnShare = notifyOnShare; - this.ShowWalkMe = showWalkMe; - this.AnalystOnboardingComplete = analystOnboardingComplete; - this.FirstLogin = firstLogin; - this.WelcomeEmailSent = welcomeEmailSent; - this.IsDeleted = isDeleted; - this.IsHidden = isHidden; - this.IsExternal = isExternal; - this.IsDeprecated = isDeprecated; - this.Complete = complete; - this.IsSuperUser = isSuperUser; - this.IsSystemPrincipal = isSystemPrincipal; - this.Type = type; - this.Parenttype = parenttype; - this.TenantId = tenantId; - this.IndexVersion = indexVersion; - this.GenerationNum = generationNum; - this.Created = created; - this.Modified = modified; - this.Author = author; - this.ModifiedBy = modifiedBy; - this.Owner = owner; - } - - /// - /// Username of the user account - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// Display name of the user account - /// - [JsonProperty("displayName", NullValueHandling = NullValueHandling.Ignore)] - public string DisplayName { get; set; } - - /// - /// GUID of the user account - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// Visibility of the user account - /// - [JsonProperty("visibility", NullValueHandling = NullValueHandling.Ignore)] - public string Visibility { get; set; } - - /// - /// Email of the user account - /// - [JsonProperty("mail", NullValueHandling = NullValueHandling.Ignore)] - public string Mail { get; set; } - - /// - /// Name of the group to which user account is added - /// - [JsonProperty("groups", NullValueHandling = NullValueHandling.Ignore)] - public List Groups { get; set; } - - /// - /// Privileges assigned to user account - /// - [JsonProperty("privileges", NullValueHandling = NullValueHandling.Ignore)] - public List Privileges { get; set; } - - /// - /// The organizations that user belongs to - /// - [JsonProperty("orgs", NullValueHandling = NullValueHandling.Ignore)] - public List Orgs { get; set; } - - /// - /// Tags assigned to the user - /// - [JsonProperty("tags", NullValueHandling = NullValueHandling.Ignore)] - public List Tags { get; set; } - - /// - /// Indicates if the user account is active or inactive - /// - [JsonProperty("state", NullValueHandling = NullValueHandling.Ignore)] - public string State { get; set; } - - /// - /// Indicates if the email should be sent when object is shared with the user - /// - [JsonProperty("notifyOnShare", NullValueHandling = NullValueHandling.Ignore)] - public bool? NotifyOnShare { get; set; } - - /// - /// Indicates if the walk me should be shown when logging in - /// - [JsonProperty("showWalkMe", NullValueHandling = NullValueHandling.Ignore)] - public bool? ShowWalkMe { get; set; } - - /// - /// Indicates if the onboarding is completed for the user - /// - [JsonProperty("analystOnboardingComplete", NullValueHandling = NullValueHandling.Ignore)] - public bool? AnalystOnboardingComplete { get; set; } - - /// - /// Indicates if the use is logging in for the first time - /// - [JsonProperty("firstLogin", NullValueHandling = NullValueHandling.Ignore)] - public int? FirstLogin { get; set; } - - /// - /// Indicates if the welcome email is sent to email associated with the user account - /// - [JsonProperty("welcomeEmailSent", NullValueHandling = NullValueHandling.Ignore)] - public bool? WelcomeEmailSent { get; set; } - - /// - /// Indicates if the user account is deleted - /// - [JsonProperty("isDeleted", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeleted { get; set; } - - /// - /// Indicates if the user account is hidden - /// - [JsonProperty("isHidden", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsHidden { get; set; } - - /// - /// Indicates if the user account is from external system - /// isDeprecated - /// - [JsonProperty("isExternal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsExternal { get; set; } - - /// - /// Gets or sets IsDeprecated. - /// - [JsonProperty("isDeprecated", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsDeprecated { get; set; } - - /// - /// Indicates if the all the properties of user account is provided - /// - [JsonProperty("complete", NullValueHandling = NullValueHandling.Ignore)] - public bool? Complete { get; set; } - - /// - /// Indicates if the user account is super user - /// - [JsonProperty("isSuperUser", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsSuperUser { get; set; } - - /// - /// Indicates if the user account is system principal - /// - [JsonProperty("isSystemPrincipal", NullValueHandling = NullValueHandling.Ignore)] - public bool? IsSystemPrincipal { get; set; } - - /// - /// Indicates the type of user account - /// - [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] - public string Type { get; set; } - - /// - /// Indicates the type of parent object - /// - [JsonProperty("parenttype", NullValueHandling = NullValueHandling.Ignore)] - public string Parenttype { get; set; } - - /// - /// Tenant id associated with the user account - /// - [JsonProperty("tenantId", NullValueHandling = NullValueHandling.Ignore)] - public string TenantId { get; set; } - - /// - /// Gets or sets IndexVersion. - /// - [JsonProperty("indexVersion", NullValueHandling = NullValueHandling.Ignore)] - public double? IndexVersion { get; set; } - - /// - /// Gets or sets GenerationNum. - /// - [JsonProperty("generationNum", NullValueHandling = NullValueHandling.Ignore)] - public double? GenerationNum { get; set; } - - /// - /// Date and time when user account was created - /// - [JsonProperty("created", NullValueHandling = NullValueHandling.Ignore)] - public double? Created { get; set; } - - /// - /// Date and time of last modification of user account - /// - [JsonProperty("modified", NullValueHandling = NullValueHandling.Ignore)] - public double? Modified { get; set; } - - /// - /// Gets or sets Author. - /// - [JsonProperty("author", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Author { get; set; } - - /// - /// Gets or sets ModifiedBy. - /// - [JsonProperty("modifiedBy", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID ModifiedBy { get; set; } - - /// - /// Gets or sets Owner. - /// - [JsonProperty("owner", NullValueHandling = NullValueHandling.Ignore)] - public Models.UserNameAndID Owner { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"UserResponse : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is UserResponse other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.DisplayName == null && other.DisplayName == null) || (this.DisplayName?.Equals(other.DisplayName) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.Visibility == null && other.Visibility == null) || (this.Visibility?.Equals(other.Visibility) == true)) && - ((this.Mail == null && other.Mail == null) || (this.Mail?.Equals(other.Mail) == true)) && - ((this.Groups == null && other.Groups == null) || (this.Groups?.Equals(other.Groups) == true)) && - ((this.Privileges == null && other.Privileges == null) || (this.Privileges?.Equals(other.Privileges) == true)) && - ((this.Orgs == null && other.Orgs == null) || (this.Orgs?.Equals(other.Orgs) == true)) && - ((this.Tags == null && other.Tags == null) || (this.Tags?.Equals(other.Tags) == true)) && - ((this.State == null && other.State == null) || (this.State?.Equals(other.State) == true)) && - ((this.NotifyOnShare == null && other.NotifyOnShare == null) || (this.NotifyOnShare?.Equals(other.NotifyOnShare) == true)) && - ((this.ShowWalkMe == null && other.ShowWalkMe == null) || (this.ShowWalkMe?.Equals(other.ShowWalkMe) == true)) && - ((this.AnalystOnboardingComplete == null && other.AnalystOnboardingComplete == null) || (this.AnalystOnboardingComplete?.Equals(other.AnalystOnboardingComplete) == true)) && - ((this.FirstLogin == null && other.FirstLogin == null) || (this.FirstLogin?.Equals(other.FirstLogin) == true)) && - ((this.WelcomeEmailSent == null && other.WelcomeEmailSent == null) || (this.WelcomeEmailSent?.Equals(other.WelcomeEmailSent) == true)) && - ((this.IsDeleted == null && other.IsDeleted == null) || (this.IsDeleted?.Equals(other.IsDeleted) == true)) && - ((this.IsHidden == null && other.IsHidden == null) || (this.IsHidden?.Equals(other.IsHidden) == true)) && - ((this.IsExternal == null && other.IsExternal == null) || (this.IsExternal?.Equals(other.IsExternal) == true)) && - ((this.IsDeprecated == null && other.IsDeprecated == null) || (this.IsDeprecated?.Equals(other.IsDeprecated) == true)) && - ((this.Complete == null && other.Complete == null) || (this.Complete?.Equals(other.Complete) == true)) && - ((this.IsSuperUser == null && other.IsSuperUser == null) || (this.IsSuperUser?.Equals(other.IsSuperUser) == true)) && - ((this.IsSystemPrincipal == null && other.IsSystemPrincipal == null) || (this.IsSystemPrincipal?.Equals(other.IsSystemPrincipal) == true)) && - ((this.Type == null && other.Type == null) || (this.Type?.Equals(other.Type) == true)) && - ((this.Parenttype == null && other.Parenttype == null) || (this.Parenttype?.Equals(other.Parenttype) == true)) && - ((this.TenantId == null && other.TenantId == null) || (this.TenantId?.Equals(other.TenantId) == true)) && - ((this.IndexVersion == null && other.IndexVersion == null) || (this.IndexVersion?.Equals(other.IndexVersion) == true)) && - ((this.GenerationNum == null && other.GenerationNum == null) || (this.GenerationNum?.Equals(other.GenerationNum) == true)) && - ((this.Created == null && other.Created == null) || (this.Created?.Equals(other.Created) == true)) && - ((this.Modified == null && other.Modified == null) || (this.Modified?.Equals(other.Modified) == true)) && - ((this.Author == null && other.Author == null) || (this.Author?.Equals(other.Author) == true)) && - ((this.ModifiedBy == null && other.ModifiedBy == null) || (this.ModifiedBy?.Equals(other.ModifiedBy) == true)) && - ((this.Owner == null && other.Owner == null) || (this.Owner?.Equals(other.Owner) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.DisplayName = {(this.DisplayName == null ? "null" : this.DisplayName == string.Empty ? "" : this.DisplayName)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.Visibility = {(this.Visibility == null ? "null" : this.Visibility == string.Empty ? "" : this.Visibility)}"); - toStringOutput.Add($"this.Mail = {(this.Mail == null ? "null" : this.Mail == string.Empty ? "" : this.Mail)}"); - toStringOutput.Add($"this.Groups = {(this.Groups == null ? "null" : $"[{string.Join(", ", this.Groups)} ]")}"); - toStringOutput.Add($"this.Privileges = {(this.Privileges == null ? "null" : $"[{string.Join(", ", this.Privileges)} ]")}"); - toStringOutput.Add($"this.Orgs = {(this.Orgs == null ? "null" : $"[{string.Join(", ", this.Orgs)} ]")}"); - toStringOutput.Add($"this.Tags = {(this.Tags == null ? "null" : $"[{string.Join(", ", this.Tags)} ]")}"); - toStringOutput.Add($"this.State = {(this.State == null ? "null" : this.State == string.Empty ? "" : this.State)}"); - toStringOutput.Add($"this.NotifyOnShare = {(this.NotifyOnShare == null ? "null" : this.NotifyOnShare.ToString())}"); - toStringOutput.Add($"this.ShowWalkMe = {(this.ShowWalkMe == null ? "null" : this.ShowWalkMe.ToString())}"); - toStringOutput.Add($"this.AnalystOnboardingComplete = {(this.AnalystOnboardingComplete == null ? "null" : this.AnalystOnboardingComplete.ToString())}"); - toStringOutput.Add($"this.FirstLogin = {(this.FirstLogin == null ? "null" : this.FirstLogin.ToString())}"); - toStringOutput.Add($"this.WelcomeEmailSent = {(this.WelcomeEmailSent == null ? "null" : this.WelcomeEmailSent.ToString())}"); - toStringOutput.Add($"this.IsDeleted = {(this.IsDeleted == null ? "null" : this.IsDeleted.ToString())}"); - toStringOutput.Add($"this.IsHidden = {(this.IsHidden == null ? "null" : this.IsHidden.ToString())}"); - toStringOutput.Add($"this.IsExternal = {(this.IsExternal == null ? "null" : this.IsExternal.ToString())}"); - toStringOutput.Add($"this.IsDeprecated = {(this.IsDeprecated == null ? "null" : this.IsDeprecated.ToString())}"); - toStringOutput.Add($"this.Complete = {(this.Complete == null ? "null" : this.Complete.ToString())}"); - toStringOutput.Add($"this.IsSuperUser = {(this.IsSuperUser == null ? "null" : this.IsSuperUser.ToString())}"); - toStringOutput.Add($"this.IsSystemPrincipal = {(this.IsSystemPrincipal == null ? "null" : this.IsSystemPrincipal.ToString())}"); - toStringOutput.Add($"this.Type = {(this.Type == null ? "null" : this.Type == string.Empty ? "" : this.Type)}"); - toStringOutput.Add($"this.Parenttype = {(this.Parenttype == null ? "null" : this.Parenttype == string.Empty ? "" : this.Parenttype)}"); - toStringOutput.Add($"this.TenantId = {(this.TenantId == null ? "null" : this.TenantId == string.Empty ? "" : this.TenantId)}"); - toStringOutput.Add($"this.IndexVersion = {(this.IndexVersion == null ? "null" : this.IndexVersion.ToString())}"); - toStringOutput.Add($"this.GenerationNum = {(this.GenerationNum == null ? "null" : this.GenerationNum.ToString())}"); - toStringOutput.Add($"this.Created = {(this.Created == null ? "null" : this.Created.ToString())}"); - toStringOutput.Add($"this.Modified = {(this.Modified == null ? "null" : this.Modified.ToString())}"); - toStringOutput.Add($"this.Author = {(this.Author == null ? "null" : this.Author.ToString())}"); - toStringOutput.Add($"this.ModifiedBy = {(this.ModifiedBy == null ? "null" : this.ModifiedBy.ToString())}"); - toStringOutput.Add($"this.Owner = {(this.Owner == null ? "null" : this.Owner.ToString())}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility1Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility1Enum.cs deleted file mode 100644 index b1f29a522..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility1Enum.cs +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Visibility1Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Visibility1Enum - { - /// - /// DEFAULT. - /// - [EnumMember(Value = "DEFAULT")] - DEFAULT, - - /// - /// NONSHARABLE. - /// - [EnumMember(Value = "NON_SHARABLE")] - NONSHARABLE, - - /// - /// SHARABLE. - /// - [EnumMember(Value = "SHARABLE")] - SHARABLE - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility2Enum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility2Enum.cs deleted file mode 100644 index 14e438cc1..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/Visibility2Enum.cs +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// Visibility2Enum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum Visibility2Enum - { - /// - /// DEFAULT. - /// - [EnumMember(Value = "DEFAULT")] - DEFAULT, - - /// - /// NONSHARABLE. - /// - [EnumMember(Value = "NON_SHARABLE")] - NONSHARABLE, - - /// - /// SHARABLE. - /// - [EnumMember(Value = "SHARABLE")] - SHARABLE - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VisibilityEnum.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VisibilityEnum.cs deleted file mode 100644 index 901c6db47..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VisibilityEnum.cs +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// VisibilityEnum. - /// - [JsonConverter(typeof(StringEnumConverter))] - public enum VisibilityEnum - { - /// - /// DEFAULT. - /// - [EnumMember(Value = "DEFAULT")] - DEFAULT, - - /// - /// NONSHARABLE. - /// - [EnumMember(Value = "NON_SHARABLE")] - NONSHARABLE, - - /// - /// SHARABLE. - /// - [EnumMember(Value = "SHARABLE")] - SHARABLE - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VizType.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VizType.cs deleted file mode 100644 index 4d14a084a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Models/VizType.cs +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// VizType. - /// - public class VizType - { - /// - /// Initializes a new instance of the class. - /// - public VizType() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// name. - /// id. - /// querySql. - public VizType( - string name = null, - string id = null, - string querySql = null) - { - this.Name = name; - this.Id = id; - this.QuerySql = querySql; - } - - /// - /// The name of the visualization - /// - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] - public string Name { get; set; } - - /// - /// The GUID of the visualization - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string Id { get; set; } - - /// - /// SQL query associated with the visualization - /// - [JsonProperty("querySql", NullValueHandling = NullValueHandling.Ignore)] - public string QuerySql { get; set; } - - /// - public override string ToString() - { - var toStringOutput = new List(); - - this.ToString(toStringOutput); - - return $"VizType : ({string.Join(", ", toStringOutput)})"; - } - - /// - public override bool Equals(object obj) - { - if (obj == null) - { - return false; - } - - if (obj == this) - { - return true; - } - - return obj is VizType other && - ((this.Name == null && other.Name == null) || (this.Name?.Equals(other.Name) == true)) && - ((this.Id == null && other.Id == null) || (this.Id?.Equals(other.Id) == true)) && - ((this.QuerySql == null && other.QuerySql == null) || (this.QuerySql?.Equals(other.QuerySql) == true)); - } - - - /// - /// ToString overload. - /// - /// List of strings. - protected void ToString(List toStringOutput) - { - toStringOutput.Add($"this.Name = {(this.Name == null ? "null" : this.Name == string.Empty ? "" : this.Name)}"); - toStringOutput.Add($"this.Id = {(this.Id == null ? "null" : this.Id == string.Empty ? "" : this.Id)}"); - toStringOutput.Add($"this.QuerySql = {(this.QuerySql == null ? "null" : this.QuerySql == string.Empty ? "" : this.QuerySql)}"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Server.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Server.cs deleted file mode 100644 index b6ecf45e0..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Server.cs +++ /dev/null @@ -1,16 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard -{ - /// - /// Available servers. - /// - public enum Server - { - /// - /// Default. - /// - Default, - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPI.Standard.csproj b/DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPI.Standard.csproj deleted file mode 100644 index 397eb2cd1..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPI.Standard.csproj +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - netstandard2.0 - thoughtspot.rest.api.sdk - 1.13.1.0 - - - ThoughtSpotPublicRESTAPI.Standard - Copyright © 2019 - 1.13.1.0 - 1.13.1.0 - .NET client library for the ThoughtSpot Public REST API - 7.3 - true - thoughtspot.rest.api.sdk - README.md - LICENSE - - - - - - - - - <_Parameter1>ThoughtSpotPublicRESTAPI.Tests - - - - - - diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPIClient.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPIClient.cs deleted file mode 100644 index 230f42b6d..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPIClient.cs +++ /dev/null @@ -1,422 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Net; - using System.Text; - using ThoughtSpotPublicRESTAPI.Standard.Authentication; - using ThoughtSpotPublicRESTAPI.Standard.Controllers; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// The gateway for the SDK. This class acts as a factory for Controller and - /// holds the configuration of the SDK. - /// - public sealed class ThoughtSpotPublicRESTAPIClient : IConfiguration - { - // A map of environments and their corresponding servers/baseurls - private static readonly Dictionary> EnvironmentsMap = - new Dictionary> - { - { - Environment.Production, new Dictionary - { - { Server.Default, "{base-url}" }, - } - }, - }; - - private readonly IDictionary authManagers; - private readonly IHttpClient httpClient; - private readonly HttpCallBack httpCallBack; - private readonly BearerAuthManager bearerAuthManager; - - private readonly Lazy user; - private readonly Lazy mGroup; - private readonly Lazy metadata; - private readonly Lazy database; - private readonly Lazy connection; - private readonly Lazy data; - private readonly Lazy logs; - private readonly Lazy customActions; - private readonly Lazy security; - private readonly Lazy org; - private readonly Lazy session; - private readonly Lazy admin; - private readonly Lazy report; - private readonly Lazy materialization; - - private ThoughtSpotPublicRESTAPIClient( - Environment environment, - string baseUrl, - string accessToken, - IDictionary authManagers, - IHttpClient httpClient, - HttpCallBack httpCallBack, - IHttpClientConfiguration httpClientConfiguration) - { - this.Environment = environment; - this.BaseUrl = baseUrl; - this.httpCallBack = httpCallBack; - this.httpClient = httpClient; - this.authManagers = (authManagers == null) ? new Dictionary() : new Dictionary(authManagers); - this.HttpClientConfiguration = httpClientConfiguration; - - this.user = new Lazy( - () => new UserController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.mGroup = new Lazy( - () => new GroupController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.metadata = new Lazy( - () => new MetadataController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.database = new Lazy( - () => new DatabaseController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.connection = new Lazy( - () => new ConnectionController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.data = new Lazy( - () => new DataController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.logs = new Lazy( - () => new LogsController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.customActions = new Lazy( - () => new CustomActionsController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.security = new Lazy( - () => new SecurityController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.org = new Lazy( - () => new OrgController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.session = new Lazy( - () => new SessionController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.admin = new Lazy( - () => new AdminController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.report = new Lazy( - () => new ReportController(this, this.httpClient, this.authManagers, this.httpCallBack)); - this.materialization = new Lazy( - () => new MaterializationController(this, this.httpClient, this.authManagers, this.httpCallBack)); - - if (this.authManagers.ContainsKey("global")) - { - this.bearerAuthManager = (BearerAuthManager)this.authManagers["global"]; - } - - if (!this.authManagers.ContainsKey("global") - || !this.BearerAuthCredentials.Equals(accessToken)) - { - this.bearerAuthManager = new BearerAuthManager(accessToken); - this.authManagers["global"] = this.bearerAuthManager; - } - } - - /// - /// Gets UserController controller. - /// - public UserController UserController => this.user.Value; - - /// - /// Gets GroupController controller. - /// - public GroupController GroupController => this.mGroup.Value; - - /// - /// Gets MetadataController controller. - /// - public MetadataController MetadataController => this.metadata.Value; - - /// - /// Gets DatabaseController controller. - /// - public DatabaseController DatabaseController => this.database.Value; - - /// - /// Gets ConnectionController controller. - /// - public ConnectionController ConnectionController => this.connection.Value; - - /// - /// Gets DataController controller. - /// - public DataController DataController => this.data.Value; - - /// - /// Gets LogsController controller. - /// - public LogsController LogsController => this.logs.Value; - - /// - /// Gets CustomActionsController controller. - /// - public CustomActionsController CustomActionsController => this.customActions.Value; - - /// - /// Gets SecurityController controller. - /// - public SecurityController SecurityController => this.security.Value; - - /// - /// Gets OrgController controller. - /// - public OrgController OrgController => this.org.Value; - - /// - /// Gets SessionController controller. - /// - public SessionController SessionController => this.session.Value; - - /// - /// Gets AdminController controller. - /// - public AdminController AdminController => this.admin.Value; - - /// - /// Gets ReportController controller. - /// - public ReportController ReportController => this.report.Value; - - /// - /// Gets MaterializationController controller. - /// - public MaterializationController MaterializationController => this.materialization.Value; - - /// - /// Gets the configuration of the Http Client associated with this client. - /// - public IHttpClientConfiguration HttpClientConfiguration { get; } - - /// - /// Gets Environment. - /// Current API environment. - /// - public Environment Environment { get; } - - /// - /// Gets BaseUrl. - /// BaseUrl value. - /// - public string BaseUrl { get; } - - /// - /// Gets auth managers. - /// - internal IDictionary AuthManagers => this.authManagers; - - /// - /// Gets http client. - /// - internal IHttpClient HttpClient => this.httpClient; - - /// - /// Gets http callback. - /// - internal HttpCallBack HttpCallBack => this.httpCallBack; - - /// - /// Gets the credentials to use with BearerAuth. - /// - private IBearerAuthCredentials BearerAuthCredentials => this.bearerAuthManager; - - /// - /// Gets the access token to use with OAuth 2 authentication. - /// - public string AccessToken => this.BearerAuthCredentials.AccessToken; - - /// - /// Gets the URL for a particular alias in the current environment and appends - /// it with template parameters. - /// - /// Default value:DEFAULT. - /// Returns the baseurl. - public string GetBaseUri(Server alias = Server.Default) - { - StringBuilder url = new StringBuilder(EnvironmentsMap[this.Environment][alias]); - ApiHelper.AppendUrlWithTemplateParameters(url, this.GetBaseUriParameters()); - - return url.ToString(); - } - - /// - /// Creates an object of the ThoughtSpotPublicRESTAPIClient using the values provided for the builder. - /// - /// Builder. - public Builder ToBuilder() - { - Builder builder = new Builder() - .Environment(this.Environment) - .BaseUrl(this.BaseUrl) - .AccessToken(this.BearerAuthCredentials.AccessToken) - .HttpCallBack(this.httpCallBack) - .HttpClient(this.httpClient) - .AuthManagers(this.authManagers) - .HttpClientConfig(config => config.Build()); - - return builder; - } - - /// - public override string ToString() - { - return - $"Environment = {this.Environment}, " + - $"BaseUrl = {this.BaseUrl}, " + - $"HttpClientConfiguration = {this.HttpClientConfiguration}, "; - } - - /// - /// Creates the client using builder. - /// - /// ThoughtSpotPublicRESTAPIClient. - internal static ThoughtSpotPublicRESTAPIClient CreateFromEnvironment() - { - var builder = new Builder(); - - string environment = System.Environment.GetEnvironmentVariable("THOUGHT_SPOT_PUBLIC_RESTAPI_STANDARD_ENVIRONMENT"); - string baseUrl = System.Environment.GetEnvironmentVariable("THOUGHT_SPOT_PUBLIC_RESTAPI_STANDARD_BASE_URL"); - string accessToken = System.Environment.GetEnvironmentVariable("THOUGHT_SPOT_PUBLIC_RESTAPI_STANDARD_ACCESS_TOKEN"); - - if (environment != null) - { - builder.Environment(ApiHelper.JsonDeserialize($"\"{environment}\"")); - } - - if (baseUrl != null) - { - builder.BaseUrl(baseUrl); - } - - if (accessToken != null) - { - builder.AccessToken(accessToken); - } - - return builder.Build(); - } - - /// - /// Makes a list of the BaseURL parameters. - /// - /// Returns the parameters list. - private List> GetBaseUriParameters() - { - List> kvpList = new List>() - { - new KeyValuePair("base-url", this.BaseUrl), - }; - return kvpList; - } - - /// - /// Builder class. - /// - public class Builder - { - private Environment environment = ThoughtSpotPublicRESTAPI.Standard.Environment.Production; - private string baseUrl = "https://localhost:443"; - private string accessToken = ""; - private IDictionary authManagers = new Dictionary(); - private HttpClientConfiguration.Builder httpClientConfig = new HttpClientConfiguration.Builder(); - private IHttpClient httpClient; - private HttpCallBack httpCallBack; - - /// - /// Sets credentials for BearerAuth. - /// - /// AccessToken. - /// Builder. - public Builder AccessToken(string accessToken) - { - this.accessToken = accessToken ?? throw new ArgumentNullException(nameof(accessToken)); - return this; - } - - /// - /// Sets Environment. - /// - /// Environment. - /// Builder. - public Builder Environment(Environment environment) - { - this.environment = environment; - return this; - } - - /// - /// Sets BaseUrl. - /// - /// BaseUrl. - /// Builder. - public Builder BaseUrl(string baseUrl) - { - this.baseUrl = baseUrl ?? throw new ArgumentNullException(nameof(baseUrl)); - return this; - } - - /// - /// Sets HttpClientConfig. - /// - /// Action. - /// Builder. - public Builder HttpClientConfig(Action action) - { - if (action is null) - { - throw new ArgumentNullException(nameof(action)); - } - - action(this.httpClientConfig); - return this; - } - - /// - /// Sets the IHttpClient for the Builder. - /// - /// http client. - /// Builder. - internal Builder HttpClient(IHttpClient httpClient) - { - this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); - return this; - } - - /// - /// Sets the authentication managers for the Builder. - /// - /// auth managers. - /// Builder. - internal Builder AuthManagers(IDictionary authManagers) - { - this.authManagers = authManagers ?? throw new ArgumentNullException(nameof(authManagers)); - return this; - } - - /// - /// Sets the HttpCallBack for the Builder. - /// - /// http callback. - /// Builder. - internal Builder HttpCallBack(HttpCallBack httpCallBack) - { - this.httpCallBack = httpCallBack; - return this; - } - - /// - /// Creates an object of the ThoughtSpotPublicRESTAPIClient using the values provided for the builder. - /// - /// ThoughtSpotPublicRESTAPIClient. - public ThoughtSpotPublicRESTAPIClient Build() - { - this.httpClient = new HttpClientWrapper(this.httpClientConfig.Build()); - - return new ThoughtSpotPublicRESTAPIClient( - this.environment, - this.baseUrl, - this.accessToken, - this.authManagers, - this.httpClient, - this.httpCallBack, - this.httpClientConfig.Build()); - } - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ApiHelper.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ApiHelper.cs deleted file mode 100644 index 4d87a3cff..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ApiHelper.cs +++ /dev/null @@ -1,654 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Utilities -{ - using System; - using System.Collections; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Reflection; - using System.Text; - using System.Text.RegularExpressions; - using System.Threading.Tasks; - using Newtonsoft.Json; - using Newtonsoft.Json.Converters; - using Newtonsoft.Json.Linq; - - /// - /// ApiHelper class contains a bunch of helper methods. - /// - public static class ApiHelper - { - /// - /// DateTime format to use for parsing and converting dates. - /// - private static readonly string DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"; - - /// - /// JSON Serialization of a given object. - /// - /// The object to serialize into JSON. - /// The converter to use for date time conversion. - /// The serialized Json string representation of the given object. - public static string JsonSerialize(object obj, JsonConverter converter = null) - { - if (obj == null) - { - return null; - } - - var settings = new JsonSerializerSettings() - { - MaxDepth = 128 - }; - - if (converter == null) - { - settings.Converters.Add(new IsoDateTimeConverter()); - } - else - { - settings.Converters.Add(converter); - } - - return JsonConvert.SerializeObject(obj, Formatting.None, settings); - } - - /// - /// JSON Deserialization of the given json string. - /// - /// The json string to deserialize. - /// The converter to use for date time conversion. - /// The type of the object to desialize into. - /// The deserialized object. - public static T JsonDeserialize(string json, JsonConverter converter = null) - { - if (string.IsNullOrWhiteSpace(json)) - { - return default; - } - - if (converter == null) - { - return JsonConvert.DeserializeObject(json, new IsoDateTimeConverter()); - } - else - { - return JsonConvert.DeserializeObject(json, converter); - } - } - - /// - /// Replaces template parameters in the given url. - /// - /// The queryBuilder to replace the template parameters. - /// The parameters to replace in the url. - public static void AppendUrlWithTemplateParameters(StringBuilder queryBuilder, IEnumerable> parameters) - { - // perform parameter validation - if (queryBuilder == null) - { - throw new ArgumentNullException("queryBuilder"); - } - - if (parameters == null) - { - return; - } - - // iterate and replace parameters - foreach (KeyValuePair pair in parameters) - { - string replaceValue = string.Empty; - - // load element value as string - if (pair.Value == null) - { - replaceValue = string.Empty; - } - else if (pair.Value is ICollection) - { - replaceValue = FlattenCollection(pair.Value as ICollection, ArrayDeserialization.None, '/', false); - } - else if (pair.Value is DateTime) - { - replaceValue = ((DateTime)pair.Value).ToString(DateTimeFormat); - } - else if (pair.Value is DateTimeOffset) - { - replaceValue = ((DateTimeOffset)pair.Value).ToString(DateTimeFormat); - } - else - { - replaceValue = pair.Value.ToString(); - } - - replaceValue = Uri.EscapeUriString(replaceValue); - - // find the template parameter and replace it with its value - queryBuilder.Replace(string.Format("{{{0}}}", pair.Key), replaceValue); - } - } - - /// - /// Appends the given set of parameters to the given query string. - /// - /// The queryBuilder to append the parameters. - /// The parameters to append. - /// arrayDeserializationFormat. - /// separator. - public static void AppendUrlWithQueryParameters(StringBuilder queryBuilder, IEnumerable> parameters, ArrayDeserialization arrayDeserializationFormat = ArrayDeserialization.UnIndexed, char separator = '&') - { - // perform parameter validation - if (queryBuilder == null) - { - throw new ArgumentNullException("queryBuilder"); - } - - if (parameters == null) - { - return; - } - - // does the query string already has parameters - bool hasParams = IndexOf(queryBuilder, "?") > 0; - var processedParameters = ProcessQueryParamsForCustomTypes(parameters); - - // iterate and append parameters - foreach (KeyValuePair pair in processedParameters) - { - // if already has parameters, use the & to append new parameters - queryBuilder.Append(hasParams ? '&' : '?'); - - // indicate that now the query has some params - hasParams = true; - - string paramKeyValPair; - - // load element value as string - if (pair.Value is ICollection) - { - paramKeyValPair = FlattenCollection(pair.Value as ICollection, arrayDeserializationFormat, separator, true, Uri.EscapeDataString(pair.Key)); - } - else if (pair.Value is DateTime) - { - paramKeyValPair = string.Format("{0}={1}", Uri.EscapeDataString(pair.Key), ((DateTime)pair.Value).ToString(DateTimeFormat)); - } - else if (pair.Value is DateTimeOffset) - { - paramKeyValPair = string.Format("{0}={1}", Uri.EscapeDataString(pair.Key), ((DateTimeOffset)pair.Value).ToString(DateTimeFormat)); - } - else - { - paramKeyValPair = string.Format("{0}={1}", Uri.EscapeDataString(pair.Key), Uri.EscapeDataString(pair.Value.ToString())); - } - - // append keyval pair for current parameter - queryBuilder.Append(paramKeyValPair); - } - } - - /// - /// Validates and processes the given query Url to clean empty slashes. - /// - /// The given query Url to process. - /// Clean Url as string. - public static string CleanUrl(StringBuilder queryBuilder) - { - // convert to immutable string - string url = queryBuilder.ToString(); - - // ensure that the urls are absolute - Match match = Regex.Match(url, "^https?://[^/]+"); - if (!match.Success) - { - throw new ArgumentException("Invalid Url format."); - } - - // remove redundant forward slashes - int index = url.IndexOf('?'); - string protocol = match.Value; - string query = url.Substring(protocol.Length, (index == -1 ? url.Length : index) - protocol.Length); - query = Regex.Replace(query, "//+", "/"); - string parameters = index == -1 ? string.Empty : url.Substring(index); - - // return process url - return string.Concat(protocol, query, parameters); - } - - /// - /// Prepares parameters for serialization as a form encoded string by flattening complex Types such as Collections and Models to a list of KeyValuePairs, where each value is a string representation of the original Type. - /// - /// name. - /// value. - /// keys. - /// propInfo. - /// arrayDeserializationFormat. - /// List of KeyValuePairs. - public static List> PrepareFormFieldsFromObject(string name, object value, List> keys = null, PropertyInfo propInfo = null, ArrayDeserialization arrayDeserializationFormat = ArrayDeserialization.UnIndexed) - { - keys = keys ?? new List>(); - - if (value == null) - { - return keys; - } - else if (value is Stream) - { - keys.Add(new KeyValuePair(name, value)); - return keys; - } - else if (value is JObject) - { - var valueAccept = value as JObject; - foreach (var property in valueAccept.Properties()) - { - string pKey = property.Name; - object pValue = property.Value; - var fullSubName = name + '[' + pKey + ']'; - PrepareFormFieldsFromObject(fullSubName, pValue, keys, propInfo, arrayDeserializationFormat); - } - } - else if (value is IList) - { - var enumerator = ((IEnumerable)value).GetEnumerator(); - - var hasNested = false; - while (enumerator.MoveNext()) - { - var subValue = enumerator.Current; - if (subValue != null && (subValue is JObject || subValue is IList || subValue is IDictionary || !subValue.GetType().Namespace.StartsWith("System"))) - { - hasNested = true; - break; - } - } - - int i = 0; - enumerator.Reset(); - while (enumerator.MoveNext()) - { - var fullSubName = name + '[' + i + ']'; - if (!hasNested && arrayDeserializationFormat == ArrayDeserialization.UnIndexed) - { - fullSubName = name + "[]"; - } - else if (!hasNested && arrayDeserializationFormat == ArrayDeserialization.Plain) - { - fullSubName = name; - } - - var subValue = enumerator.Current; - if (subValue == null) - { - continue; - } - - PrepareFormFieldsFromObject(fullSubName, subValue, keys, propInfo, arrayDeserializationFormat); - i++; - } - } - else if (value is JToken) - { - keys.Add(new KeyValuePair(name, value.ToString())); - } - else if (value is Enum) - { - var enumValue = JsonSerialize(value).Trim('\"'); - keys.Add(new KeyValuePair(name, enumValue)); - } - else if (value is IDictionary) - { - var obj = (IDictionary)value; - foreach (var sName in obj.Keys) - { - var subName = sName.ToString(); - var subValue = obj[subName]; - string fullSubName = string.IsNullOrWhiteSpace(name) ? subName : name + '[' + subName + ']'; - PrepareFormFieldsFromObject(fullSubName, subValue, keys, propInfo, arrayDeserializationFormat); - } - } - else if (!value.GetType().Namespace.StartsWith("System")) - { - // Custom object Iterate through its properties -#if NETSTANDARD1_3 - var enumerator = value.GetType().GetRuntimeProperties().GetEnumerator(); -#else - var enumerator = value.GetType().GetProperties().GetEnumerator();; -#endif - PropertyInfo pInfo = null; - var t = new JsonPropertyAttribute().GetType(); - while (enumerator.MoveNext()) - { - pInfo = enumerator.Current as PropertyInfo; - - var jsonProperty = (JsonPropertyAttribute)pInfo.GetCustomAttributes(t, true).FirstOrDefault(); - var subName = (jsonProperty != null) ? jsonProperty.PropertyName : pInfo.Name; - string fullSubName = string.IsNullOrWhiteSpace(name) ? subName : name + '[' + subName + ']'; - var subValue = pInfo.GetValue(value, null); - PrepareFormFieldsFromObject(fullSubName, subValue, keys, pInfo, arrayDeserializationFormat); - } - } - else if (value is DateTime) - { - string convertedValue = null; -#if NETSTANDARD1_3 - IEnumerable pInfo = null; -#else - object[] pInfo = null; -#endif - if (propInfo != null) - { - pInfo = propInfo.GetCustomAttributes(true); - } - - if (pInfo != null) - { - foreach (object attr in pInfo) - { - JsonConverterAttribute converterAttr = attr as JsonConverterAttribute; - if (converterAttr != null) - { - convertedValue = JsonSerialize(value, (JsonConverter)Activator.CreateInstance(converterAttr.ConverterType, converterAttr.ConverterParameters)).Replace("\"", string.Empty); - } - } - } - - keys.Add(new KeyValuePair(name, convertedValue ?? ((DateTime)value).ToString(DateTimeFormat))); - } - else - { - keys.Add(new KeyValuePair(name, value)); - } - - return keys; - } - - /// - /// Add/update entries with the new dictionary. - /// - /// first dictionary. - /// second dictionary. - public static void Add(this Dictionary dictionary, Dictionary dictionary2) - { - foreach (var kvp in dictionary2) - { - dictionary[kvp.Key] = kvp.Value; - } - } - - /// - /// Runs asynchronous tasks synchronously and throws the first caught exception. - /// - /// The task to be run synchronously. - public static void RunTaskSynchronously(Task t) - { - try - { - t.Wait(); - } - catch (AggregateException e) - { - if (e.InnerExceptions.Count > 0) - { - throw e.InnerExceptions[0]; - } - else - { - throw; - } - } - } - - /// - /// Creates a deep clone of an object by serializing it into a json string - /// and then deserializing back into an object. - /// - /// The type of the obj parameter as well as the return object. - /// The object to clone. - /// Template. - internal static T DeepCloneObject(T obj) - { - return JsonDeserialize(JsonSerialize(obj)); - } - - /// - /// StringBuilder extension method to implement IndexOf functionality. - /// This does a StringComparison.Ordinal kind of comparison. - /// - /// The string builder to find the index in. - /// The string to locate in the string builder. - /// The index of string inside the string builder. - private static int IndexOf(StringBuilder stringBuilder, string strCheck) - { - if (stringBuilder == null) - { - throw new ArgumentNullException("stringBuilder"); - } - - if (strCheck == null) - { - return 0; - } - - // iterate over the input - for (int inputCounter = 0; inputCounter < stringBuilder.Length; inputCounter++) - { - int matchCounter; - - // attempt to locate a potential match - for (matchCounter = 0; - (matchCounter < strCheck.Length) - && (inputCounter + matchCounter < stringBuilder.Length) - && (stringBuilder[inputCounter + matchCounter] == strCheck[matchCounter]); - matchCounter++) - { - } - - // verify the match - if (matchCounter == strCheck.Length) - { - return inputCounter; - } - } - - return -1; - } - - /// - /// Used for flattening a collection of objects into a string. - /// - /// Array of elements to flatten. - /// Format string to use for array flattening. - /// Separator to use for string concat. - /// Representative string made up of array elements. - private static string FlattenCollection( - ICollection array, - ArrayDeserialization fmt, - char separator, - bool urlEncode, - string key = "") - { - StringBuilder builder = new StringBuilder(); - - string format = string.Empty; - if (fmt == ArrayDeserialization.UnIndexed) - { - format = string.Format("{0}[]={{0}}{{1}}", key); - } - else if (fmt == ArrayDeserialization.Indexed) - { - format = string.Format("{0}[{{2}}]={{0}}{{1}}", key); - } - else if (fmt == ArrayDeserialization.Plain) - { - format = string.Format("{0}={{0}}{{1}}", key); - } - else if (fmt == ArrayDeserialization.Csv || fmt == ArrayDeserialization.Psv || fmt == ArrayDeserialization.Tsv) - { - builder.Append(string.Format("{0}=", key)); - format = "{0}{1}"; - } - else - { - format = "{0}{1}"; - } - - // append all elements in the array into a string - int index = 0; - foreach (object element in array) - { - builder.AppendFormat(format, GetElementValue(element, urlEncode), separator, index++); - } - - // remove the last separator, if appended - if ((builder.Length > 1) && (builder[builder.Length - 1] == separator)) - { - builder.Length -= 1; - } - - return builder.ToString(); - } - - private static string GetElementValue(object element, bool urlEncode) - { - string elemValue = null; - - // replace null values with empty string to maintain index order - if (element == null) - { - elemValue = string.Empty; - } - else if (element is DateTime) - { - elemValue = ((DateTime)element).ToString(DateTimeFormat); - } - else if (element is DateTimeOffset) - { - elemValue = ((DateTimeOffset)element).ToString(DateTimeFormat); - } - else - { - elemValue = element.ToString(); - } - - if (urlEncode) - { - elemValue = Uri.EscapeDataString(elemValue); - } - - return elemValue; - } - - /// - /// Apply appropriate serialization to query parameters. - /// - /// Parameters. - /// List of processed query parameters. - private static List> ProcessQueryParamsForCustomTypes(IEnumerable> parameters) - { - var processedParameters = new List>(); - - foreach (var kvp in parameters) - { - // ignore null values - if (kvp.Value == null) - { - continue; - } - - if (kvp.Value.GetType().Namespace.StartsWith("System")) - { - if (kvp.Value is IList) - { - var list = kvp.Value as IList; - - if (list?.Count != 0) - { - var item = list[0]; - - if (item.GetType().Namespace.StartsWith("System")) - { - // List of scalar type - processedParameters.Add(kvp); - } - else - { - // List of custom type - var innerList = PrepareFormFieldsFromObject(kvp.Key, kvp.Value, arrayDeserializationFormat: ArrayDeserialization.Indexed); - innerList = ApplySerializationFormatToScalarArrays(innerList); - processedParameters.AddRange(innerList); - } - } - } - else - { - // Scalar type - processedParameters.Add(kvp); - } - } - else - { - // Custom type - var list = PrepareFormFieldsFromObject(kvp.Key, kvp.Value, arrayDeserializationFormat: ArrayDeserialization.Indexed); - list = ApplySerializationFormatToScalarArrays(list); - processedParameters.AddRange(list); - } - } - - return processedParameters; - } - - /// - /// Apply serialization to scalar arrays in custom objects. - /// - /// Parameters. - /// List of processed query parameters. - private static List> ApplySerializationFormatToScalarArrays(IEnumerable> parameters) - { - var processedParams = new List>(); - var unprocessedParams = parameters.Where(x => IsScalarValuesArray(x.Key) != true); - - // Extract scalar arrays and group them by key - var arraysGroupedByKey = parameters - .Where(x => IsScalarValuesArray(x.Key) == true) - .Select(x => - { - return new KeyValuePair( - x.Key.Substring(0, x.Key.LastIndexOf('[')), - x.Value); - }) - .GroupBy(x => x.Key); - - foreach (var group in arraysGroupedByKey) - { - var key = group.Key; - var values = new List(); - foreach (var aaa in group) - { - values.Add(aaa.Value); - } - - processedParams.Add(new KeyValuePair(key, values)); - } - - processedParams.AddRange(unprocessedParams); - - return processedParams; - } - - /// - /// Checks if the provided string is part of a scalar array - /// - /// Input string. - /// True or False - private static bool IsScalarValuesArray(string input) - { - var regex = new Regex("\\[\\d+\\]$", RegexOptions.IgnoreCase); - return regex.IsMatch(input); - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ArrayDeserialization.cs b/DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ArrayDeserialization.cs deleted file mode 100644 index 84156ed07..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Standard/Utilities/ArrayDeserialization.cs +++ /dev/null @@ -1,48 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Standard.Utilities -{ - using Newtonsoft.Json.Converters; - - /// - /// This enumeration has ArrayDeserialization format. - /// - public enum ArrayDeserialization - { - /// - /// Example: variableName[0] = value1 - /// - Indexed = 0, - - /// - /// Example: variableName[] = value1 - /// - UnIndexed = 1, - - /// - /// Example: variableName = value1, variableName = value 2 - /// - Plain = 2, - - /// - /// Example: variableName = value1,value2 - /// - Csv = 3, - - /// - /// Example: variableName = value1\tvalue2 - /// - Tsv = 4, - - /// - /// Example: variableName = value1|value2 - /// - Psv = 5, - - /// - /// Example: Ignore format - /// - None = 6, - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/ControllerTestBase.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/ControllerTestBase.cs deleted file mode 100644 index 7064c4dad..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/ControllerTestBase.cs +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - using NUnit.Framework; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Models; - using ThoughtSpotPublicRESTAPI.Tests.Helpers; - - /// - /// ControllerTestBase Class. - /// - [TestFixture] - public class ControllerTestBase - { - /// - /// Assert precision. - /// - protected const double AssertPrecision = 0.1; - - /// - /// Gets HttpCallBackHandler. - /// - internal HttpCallBack HttpCallBackHandler { get; private set; } - - /// - /// Gets ThoughtSpotPublicRESTAPIClient Client. - /// - protected ThoughtSpotPublicRESTAPIClient Client { get; private set; } - - /// - /// Set up the client. - /// - [OneTimeSetUp] - public void SetUp() - { - ThoughtSpotPublicRESTAPIClient config = ThoughtSpotPublicRESTAPIClient.CreateFromEnvironment(); - this.HttpCallBackHandler = new HttpCallBack(); - this.Client = config.ToBuilder() - .HttpCallBack(this.HttpCallBackHandler) - .Build(); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/GroupControllerTest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/GroupControllerTest.cs deleted file mode 100644 index eb8bbc09c..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/GroupControllerTest.cs +++ /dev/null @@ -1,112 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using NUnit.Framework; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Controllers; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - using ThoughtSpotPublicRESTAPI.Tests.Helpers; - - /// - /// GroupControllerTest. - /// - [TestFixture] - public class GroupControllerTest : ControllerTestBase - { - /// - /// Controller instance (for all tests). - /// - private GroupController controller; - - /// - /// Setup test class. - /// - [OneTimeSetUp] - public void SetUpDerived() - { - this.controller = this.Client.GroupController; - } - - /// - /// To get the details of a specific group by name or id, use this endpoint. - ///At Least one value needed. When both are given id will be considered to fetch user information.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2GetGroup() - { - // Parameters for the API call - string name = null; - string id = null; - - // Perform API call - Standard.Models.GroupResponse result = null; - try - { - result = await this.controller.RestapiV2GetGroupAsync(name, id); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - - /// - /// To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2DeleteGroup() - { - // Parameters for the API call - string name = null; - string id = null; - - // Perform API call - bool result = false; - try - { - result = await this.controller.RestapiV2DeleteGroupAsync(name, id); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/HttpCallBackEventsHandler.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/HttpCallBackEventsHandler.cs deleted file mode 100644 index 0e10e82cd..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/HttpCallBackEventsHandler.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests.Helpers -{ - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - - /// - /// HttpCallBackEventsHandler Class. - /// - public class HttpCallBackEventsHandler - { - /// - /// Gets Http Request. - /// - public HttpRequest Request { get; private set; } - - /// - /// Gets Http Response. - /// - public HttpResponse Response { get; private set; } - - /// - /// OnBeforeHttpRequestEventHandler. - /// - /// IHttpClient object. - /// Http request object. - internal void OnBeforeHttpRequestEventHandler(IHttpClient source, HttpRequest request) - { - this.Request = request; - } - - /// - /// OnAfterHttpResponseEventHandler. - /// - /// IHttpClient object. - /// Http response object. - internal void OnAfterHttpResponseEventHandler(IHttpClient source, HttpResponse response) - { - this.Response = response; - } - } -} diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/TestHelper.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/TestHelper.cs deleted file mode 100644 index 005b1eb24..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/Helpers/TestHelper.cs +++ /dev/null @@ -1,539 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests.Helpers -{ - using System; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Security.Cryptography; - using System.Text; - using Newtonsoft.Json.Linq; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Request; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - - /// - /// TestHelper Class. - /// - public static class TestHelper - { - /// - /// Check if left array of objects is a subset of right array. - /// - /// Left array as a JSON string. - /// Right array as a JSON string. - /// Check primitive values for equality?. - /// Are extra elements allowed in right array?. - /// Should elements in right be compared in order to left?. - /// True if it is a subset. - public static bool IsArrayOfJsonObjectsProperSubsetOf( - string leftObject, - string rightObject, - bool checkValues, - bool allowExtra, - bool isOrdered) - { - // Deserialize left and right objects from their respective strings - JArray left = ApiHelper.JsonDeserialize(leftObject); - JArray right = ApiHelper.JsonDeserialize(rightObject); - - return IsArrayOfJsonObjectsProperSubsetOf(left, right, checkValues, allowExtra, isOrdered); - } - - /// - /// Check if left array of objects is a subset of right array. - /// - /// Left array. - /// Right array. - /// Check primitive values for equality?. - /// Are extra elements allowed in right array?. - /// Should elements in right be compared in order to left?. - /// True if it is a subset. - public static bool IsArrayOfJsonObjectsProperSubsetOf( - JArray leftList, - JArray rightList, - bool checkValues, - bool allowExtra, - bool isOrdered) - { - // Return false if size different and checking was strict - if ((!allowExtra) && (rightList.Count != leftList.Count)) - { - return false; - } - - // Create list iterators - var leftIter = leftList.GetEnumerator(); - var rightIter = rightList.GetEnumerator(); - - // Iterate left list and check if each value is present in the right list - while (leftIter.MoveNext()) - { - var leftTree = leftIter.Current; - bool found = false; - - // restart right iterator if ordered comparision is not required - if (!isOrdered) - { - rightIter = rightList.GetEnumerator(); - } - - while (rightIter.MoveNext()) - { - if (IsProperSubsetOf((JObject)leftTree, (JObject)rightIter.Current, checkValues, allowExtra, isOrdered)) - { - found = true; - break; - } - } - - if (!found) - { - return false; - } - } - - return true; - } - - /// - /// Check whether the a list (as JSON string) is a subset of another list (as JSON string). - /// - /// Expected List. - /// List to check. - /// Are extras allowed in the list to check?. - /// Should checking be in order?. - /// True if it is a subset. - public static bool IsListProperSubsetOf( - string leftListJson, - string rightListJson, - bool allowExtra, - bool isOrdered) - { - // Deserialize left and right lists from their respective strings - JArray left = ApiHelper.JsonDeserialize(leftListJson); - JArray right = ApiHelper.JsonDeserialize(rightListJson); - - return IsListProperSubsetOf(left, right, allowExtra, isOrdered); - } - - /// - /// Check whether the a list is a subset of another list. - /// - /// Expected List. - /// List to check. - /// Are extras allowed in the list to check?. - /// Should checking be in order?. - /// True if it is a subset. - public static bool IsListProperSubsetOf( - JArray leftList, - JArray rightList, - bool allowExtra, - bool isOrdered) - { - if (isOrdered) - { - if ((!allowExtra) && (rightList.Count != leftList.Count)) - { - return false; - } - else if (rightList.Count < leftList.Count) - { - return false; - } - - int rIndex = 0, lIndex = 0; - while (rIndex < rightList.Count) - { - if (rightList[rIndex].ToString() == leftList[lIndex].ToString()) - { - lIndex++; - } - - rIndex++; - } - - return lIndex == leftList.Count; - } - else - { - if ((!allowExtra) && (rightList.Count != leftList.Count)) - { - return false; - } - - HashSet rHashSet = new HashSet(rightList); - - return rHashSet.IsSupersetOf(leftList); - } - } - - /// - /// Recursively check whether the left headers map is a proper subset of the right headers map. - /// - /// Left headers map. - /// Right headers map. - /// True if it is a subset. - public static bool AreHeadersProperSubsetOf( - Dictionary leftDict, - Dictionary rightDict) - { - Dictionary leftDictInv = new Dictionary(leftDict, StringComparer.CurrentCultureIgnoreCase); - Dictionary rightDictInv = new Dictionary(rightDict, StringComparer.CurrentCultureIgnoreCase); - - foreach (var leftKey in leftDictInv.Keys) - { - if (!leftDictInv.ContainsKey(leftKey)) - { - return false; - } - - if (leftDictInv[leftKey] == null) - { - continue; - } - - if (!leftDictInv[leftKey].Equals(rightDictInv[leftKey])) - { - return false; - } - } - - return true; - } - - /// - /// Compare the input stream to file byte-by-byte. - /// - /// First input. - /// Second input. - /// True if stream contains the same content as the file. - public static bool IsSameAsFile(string file, Stream input) - { - return IsSameInputStream(GetFile(file).FileStream, input); - } - - /// - /// Compare two input streams. - /// - /// First stream. - /// Second stream. - /// True if streams contain the same content. - public static bool IsSameInputStream(Stream input1, Stream input2) - { - if (input1 == input2) - { - return true; - } - - int ch = input1.ReadByte(); - while (ch != -1) - { - int ch2 = input2.ReadByte(); - if (ch != ch2) - { - return false; - } - - ch = input1.ReadByte(); - } - - // should reach end of stream - bool input2Finished = input2.ReadByte() == -1; - - try - { - input1.Dispose(); - } - catch - { - } - - try - { - input2.Dispose(); - } - catch - { - } - - return input2Finished; - } - - /// - /// Downloads a given url and return a path to its local version. - /// Files are cached.Second call for the same URL will return cached version. - /// - /// URL to download. - /// Absolute path to the local downloaded version of file. - public static FileStreamInfo GetFile(string url) - { - string originalFileName = Path.GetFileName(url); - string filename = "sdk_tests" + ToSHA1(url) + ".tmp"; - string tmpPath = Path.GetTempPath(); - string filePath = Path.Combine(tmpPath, filename); - FileInfo fileInfo = new FileInfo(filePath); - FileStream fileStream = null; - - // if file does not exist locally, download it - if (!fileInfo.Exists) - { - var httpClientConfiguration = new HttpClientConfiguration.Builder().Build(); - IHttpClient client = new HttpClientWrapper(httpClientConfiguration); - HttpRequest req = client.Get(url); - HttpResponse resp = client.ExecuteAsBinary(req); - fileStream = System.IO.File.Create(filePath); - byte[] buffer = new byte[2048]; - int len = resp.RawBody.Read(buffer, 0, 2048); - - while (len > 0) - { - fileStream.Write(buffer, 0, len); - len = resp.RawBody.Read(buffer, 0, 2048); - } - - fileStream.Position = 0; - } - else - { - fileStream = System.IO.File.OpenRead(filePath); - } - - return new FileStreamInfo(fileStream, originalFileName); - } - - /// - /// Get SHA1 hash of a string. - /// - /// The string to convert. - /// SHA1 hash. - public static string ToSHA1(string convertme) - { - byte[] bytes = Encoding.UTF8.GetBytes(convertme); - using (var sha1 = SHA1.Create()) - { - byte[] hashBytes = sha1.ComputeHash(bytes); - return ByteArrayToHexString(hashBytes); - } - } - - /// - /// Convert byte array to the hexadecimal representation in string. - /// - /// Byte array to convert. - /// Hex representation in string. - public static string ByteArrayToHexString(byte[] bytes) - { - var sb = new StringBuilder(); - foreach (byte b in bytes) - { - var hex = b.ToString("x2"); - sb.Append(hex); - } - - return sb.ToString(); - } - - /// - /// Checks if the left items set is the superset of right items set. - /// - /// Type of items. - /// Left items set. - /// Right items set. - /// True if the left has all items of right. - public static bool IsSuperSetOf(this IEnumerable left, IEnumerable right) - { - HashSet lHashSet = new HashSet(left); - return lHashSet.IsSupersetOf(right); - } - - /// - /// Checks if the left items ordered set is the ordered superset of right items ordered set. - /// - /// Type of items. - /// Left items set. - /// Right items set. - /// Should the size of left and right be equal as well. - /// True if the left has all items of right in the same order. - public static bool IsOrderedSupersetOf(this IEnumerable left, IEnumerable right, bool checkSize = false) - { - var lItr = left.GetEnumerator(); - var rItr = right.GetEnumerator(); - - while (lItr.MoveNext()) - { - T lCurrent = lItr.Current; - - // right list ended prematurely - if (!rItr.MoveNext()) - { - return false; - } - - T rCurrent = rItr.Current; - - if (!lCurrent.Equals(rCurrent)) - { - return false; - } - } - - // left and right should also of the same size - if (checkSize) - { - // right items should have been exhaustively read? - if (rItr.MoveNext()) - { - return false; - } - } - - return true; - } - - /// - /// Recursively check whether the left JSON object is a proper subset of the right JSON object. - /// - /// Left JSON object as string. - /// rightObject Right JSON object as string. - /// Check primitive values for equality?. - /// Are extra elements allowed in right array?. - /// Should elements in right be compared in order to left?. - /// True, if the given object is a proper subset of other other. - internal static bool IsJsonObjectProperSubsetOf( - string leftObject, - string rightObject, - bool checkValues, - bool allowExtra, - bool isOrdered) - { - return IsProperSubsetOf( - ApiHelper.JsonDeserialize(leftObject), - ApiHelper.JsonDeserialize(rightObject), - checkValues, - allowExtra, - isOrdered); - } - - /// - /// Convert an InputStream to a string (utility function). - /// - /// The input stream to read. - /// string read from the stream. - internal static string ConvertStreamToString(Stream inStream) - { - using (StreamReader reader = new StreamReader(inStream)) - { - var str = reader.ReadToEnd(); - return str; - } - } - - /// - /// Recursively check whether the leftTree is a proper subset of the right tree. - /// - /// Left tree. - /// Right tree. - /// Check primitive values for equality?. - /// Are extra elements allowed in right array?. - /// Should elements in right be compared in order to left?. - /// Boolean. - private static bool IsProperSubsetOf( - JObject leftTree, - JObject rightTree, - bool checkValues, - bool allowExtra, - bool isOrdered) - { - foreach (var property in leftTree.Properties()) - { - // Check if key exists - if (rightTree.Property(property.Name) == null) - { - return false; - } - - object leftVal = property.Value; - object rightVal = rightTree.Property(property.Name).Value; - - if (leftVal is JObject) - { - // If left value is tree, right value should be be tree too - if (rightVal is JObject) - { - if (!IsProperSubsetOf( - (JObject)leftVal, - (JObject)rightVal, - checkValues, - allowExtra, - isOrdered)) - { - return false; - } - } - else - { - return false; - } - } - else - { - // Value comparison if checkValues - if (checkValues) - { - // If left value is a primitive, check if it equals right value - if (leftVal == null) - { - if (rightVal != null) - { - return false; - } - } - else if (leftVal is JArray) - { - if (!(rightVal is JArray)) - { - return false; - } - - // is array of objects - if (((JArray)leftVal).First is JObject) - { - if (!IsArrayOfJsonObjectsProperSubsetOf( - (JArray)leftVal, - (JArray)rightVal, - checkValues, - allowExtra, - isOrdered)) - { - return false; - } - } - else - { - if (!IsListProperSubsetOf( - (JArray)leftVal, - (JArray)rightVal, - allowExtra, - isOrdered)) - { - return false; - } - } - } - else if (!leftVal.Equals(rightVal)) - { - return false; - } - } - } - } - - return true; - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/MetadataControllerTest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/MetadataControllerTest.cs deleted file mode 100644 index 208ee2287..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/MetadataControllerTest.cs +++ /dev/null @@ -1,146 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using NUnit.Framework; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Controllers; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - using ThoughtSpotPublicRESTAPI.Tests.Helpers; - - /// - /// MetadataControllerTest. - /// - [TestFixture] - public class MetadataControllerTest : ControllerTestBase - { - /// - /// Controller instance (for all tests). - /// - private MetadataController controller; - - /// - /// Setup test class. - /// - [OneTimeSetUp] - public void SetUpDerived() - { - this.controller = this.Client.MetadataController; - } - - /// - /// To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2GetTag() - { - // Parameters for the API call - string name = null; - string id = null; - - // Perform API call - Standard.Models.MetadataTagResponse result = null; - try - { - result = await this.controller.RestapiV2GetTagAsync(name, id); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - - /// - /// To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2GetHomeLiveboard() - { - // Parameters for the API call - string userName = null; - string userId = null; - - // Perform API call - Standard.Models.HomeLiveboardResponse result = null; - try - { - result = await this.controller.RestapiV2GetHomeLiveboardAsync(userName, userId); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - - /// - /// To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2DeleteTag() - { - // Parameters for the API call - string name = null; - string id = null; - - // Perform API call - bool result = false; - try - { - result = await this.controller.RestapiV2DeleteTagAsync(name, id); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/OrgControllerTest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/OrgControllerTest.cs deleted file mode 100644 index 19ad920b4..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/OrgControllerTest.cs +++ /dev/null @@ -1,119 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using NUnit.Framework; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Controllers; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - using ThoughtSpotPublicRESTAPI.Tests.Helpers; - - /// - /// OrgControllerTest. - /// - [TestFixture] - public class OrgControllerTest : ControllerTestBase - { - /// - /// Controller instance (for all tests). - /// - private OrgController controller; - - /// - /// Setup test class. - /// - [OneTimeSetUp] - public void SetUpDerived() - { - this.controller = this.Client.OrgController; - } - - /// - /// To get the details of a specific organization by name or id, use this endpoint. - /// - ///At least one value needed. When both are given,then id will be considered to fetch organization information. - /// - ///Requires Administration privilege for tenant.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2GetOrg() - { - // Parameters for the API call - string name = null; - int? id = null; - - // Perform API call - Standard.Models.OrgsResponse result = null; - try - { - result = await this.controller.RestapiV2GetOrgAsync(name, id); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - - /// - /// To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. - /// - ///At least one value is needed. When both id and name are given, then id will be considered. - /// - ///Requires Administration privilege for tenant.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2DeleteOrg() - { - // Parameters for the API call - string name = null; - int? id = null; - - // Perform API call - bool result = false; - try - { - result = await this.controller.RestapiV2DeleteOrgAsync(name, id); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/Properties/AssemblyInfo.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 2104422b0..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,32 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ThoughtSpotPublicRESTAPI.Tests")] -[assembly: AssemblyDescription("Automatically generated using APIMatic")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ThoughtSpotPublicRESTAPI.Tests")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/SecurityControllerTest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/SecurityControllerTest.cs deleted file mode 100644 index 0a464540f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/SecurityControllerTest.cs +++ /dev/null @@ -1,78 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using NUnit.Framework; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Controllers; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - using ThoughtSpotPublicRESTAPI.Tests.Helpers; - - /// - /// SecurityControllerTest. - /// - [TestFixture] - public class SecurityControllerTest : ControllerTestBase - { - /// - /// Controller instance (for all tests). - /// - private SecurityController controller; - - /// - /// Setup test class. - /// - [OneTimeSetUp] - public void SetUpDerived() - { - this.controller = this.Client.SecurityController; - } - - /// - /// Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. - /// - ///Requires administration privilege. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2GetPermissionForPrincipal() - { - // Parameters for the API call - string id = null; - string name = null; - - // Perform API call - Standard.Models.PrincipalSearchResponse result = null; - try - { - result = await this.controller.RestapiV2GetPermissionForPrincipalAsync(id, name); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/SessionControllerTest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/SessionControllerTest.cs deleted file mode 100644 index fc2c44a2a..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/SessionControllerTest.cs +++ /dev/null @@ -1,81 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using NUnit.Framework; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Controllers; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - using ThoughtSpotPublicRESTAPI.Tests.Helpers; - - /// - /// SessionControllerTest. - /// - [TestFixture] - public class SessionControllerTest : ControllerTestBase - { - /// - /// Controller instance (for all tests). - /// - private SessionController controller; - - /// - /// Setup test class. - /// - [OneTimeSetUp] - public void SetUpDerived() - { - this.controller = this.Client.SessionController; - } - - /// - /// You can programmatically create login session for a user in ThoughtSpot using this endpoint. - /// - ///You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. - /// - ///userName and password input is given precedence over "Authorization" header, when both are included in the request.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2Login() - { - // Parameters for the API call - string userName = null; - string password = null; - bool? rememberMe = null; - - // Perform API call - Standard.Models.SessionLoginResponse result = null; - try - { - result = await this.controller.RestapiV2LoginAsync(userName, password, rememberMe); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/ThoughtSpotPublicRESTAPI.Tests.csproj b/DotNet/ThoughtSpotPublicRESTAPI.Tests/ThoughtSpotPublicRESTAPI.Tests.csproj deleted file mode 100644 index 485ec496f..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/ThoughtSpotPublicRESTAPI.Tests.csproj +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - netcoreapp3.1 - false - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.Tests/UserControllerTest.cs b/DotNet/ThoughtSpotPublicRESTAPI.Tests/UserControllerTest.cs deleted file mode 100644 index d3cdb7efb..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.Tests/UserControllerTest.cs +++ /dev/null @@ -1,113 +0,0 @@ -// -// Copyright (c) APIMatic. All rights reserved. -// -namespace ThoughtSpotPublicRESTAPI.Tests -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Threading.Tasks; - using Newtonsoft.Json.Converters; - using NUnit.Framework; - using ThoughtSpotPublicRESTAPI.Standard; - using ThoughtSpotPublicRESTAPI.Standard.Controllers; - using ThoughtSpotPublicRESTAPI.Standard.Exceptions; - using ThoughtSpotPublicRESTAPI.Standard.Http.Client; - using ThoughtSpotPublicRESTAPI.Standard.Http.Response; - using ThoughtSpotPublicRESTAPI.Standard.Utilities; - using ThoughtSpotPublicRESTAPI.Tests.Helpers; - - /// - /// UserControllerTest. - /// - [TestFixture] - public class UserControllerTest : ControllerTestBase - { - /// - /// Controller instance (for all tests). - /// - private UserController controller; - - /// - /// Setup test class. - /// - [OneTimeSetUp] - public void SetUpDerived() - { - this.controller = this.Client.UserController; - } - - /// - /// To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2GetUser() - { - // Parameters for the API call - string name = null; - string id = null; - - // Perform API call - Standard.Models.UserResponse result = null; - try - { - result = await this.controller.RestapiV2GetUserAsync(name, id); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - - /// - /// To remove a user from the ThoughtSpot system, use this endpoint. - ///At Least one value needed. When both are given user id will be considered to delete user.. - /// - /// A representing the asynchronous unit test. - [Test] - public async Task TestTestRestapiV2DeleteUser() - { - // Parameters for the API call - string name = null; - string id = null; - int? orgId = null; - - // Perform API call - bool result = false; - try - { - result = await this.controller.RestapiV2DeleteUserAsync(name, id, orgId); - } - catch (ApiException) - { - } - - // Test response code - Assert.AreEqual(200, this.HttpCallBackHandler.Response.StatusCode, "Status should be 200"); - - // Test headers - Dictionary headers = new Dictionary(); - headers.Add("Content-Type", "application/json"); - - Assert.IsTrue( - TestHelper.AreHeadersProperSubsetOf ( - headers, - this.HttpCallBackHandler.Response.Headers), - "Headers should match"); - } - } -} \ No newline at end of file diff --git a/DotNet/ThoughtSpotPublicRESTAPI.sln b/DotNet/ThoughtSpotPublicRESTAPI.sln deleted file mode 100644 index cf560b250..000000000 --- a/DotNet/ThoughtSpotPublicRESTAPI.sln +++ /dev/null @@ -1,27 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.14 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThoughtSpotPublicRESTAPI.Standard", "ThoughtSpotPublicRESTAPI.Standard/ThoughtSpotPublicRESTAPI.Standard.csproj", "{319244ae-9be0-4914-bb42-24389c601424}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThoughtSpotPublicRESTAPI.Tests", "ThoughtSpotPublicRESTAPI.Tests/ThoughtSpotPublicRESTAPI.Tests.csproj", "{12992bf9-07b2-4f8c-8269-9841b0e236a7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {319244ae-9be0-4914-bb42-24389c601424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {319244ae-9be0-4914-bb42-24389c601424}.Debug|Any CPU.Build.0 = Debug|Any CPU - {319244ae-9be0-4914-bb42-24389c601424}.Release|Any CPU.ActiveCfg = Release|Any CPU - {319244ae-9be0-4914-bb42-24389c601424}.Release|Any CPU.Build.0 = Release|Any CPU - {12992bf9-07b2-4f8c-8269-9841b0e236a7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {12992bf9-07b2-4f8c-8269-9841b0e236a7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {12992bf9-07b2-4f8c-8269-9841b0e236a7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {12992bf9-07b2-4f8c-8269-9841b0e236a7}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/DotNet/doc/api-exception.md b/DotNet/doc/api-exception.md deleted file mode 100644 index e44b802b7..000000000 --- a/DotNet/doc/api-exception.md +++ /dev/null @@ -1,18 +0,0 @@ - -# ApiException Class - -This is the base class for all exceptions that represent an error response from the server. - -## Properties - -| Name | Description | Type | -| --- | --- | --- | -| ResponseCode | Gets the HTTP response code from the API request. | `int` | -| HttpContext | Gets or sets the HttpContext for the request and response. | `HttpContext` | - -## Constructors - -| Name | Description | -| --- | --- | -| `ApiException(string reason, HttpContext context = null)` | Initializes a new instance of the class. | - diff --git a/DotNet/doc/client.md b/DotNet/doc/client.md deleted file mode 100644 index ef18530f4..000000000 --- a/DotNet/doc/client.md +++ /dev/null @@ -1,77 +0,0 @@ - -# Client Class Documentation - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `BaseUrl` | `string` | *Default*: `"https://localhost:443"` | -| `Environment` | Environment | The API environment.
**Default: `Environment.Production`** | -| `Timeout` | `TimeSpan` | Http client timeout.
*Default*: `TimeSpan.FromSeconds(100)` | -| `AccessToken` | `string` | The OAuth 2.0 Access Token to use for API requests. | - -The API client can be initialized as follows: - -```csharp -ThoughtSpotPublicRESTAPI.Standard.ThoughtSpotPublicRESTAPIClient client = new ThoughtSpotPublicRESTAPI.Standard.ThoughtSpotPublicRESTAPIClient.Builder() - .AccessToken("AccessToken") - .Environment(ThoughtSpotPublicRESTAPI.Standard.Environment.Production) - .BaseUrl("https://localhost:443") - .HttpClientConfig(config => config.NumberOfRetries(0)) - .Build(); -``` - -## ThoughtSpot Public REST APIClient Class - -The gateway for the SDK. This class acts as a factory for the Controllers and also holds the configuration of the SDK. - -### Controllers - -| Name | Description | -| --- | --- | -| UserController | Gets UserController controller. | -| GroupController | Gets GroupController controller. | -| MetadataController | Gets MetadataController controller. | -| DatabaseController | Gets DatabaseController controller. | -| ConnectionController | Gets ConnectionController controller. | -| DataController | Gets DataController controller. | -| LogsController | Gets LogsController controller. | -| CustomActionsController | Gets CustomActionsController controller. | -| SecurityController | Gets SecurityController controller. | -| OrgController | Gets OrgController controller. | -| SessionController | Gets SessionController controller. | -| AdminController | Gets AdminController controller. | -| ReportController | Gets ReportController controller. | -| MaterializationController | Gets MaterializationController controller. | - -### Properties - -| Name | Description | Type | -| --- | --- | --- | -| HttpClientConfiguration | Gets the configuration of the Http Client associated with this client. | `IHttpClientConfiguration` | -| Timeout | Http client timeout. | `TimeSpan` | -| Environment | Current API environment. | `Environment` | -| BaseUrl | BaseUrl value. | `string` | -| AccessTokenCredentials | Gets the access token to use with OAuth 2 authentication. | `IAccessTokenCredentials` | - -### Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `GetBaseUri(Server alias = Server.Default)` | Gets the URL for a particular alias in the current environment and appends it with template parameters. | `string` | -| `ToBuilder()` | Creates an object of the ThoughtSpot Public REST APIClient using the values provided for the builder. | `Builder` | - -## ThoughtSpot Public REST APIClient Builder Class - -Class to build instances of ThoughtSpot Public REST APIClient. - -### Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `HttpClientConfiguration(Action action)` | Gets the configuration of the Http Client associated with this client. | `Builder` | -| `Timeout(TimeSpan timeout)` | Http client timeout. | `Builder` | -| `Environment(Environment environment)` | Current API environment. | `Builder` | -| `BaseUrl(string baseUrl)` | BaseUrl value. | `Builder` | -| `AccessTokenCredentials(IAccessTokenCredentials accessTokenCredentials)` | Gets the access token to use with OAuth 2 authentication. | `Builder` | - diff --git a/DotNet/doc/controllers/admin.md b/DotNet/doc/controllers/admin.md deleted file mode 100644 index 8b1b94ce3..000000000 --- a/DotNet/doc/controllers/admin.md +++ /dev/null @@ -1,275 +0,0 @@ -# Admin - -```csharp -AdminController adminController = client.AdminController; -``` - -## Class Name - -`AdminController` - -## Methods - -* [Restapi V2 Update Cluster Config](../../doc/controllers/admin.md#restapi-v2-update-cluster-config) -* [Restapi V2 Reset User Password](../../doc/controllers/admin.md#restapi-v2-reset-user-password) -* [Restapi V2 Sync Principal](../../doc/controllers/admin.md#restapi-v2-sync-principal) -* [Restapi V2 Change Author of Objects](../../doc/controllers/admin.md#restapi-v2-change-author-of-objects) -* [Restapi V2 Assign Author to Objects](../../doc/controllers/admin.md#restapi-v2-assign-author-to-objects) -* [Restapi V2 Force Logout Users](../../doc/controllers/admin.md#restapi-v2-force-logout-users) - - -# Restapi V2 Update Cluster Config - -To update the Thoughtspot cluster configuration, use this endpoint. - -```csharp -RestapiV2UpdateClusterConfigAsync( - Models.TspublicRestV2AdminConfigurationUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2AdminConfigurationUpdateRequest`](../../doc/models/tspublic-rest-v2-admin-configuration-update-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2AdminConfigurationUpdateRequest(); - -try -{ - bool? result = await adminController.RestapiV2UpdateClusterConfigAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Reset User Password - -To reset the password of a ThoughtSpot user account, use this endpoint. - -It is mandatory to use Authorization header with token of a user with admin access to successfully run this endpoint. - -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```csharp -RestapiV2ResetUserPasswordAsync( - Models.TspublicRestV2AdminResetpasswordRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2AdminResetpasswordRequest`](../../doc/models/tspublic-rest-v2-admin-resetpassword-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2AdminResetpasswordRequest(); -body.NewPassword = "newPassword0"; - -try -{ - bool? result = await adminController.RestapiV2ResetUserPasswordAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Sync Principal - -To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, use this endpoint. - -The payload takes principals containing all users and groups present in the external system. - -The users and user groups in Thoughtspot get updated for any matching inputs. - -Any user and user group present in the input, but not present in the cluster, gets created in cluster. -n You can optionally choose to delete the user and groups from the cluster, that are not present in the input. - -```csharp -RestapiV2SyncPrincipalAsync( - Models.TspublicRestV2AdminSyncprincipalRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2AdminSyncprincipalRequest`](../../doc/models/tspublic-rest-v2-admin-syncprincipal-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/adminsync-principal-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2AdminSyncprincipalRequest(); -body.PrincipalObject = new object(); -body.PrincipalObject.Add(ApiHelper.JsonDeserialize("{\"key1\":\"val1\",\"key2\":\"val2\"}")); - -try -{ - AdminsyncPrincipalResponse result = await adminController.RestapiV2SyncPrincipalAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Change Author of Objects - -To programmatically change the owner of one or several objects from one user account to another, use this endpoint. - -You might want to transfer ownership of objects owned by a user to another active user, when the account is removed from the ThoughtSpot application. - -```csharp -RestapiV2ChangeAuthorOfObjectsAsync( - Models.TspublicRestV2AdminChangeauthorRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2AdminChangeauthorRequest`](../../doc/models/tspublic-rest-v2-admin-changeauthor-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2AdminChangeauthorRequest(); -body.TsObjectId = new List(); -body.TsObjectId.Add("tsObjectId7"); -body.FromUser = new FromUserNameAndIDInput(); -body.ToUser = new ToUserNameAndIDInput(); - -try -{ - bool? result = await adminController.RestapiV2ChangeAuthorOfObjectsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Author to Objects - -To programmatically assign an author to one or several objects, use this endpoint. - -Provide either user name or id as input. When both are given user id will be considered. - -Requires administration privilege. - -```csharp -RestapiV2AssignAuthorToObjectsAsync( - Models.TspublicRestV2AdminAssignauthorRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2AdminAssignauthorRequest`](../../doc/models/tspublic-rest-v2-admin-assignauthor-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2AdminAssignauthorRequest(); -body.TsObjectId = new List(); -body.TsObjectId.Add("tsObjectId7"); - -try -{ - bool? result = await adminController.RestapiV2AssignAuthorToObjectsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Force Logout Users - -To logout one or more users from logged in session, use this endpoint. If no input is provided then all logged in users are force logged out. - -Requires administration privilege - -```csharp -RestapiV2ForceLogoutUsersAsync( - Models.TspublicRestV2AdminForcelogoutRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2AdminForcelogoutRequest`](../../doc/models/tspublic-rest-v2-admin-forcelogout-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2AdminForcelogoutRequest(); - -try -{ - bool? result = await adminController.RestapiV2ForceLogoutUsersAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/connection.md b/DotNet/doc/controllers/connection.md deleted file mode 100644 index 0e739c745..000000000 --- a/DotNet/doc/controllers/connection.md +++ /dev/null @@ -1,516 +0,0 @@ -# Connection - -```csharp -ConnectionController connectionController = client.ConnectionController; -``` - -## Class Name - -`ConnectionController` - -## Methods - -* [Restapi V2 Get Connection](../../doc/controllers/connection.md#restapi-v2-get-connection) -* [Restapi V2 Get Connection Database](../../doc/controllers/connection.md#restapi-v2-get-connection-database) -* [Restapi V2 Create Connection](../../doc/controllers/connection.md#restapi-v2-create-connection) -* [Restapi V2 Update Connection](../../doc/controllers/connection.md#restapi-v2-update-connection) -* [Restapi V2 Delete Connection](../../doc/controllers/connection.md#restapi-v2-delete-connection) -* [Restapi V2 Add Table to Connection](../../doc/controllers/connection.md#restapi-v2-add-table-to-connection) -* [Restapi V2 Remove Table From Connection](../../doc/controllers/connection.md#restapi-v2-remove-table-from-connection) -* [Restapi V2 Search Connection](../../doc/controllers/connection.md#restapi-v2-search-connection) -* [Restapi V2 Get Connection Tables](../../doc/controllers/connection.md#restapi-v2-get-connection-tables) -* [Restapi V2 Get Connection Table Columns](../../doc/controllers/connection.md#restapi-v2-get-connection-table-columns) - - -# Restapi V2 Get Connection - -To get the details of a specific connection use this endpoint - -```csharp -RestapiV2GetConnectionAsync( - string id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the connection to query | - -## Response Type - -[`Task`](../../doc/models/connection-response.md) - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - ConnectionResponse result = await connectionController.RestapiV2GetConnectionAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Database - -To get the list of databases for a connection, use this endpoint. - -The response will include databases from the data platform corresponding to the connection id provided. - -```csharp -RestapiV2GetConnectionDatabaseAsync( - string id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the connection | - -## Response Type - -`Task>` - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - List result = await connectionController.RestapiV2GetConnectionDatabaseAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Connection - -To programmatically create a connection in the ThoughtSpot system use this API endpoint. -Using this API, you can create a connection and assign groups. -To create a connection, you require admin connection privileges. -All connections created in the ThoughtSpot system are added to ALL_GROUP - -```csharp -RestapiV2CreateConnectionAsync( - Models.TspublicRestV2ConnectionCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2ConnectionCreateRequest`](../../doc/models/tspublic-rest-v2-connection-create-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/create-connection-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2ConnectionCreateRequest(); -body.Type = Type14Enum.ORACLEADW; -body.Name = "name6"; -body.Configuration = "configuration0"; - -try -{ - CreateConnectionResponse result = await connectionController.RestapiV2CreateConnectionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Connection - -You can use this endpoint to programmatically modify an existing connection -To modify a connection, you require admin connection privileges. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered and connectionname will be updated - -```csharp -RestapiV2UpdateConnectionAsync( - Models.TspublicRestV2ConnectionUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2ConnectionUpdateRequest`](../../doc/models/tspublic-rest-v2-connection-update-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2ConnectionUpdateRequest(); -body.Id = "id6"; -body.Configuration = "configuration0"; - -try -{ - bool? result = await connectionController.RestapiV2UpdateConnectionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Connection - -To remove a connection from the ThoughtSpot system, use this endpoint. - -```csharp -RestapiV2DeleteConnectionAsync( - List id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `List` | Query, Required | A JSON array of GUIDs of the connection | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var id = new List(); -id.Add("id0"); - -try -{ - bool? result = await connectionController.RestapiV2DeleteConnectionAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Table to Connection - -To programmatically add table to an existing connection use this endpoint. -When you assign groups to a connection, the connection inherits the privileges assigned to those groups. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered. - -```csharp -RestapiV2AddTableToConnectionAsync( - Models.TspublicRestV2ConnectionAddtableRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2ConnectionAddtableRequest`](../../doc/models/tspublic-rest-v2-connection-addtable-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2ConnectionAddtableRequest(); -body.Id = "id6"; -body.Table = new List(); - -var bodyTable0 = new AddTableInput(); -bodyTable0.Name = "name0"; -bodyTable0.DbName = "dbName8"; -bodyTable0.SchemaName = "schemaName4"; -bodyTable0.Columns = new List(); - -var bodyTable0Columns0 = new ColumnsInput(); -bodyTable0Columns0.Name = "name0"; -bodyTable0Columns0.DataType = "dataType2"; -bodyTable0.Columns.Add(bodyTable0Columns0); - -var bodyTable0Columns1 = new ColumnsInput(); -bodyTable0Columns1.Name = "name1"; -bodyTable0Columns1.DataType = "dataType3"; -bodyTable0.Columns.Add(bodyTable0Columns1); - -body.Table.Add(bodyTable0); - -var bodyTable1 = new AddTableInput(); -bodyTable1.Name = "name1"; -bodyTable1.DbName = "dbName9"; -bodyTable1.SchemaName = "schemaName5"; -bodyTable1.Columns = new List(); - -var bodyTable1Columns0 = new ColumnsInput(); -bodyTable1Columns0.Name = "name9"; -bodyTable1Columns0.DataType = "dataType1"; -bodyTable1.Columns.Add(bodyTable1Columns0); - -body.Table.Add(bodyTable1); - -var bodyTable2 = new AddTableInput(); -bodyTable2.Name = "name2"; -bodyTable2.DbName = "dbName0"; -bodyTable2.SchemaName = "schemaName6"; -bodyTable2.Columns = new List(); - -var bodyTable2Columns0 = new ColumnsInput(); -bodyTable2Columns0.Name = "name8"; -bodyTable2Columns0.DataType = "dataType0"; -bodyTable2.Columns.Add(bodyTable2Columns0); - -var bodyTable2Columns1 = new ColumnsInput(); -bodyTable2Columns1.Name = "name9"; -bodyTable2Columns1.DataType = "dataType1"; -bodyTable2.Columns.Add(bodyTable2Columns1); - -var bodyTable2Columns2 = new ColumnsInput(); -bodyTable2Columns2.Name = "name0"; -bodyTable2Columns2.DataType = "dataType2"; -bodyTable2.Columns.Add(bodyTable2Columns2); - -body.Table.Add(bodyTable2); - - -try -{ - bool? result = await connectionController.RestapiV2AddTableToConnectionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Table From Connection - -To programmatically remove a table from a connection use API endpoint. -The API removes only the connection association. It does not delete the connection or group from the Thoughtspot system. -At least one of id or name of connection is required. When both are given connection id will be considered. - -```csharp -RestapiV2RemoveTableFromConnectionAsync( - Models.TspublicRestV2ConnectionRemovetableRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2ConnectionRemovetableRequest`](../../doc/models/tspublic-rest-v2-connection-removetable-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2ConnectionRemovetableRequest(); -body.Id = "id6"; -body.Table = new List(); - -var bodyTable0 = new TableInput(); -body.Table.Add(bodyTable0); - -var bodyTable1 = new TableInput(); -body.Table.Add(bodyTable1); - -var bodyTable2 = new TableInput(); -body.Table.Add(bodyTable2); - - -try -{ - bool? result = await connectionController.RestapiV2RemoveTableFromConnectionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Connection - -To get the details of a specific connection or all connections in the ThoughtSpot system use this end point. - -```csharp -RestapiV2SearchConnectionAsync( - Models.TspublicRestV2ConnectionSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2ConnectionSearchRequest`](../../doc/models/tspublic-rest-v2-connection-search-request.md) | Body, Required | - | - -## Response Type - -[`Task>`](../../doc/models/connection-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2ConnectionSearchRequest(); -body.Type = Type15Enum.ORACLEADW; - -try -{ - List result = await connectionController.RestapiV2SearchConnectionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Tables - -To get the details of tables from a connection, use this endpoint. - -You can get the details of tables in the data platform for the connection id provided. - -```csharp -RestapiV2GetConnectionTablesAsync( - Models.TspublicRestV2ConnectionTableRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2ConnectionTableRequest`](../../doc/models/tspublic-rest-v2-connection-table-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/connection-table-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2ConnectionTableRequest(); -body.Id = "id6"; - -try -{ - ConnectionTableResponse result = await connectionController.RestapiV2GetConnectionTablesAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Table Columns - -To get the details of columns in a table associated to a connection, use this endpoint. - -You can get the columns of any table available in the data platform for the connection id provided. - -```csharp -RestapiV2GetConnectionTableColumnsAsync( - Models.TspublicRestV2ConnectionTablecoloumnRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2ConnectionTablecoloumnRequest`](../../doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/connection-table-columns-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2ConnectionTablecoloumnRequest(); -body.Id = "id6"; -body.Table = new List(); - -var bodyTable0 = new ConnectionTableColumnsInput(); -bodyTable0.DbName = "dbName8"; -bodyTable0.SchemaName = "schemaName4"; -bodyTable0.Name = "name0"; -body.Table.Add(bodyTable0); - -var bodyTable1 = new ConnectionTableColumnsInput(); -bodyTable1.DbName = "dbName9"; -bodyTable1.SchemaName = "schemaName5"; -bodyTable1.Name = "name1"; -body.Table.Add(bodyTable1); - -var bodyTable2 = new ConnectionTableColumnsInput(); -bodyTable2.DbName = "dbName0"; -bodyTable2.SchemaName = "schemaName6"; -bodyTable2.Name = "name2"; -body.Table.Add(bodyTable2); - - -try -{ - ConnectionTableColumnsResponse result = await connectionController.RestapiV2GetConnectionTableColumnsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/custom-actions.md b/DotNet/doc/controllers/custom-actions.md deleted file mode 100644 index 2a39b0b26..000000000 --- a/DotNet/doc/controllers/custom-actions.md +++ /dev/null @@ -1,333 +0,0 @@ -# Custom Actions - -```csharp -CustomActionsController customActionsController = client.CustomActionsController; -``` - -## Class Name - -`CustomActionsController` - -## Methods - -* [Restapi V2 Get Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action) -* [Restapi V2 Search Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-search-custom-action) -* [Restapi V2 Get Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action-association) -* [Restapi V2 Create Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-create-custom-action) -* [Restapi V2 Update Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action) -* [Restapi V2 Delete Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action) -* [Restapi V2 Update Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action-association) -* [Restapi V2 Delete Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action-association) - - -# Restapi V2 Get Custom Action - -To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint - -```csharp -RestapiV2GetCustomActionAsync( - string id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | - -## Response Type - -`Task` - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - object result = await customActionsController.RestapiV2GetCustomActionAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Custom Action - -To search custom actions available on a ThoughtSpot instance, use this endpoint - -```csharp -RestapiV2SearchCustomActionAsync( - Models.TspublicRestV2CustomactionSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2CustomactionSearchRequest`](../../doc/models/tspublic-rest-v2-customaction-search-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2CustomactionSearchRequest(); - -try -{ - object result = await customActionsController.RestapiV2SearchCustomActionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Custom Action Association - -ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the details of the ThoughtSpot objects associated with a custom action, use this endpoint. - -```csharp -RestapiV2GetCustomActionAssociationAsync( - string id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | - -## Response Type - -`Task` - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - object result = await customActionsController.RestapiV2GetCustomActionAssociationAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Custom Action - -To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, use this endpoint - -```csharp -RestapiV2CreateCustomActionAsync( - Models.TspublicRestV2CustomactionCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2CustomactionCreateRequest`](../../doc/models/tspublic-rest-v2-customaction-create-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2CustomactionCreateRequest(); -body.Configuration = "configuration0"; - -try -{ - object result = await customActionsController.RestapiV2CreateCustomActionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Custom Action - -To programmatically edit an existing custom action, use this endpoint - -```csharp -RestapiV2UpdateCustomActionAsync( - Models.TspublicRestV2CustomactionUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2CustomactionUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-update-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2CustomactionUpdateRequest(); -body.Id = "id6"; -body.Configuration = "configuration0"; - -try -{ - object result = await customActionsController.RestapiV2UpdateCustomActionAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Custom Action - -To programmatically delete a custom action, use this endpoint - -```csharp -RestapiV2DeleteCustomActionAsync( - string id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | - -## Response Type - -`Task` - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - object result = await customActionsController.RestapiV2DeleteCustomActionAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Custom Action Association - -To programmatically associate a custom action to a ThoughtSpot object, use this endpoint - -```csharp -RestapiV2UpdateCustomActionAssociationAsync( - Models.TspublicRestV2CustomactionAssociationUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2CustomactionAssociationUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-association-update-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2CustomactionAssociationUpdateRequest(); -body.Id = "id6"; -body.Association = "association6"; - -try -{ - object result = await customActionsController.RestapiV2UpdateCustomActionAssociationAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Custom Action Association - -To remove custom action associations to ThoughtSpot objects, use this endpoint - -```csharp -RestapiV2DeleteCustomActionAssociationAsync( - string id, - string association) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | -| `association` | `string` | Query, Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Response Type - -`Task` - -## Example Usage - -```csharp -string id = "id0"; -string association = "association0"; - -try -{ - object result = await customActionsController.RestapiV2DeleteCustomActionAssociationAsync(id, association); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/data.md b/DotNet/doc/controllers/data.md deleted file mode 100644 index 8b91dbf47..000000000 --- a/DotNet/doc/controllers/data.md +++ /dev/null @@ -1,213 +0,0 @@ -# Data - -```csharp -DataController dataController = client.DataController; -``` - -## Class Name - -`DataController` - -## Methods - -* [Restapi V2 Search Query Data](../../doc/controllers/data.md#restapi-v2-search-query-data) -* [Restapi V2 Liveboard Data](../../doc/controllers/data.md#restapi-v2-liveboard-data) -* [Restapi V2 Answer Data](../../doc/controllers/data.md#restapi-v2-answer-data) -* [Restapi V2 Answer Query Sql](../../doc/controllers/data.md#restapi-v2-answer-query-sql) -* [Restapi V2 Liveboard Query Sql](../../doc/controllers/data.md#restapi-v2-liveboard-query-sql) - - -# Restapi V2 Search Query Data - -To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint - -```csharp -RestapiV2SearchQueryDataAsync( - Models.TspublicRestV2DataSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2DataSearchRequest`](../../doc/models/tspublic-rest-v2-data-search-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2DataSearchRequest(); -body.QueryString = "queryString0"; -body.DataObjectId = "dataObjectId6"; - -try -{ - object result = await dataController.RestapiV2SearchQueryDataAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Data - -To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use this endpoint - -```csharp -RestapiV2LiveboardDataAsync( - Models.TspublicRestV2DataLiveboardRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2DataLiveboardRequest`](../../doc/models/tspublic-rest-v2-data-liveboard-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2DataLiveboardRequest(); - -try -{ - object result = await dataController.RestapiV2LiveboardDataAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Answer Data - -To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint - -```csharp -RestapiV2AnswerDataAsync( - Models.TspublicRestV2DataAnswerRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2DataAnswerRequest`](../../doc/models/tspublic-rest-v2-data-answer-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2DataAnswerRequest(); -body.Id = "id6"; - -try -{ - object result = await dataController.RestapiV2AnswerDataAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Answer Query Sql - -To retrieve the query SQL related to an Answer that is run on the data platform, you can use this endpoint - -```csharp -RestapiV2AnswerQuerySqlAsync( - string id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the Answer | - -## Response Type - -[`Task`](../../doc/models/answer-query-response.md) - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - AnswerQueryResponse result = await dataController.RestapiV2AnswerQuerySqlAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Query Sql - -To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, you can use this endpoint - -```csharp -RestapiV2LiveboardQuerySqlAsync( - string id, - List vizId = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the Answer | -| `vizId` | `List` | Query, Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | - -## Response Type - -[`Task`](../../doc/models/liveboard-query-response.md) - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - LiveboardQueryResponse result = await dataController.RestapiV2LiveboardQuerySqlAsync(id, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/database.md b/DotNet/doc/controllers/database.md deleted file mode 100644 index 996fb88fc..000000000 --- a/DotNet/doc/controllers/database.md +++ /dev/null @@ -1,221 +0,0 @@ -# Database - -```csharp -DatabaseController databaseController = client.DatabaseController; -``` - -## Class Name - -`DatabaseController` - -## Methods - -* [Restapi V2 Get Schemas](../../doc/controllers/database.md#restapi-v2-get-schemas) -* [Restapi V2 Get Tables](../../doc/controllers/database.md#restapi-v2-get-tables) -* [Restapi V2 Get Table Details](../../doc/controllers/database.md#restapi-v2-get-table-details) -* [Restapi V2 Create Table](../../doc/controllers/database.md#restapi-v2-create-table) -* [Restapi V2 Run Query](../../doc/controllers/database.md#restapi-v2-run-query) - - -# Restapi V2 Get Schemas - -To list all the schemas in a database in Falcon, use this endpoint. - -```csharp -RestapiV2GetSchemasAsync( - string database) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | - -## Response Type - -`Task>` - -## Example Usage - -```csharp -string database = "database0"; - -try -{ - List result = await databaseController.RestapiV2GetSchemasAsync(database); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Tables - -To list all the tables in a schema of a database in Falcon, use this endpoint. - -```csharp -RestapiV2GetTablesAsync( - string database, - string schema) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | -| `schema` | `string` | Query, Required | Name of the schema in Falcon database | - -## Response Type - -`Task>` - -## Example Usage - -```csharp -string database = "database0"; -string schema = "schema2"; - -try -{ - List result = await databaseController.RestapiV2GetTablesAsync(database, schema); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Table Details - -Note: This endpoint is applicable only for on-prem deployments. - -To provide details of a table in a schema of a database in Falcon, use this endpoint. - -```csharp -RestapiV2GetTableDetailsAsync( - string database, - string table, - string schema = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | -| `table` | `string` | Query, Required | Name of the table in Falcon database | -| `schema` | `string` | Query, Optional | Name of the schema in Falcon database | - -## Response Type - -`Task` - -## Example Usage - -```csharp -string database = "database0"; -string table = "table2"; - -try -{ - object result = await databaseController.RestapiV2GetTableDetailsAsync(database, table, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Table - -To create a table in Falcon, use this endpoint. - -```csharp -RestapiV2CreateTableAsync( - Models.TspublicRestV2DatabaseTableCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2DatabaseTableCreateRequest`](../../doc/models/tspublic-rest-v2-database-table-create-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/create-table-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2DatabaseTableCreateRequest(); - -try -{ - CreateTableResponse result = await databaseController.RestapiV2CreateTableAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Run Query - -To run a TQL statement in Falcon, use this endpoint. You can run only following type of statements - Table DDL alter and Table rows update and delete. - -```csharp -RestapiV2RunQueryAsync( - Models.TspublicRestV2DatabaseTableRunqueryRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2DatabaseTableRunqueryRequest`](../../doc/models/tspublic-rest-v2-database-table-runquery-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2DatabaseTableRunqueryRequest(); -body.Statement = new List(); -body.Statement.Add("statement6"); -body.Statement.Add("statement7"); - -try -{ - object result = await databaseController.RestapiV2RunQueryAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/group.md b/DotNet/doc/controllers/group.md deleted file mode 100644 index 838c0fecd..000000000 --- a/DotNet/doc/controllers/group.md +++ /dev/null @@ -1,469 +0,0 @@ -# Group - -```csharp -GroupController groupController = client.GroupController; -``` - -## Class Name - -`GroupController` - -## Methods - -* [Restapi V2 Get Group](../../doc/controllers/group.md#restapi-v2-get-group) -* [Restapi V2 Create Group](../../doc/controllers/group.md#restapi-v2-create-group) -* [Restapi V2 Update Group](../../doc/controllers/group.md#restapi-v2-update-group) -* [Restapi V2 Delete Group](../../doc/controllers/group.md#restapi-v2-delete-group) -* [Restapi V2 Add Privileges to Group](../../doc/controllers/group.md#restapi-v2-add-privileges-to-group) -* [Restapi V2 Remove Privileges From Group](../../doc/controllers/group.md#restapi-v2-remove-privileges-from-group) -* [Restapi V2 Add Users to Group](../../doc/controllers/group.md#restapi-v2-add-users-to-group) -* [Restapi V2 Remove Users From Group](../../doc/controllers/group.md#restapi-v2-remove-users-from-group) -* [Restapi V2 Add Groups to Group](../../doc/controllers/group.md#restapi-v2-add-groups-to-group) -* [Restapi V2 Remove Groups From Group](../../doc/controllers/group.md#restapi-v2-remove-groups-from-group) -* [Restapi V2 Search Groups](../../doc/controllers/group.md#restapi-v2-search-groups) - - -# Restapi V2 Get Group - -To get the details of a specific group by name or id, use this endpoint. -At Least one value needed. When both are given id will be considered to fetch user information. - -```csharp -RestapiV2GetGroupAsync( - string name = null, - string id = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the group | -| `id` | `string` | Query, Optional | The GUID of the group to query. | - -## Response Type - -[`Task`](../../doc/models/group-response.md) - -## Example Usage - -```csharp -try -{ - GroupResponse result = await groupController.RestapiV2GetGroupAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Group - -To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using this API, you can create a group and assign privileges and users. For ease of user management and access control, ThoughtSpot administrators can create groups and assign privileges to these groups. The privileges determine the actions that the users belonging to a group are allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the ALL_GROUP or remove members from it. - -```csharp -RestapiV2CreateGroupAsync( - Models.TspublicRestV2GroupCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupCreateRequest`](../../doc/models/tspublic-rest-v2-group-create-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/group-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupCreateRequest(); -body.Name = "name6"; -body.DisplayName = "displayName6"; - -try -{ - GroupResponse result = await groupController.RestapiV2CreateGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Group - -You can use this endpoint to programmatically modify an existing user account. -To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```csharp -RestapiV2UpdateGroupAsync( - Models.TspublicRestV2GroupUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupUpdateRequest`](../../doc/models/tspublic-rest-v2-group-update-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupUpdateRequest(); - -try -{ - bool? result = await groupController.RestapiV2UpdateGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Group - -To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information. - -```csharp -RestapiV2DeleteGroupAsync( - string name = null, - string id = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the group. | -| `id` | `string` | Query, Optional | The GUID of the group | - -## Response Type - -`Task` - -## Example Usage - -```csharp -try -{ - bool? result = await groupController.RestapiV2DeleteGroupAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Privileges to Group - -To programmatically add privileges to an existing group, use API endpoint. -When you assign privileges to a group, all the users under to this group inherits the privileges assigned to that group. -At least one of id or name of group is required. When both are given user id will be considered. - -```csharp -RestapiV2AddPrivilegesToGroupAsync( - Models.TspublicRestV2GroupAddprivilegeRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupAddprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-addprivilege-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupAddprivilegeRequest(); - -try -{ - bool? result = await groupController.RestapiV2AddPrivilegesToGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Privileges From Group - -To programmatically remove privileges from a group, use API endpoint. The API removes only the privilege association. It does not delete the privilege or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```csharp -RestapiV2RemovePrivilegesFromGroupAsync( - Models.TspublicRestV2GroupRemoveprivilegeRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupRemoveprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-removeprivilege-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupRemoveprivilegeRequest(); - -try -{ - bool? result = await groupController.RestapiV2RemovePrivilegesFromGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Users to Group - -To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When you assign users to a group, the users inherits the privileges assigned to that group. At least one of id or name of the group is required. When both are given user id will be considered. - -```csharp -RestapiV2AddUsersToGroupAsync( - Models.TspublicRestV2GroupAdduserRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupAdduserRequest`](../../doc/models/tspublic-rest-v2-group-adduser-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupAdduserRequest(); -body.Users = new List(); - -var bodyUsers0 = new UserNameAndIDInput(); -body.Users.Add(bodyUsers0); - - -try -{ - bool? result = await groupController.RestapiV2AddUsersToGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Users From Group - -To programmatically remove users from a group, use API endpoint.The API removes only the user association. It does not delete the users or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```csharp -RestapiV2RemoveUsersFromGroupAsync( - Models.TspublicRestV2GroupRemoveuserRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupRemoveuserRequest`](../../doc/models/tspublic-rest-v2-group-removeuser-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupRemoveuserRequest(); -body.Users = new List(); - -var bodyUsers0 = new UserNameAndIDInput(); -body.Users.Add(bodyUsers0); - - -try -{ - bool? result = await groupController.RestapiV2RemoveUsersFromGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Groups to Group - -To programmatically add existing groups to a group, use API endpoint. When you assign groups to a group, the group inherits the privileges assigned to those groups. At least one of id or name of group is required. When both are given user id will be considered. - -```csharp -RestapiV2AddGroupsToGroupAsync( - Models.TspublicRestV2GroupAddgroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupAddgroupRequest`](../../doc/models/tspublic-rest-v2-group-addgroup-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupAddgroupRequest(); -body.Groups = new List(); - -var bodyGroups0 = new GroupNameAndIDInput(); -body.Groups.Add(bodyGroups0); - - -try -{ - bool? result = await groupController.RestapiV2AddGroupsToGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Groups From Group - -To programmatically remove groups from a group, use API endpoint.The API removes only the group association. It does not delete the group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```csharp -RestapiV2RemoveGroupsFromGroupAsync( - Models.TspublicRestV2GroupRemovegroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupRemovegroupRequest`](../../doc/models/tspublic-rest-v2-group-removegroup-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupRemovegroupRequest(); -body.Groups = new List(); - -var bodyGroups0 = new GroupNameAndIDInput(); -body.Groups.Add(bodyGroups0); - - -try -{ - bool? result = await groupController.RestapiV2RemoveGroupsFromGroupAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Groups - -To get the details of a specific group account or all groups in the ThoughtSpot system, use this end point. - -```csharp -RestapiV2SearchGroupsAsync( - Models.TspublicRestV2GroupSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2GroupSearchRequest`](../../doc/models/tspublic-rest-v2-group-search-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2GroupSearchRequest(); - -try -{ - object result = await groupController.RestapiV2SearchGroupsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/logs.md b/DotNet/doc/controllers/logs.md deleted file mode 100644 index be04d5ba8..000000000 --- a/DotNet/doc/controllers/logs.md +++ /dev/null @@ -1,60 +0,0 @@ -# Logs - -```csharp -LogsController logsController = client.LogsController; -``` - -## Class Name - -`LogsController` - - -# Restapi V2 Get Log Events - -Note: This endpoint is applicable only for SAAS deployments. - -The ThoughtSpot log streaming service API allows you to programmatically get a security audit event log from the ThoughtSpot system. - -To use this API, make sure you have admin user privileges. - -ThoughtSpot cloud deployments allow you to collect security audit events and send them to your Security information and event management (SIEM) application in real-time. - -These events can help your security operations personnel to detect potential security threats or compromised user accounts in your organization. - -```csharp -RestapiV2GetLogEventsAsync( - Models.TopicEnum topic, - string fromEpoch = null, - string toEpoch = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `topic` | [`Models.TopicEnum`](../../doc/models/topic-enum.md) | Query, Required | Type of the log | -| `fromEpoch` | `string` | Query, Optional | The EPOCH time in milliseconds to set the start time for streaming logs.

Example: To set the timestamp as June 1, 2021 8 am, specify 1622534400000. | -| `toEpoch` | `string` | Query, Optional | The EPOCH time in milliseconds to set the end time for streaming logs.

Example: To set the timestamp as July 1, 2021, 8 am, specify 1625126400000. | - -## Response Type - -[`Task`](../../doc/models/logs-response.md) - -## Example Usage - -```csharp -TopicEnum topic = TopicEnum.SecurityLogs; - -try -{ - LogsResponse result = await logsController.RestapiV2GetLogEventsAsync(topic, null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/materialization.md b/DotNet/doc/controllers/materialization.md deleted file mode 100644 index 0868fd440..000000000 --- a/DotNet/doc/controllers/materialization.md +++ /dev/null @@ -1,49 +0,0 @@ -# Materialization - -```csharp -MaterializationController materializationController = client.MaterializationController; -``` - -## Class Name - -`MaterializationController` - - -# Restapi V2 Refresh Materialized View - -Use this endpoint to refresh data in the materialized view by running the query associated with it - -```csharp -RestapiV2RefreshMaterializedViewAsync( - Models.TspublicRestV2MaterializationRefreshviewRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MaterializationRefreshviewRequest`](../../doc/models/tspublic-rest-v2-materialization-refreshview-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MaterializationRefreshviewRequest(); -body.Id = "id6"; - -try -{ - object result = await materializationController.RestapiV2RefreshMaterializedViewAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/metadata.md b/DotNet/doc/controllers/metadata.md deleted file mode 100644 index 7c7d57eb6..000000000 --- a/DotNet/doc/controllers/metadata.md +++ /dev/null @@ -1,890 +0,0 @@ -# Metadata - -```csharp -MetadataController metadataController = client.MetadataController; -``` - -## Class Name - -`MetadataController` - -## Methods - -* [Restapi V2 Get Tag](../../doc/controllers/metadata.md#restapi-v2-get-tag) -* [Restapi V2 Get Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-get-home-liveboard) -* [Restapi V2 Search Object Header](../../doc/controllers/metadata.md#restapi-v2-search-object-header) -* [Restapi V2 Get Object Visualization Header](../../doc/controllers/metadata.md#restapi-v2-get-object-visualization-header) -* [Restapi V2 Get Object Detail](../../doc/controllers/metadata.md#restapi-v2-get-object-detail) -* [Restapi V2 Get Object Header](../../doc/controllers/metadata.md#restapi-v2-get-object-header) -* [Restapi V2 Search Object Detail](../../doc/controllers/metadata.md#restapi-v2-search-object-detail) -* [Restapi V2 Create Tag](../../doc/controllers/metadata.md#restapi-v2-create-tag) -* [Restapi V2 Update Tag](../../doc/controllers/metadata.md#restapi-v2-update-tag) -* [Restapi V2 Delete Tag](../../doc/controllers/metadata.md#restapi-v2-delete-tag) -* [Restapi V2 Assign Tag](../../doc/controllers/metadata.md#restapi-v2-assign-tag) -* [Restapi V2 Unassign Tag](../../doc/controllers/metadata.md#restapi-v2-unassign-tag) -* [Restapi V2 Assign Favorite](../../doc/controllers/metadata.md#restapi-v2-assign-favorite) -* [Restapi V2 Unassign Favorite](../../doc/controllers/metadata.md#restapi-v2-unassign-favorite) -* [Restapi V2 Assign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-assign-home-liveboard) -* [Restapi V2 Unassign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-unassign-home-liveboard) -* [Restapi V2 Export Object TML](../../doc/controllers/metadata.md#restapi-v2-export-object-tml) -* [Restapi V2 Import Object TML](../../doc/controllers/metadata.md#restapi-v2-import-object-tml) -* [Restapi V2 Delete Object](../../doc/controllers/metadata.md#restapi-v2-delete-object) -* [Restapi V2 Get Object Dependency](../../doc/controllers/metadata.md#restapi-v2-get-object-dependency) - - -# Restapi V2 Get Tag - -To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```csharp -RestapiV2GetTagAsync( - string name = null, - string id = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the tag | -| `id` | `string` | Query, Optional | The GUID of the tag | - -## Response Type - -[`Task`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```csharp -try -{ - MetadataTagResponse result = await metadataController.RestapiV2GetTagAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Home Liveboard - -To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```csharp -RestapiV2GetHomeLiveboardAsync( - string userName = null, - string userId = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string` | Query, Optional | Name of the tag | -| `userId` | `string` | Query, Optional | The GUID of the tag | - -## Response Type - -[`Task`](../../doc/models/home-liveboard-response.md) - -## Example Usage - -```csharp -try -{ - HomeLiveboardResponse result = await metadataController.RestapiV2GetHomeLiveboardAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Object Header - -To get header details for metadata objects, use this endpoint. You can provide as input selective fields to get the data for. - -```csharp -RestapiV2SearchObjectHeaderAsync( - Models.TspublicRestV2MetadataHeaderSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataHeaderSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-header-search-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataHeaderSearchRequest(); -body.Type = Type3Enum.USER; - -try -{ - object result = await metadataController.RestapiV2SearchObjectHeaderAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Visualization Header - -Use this endpoint to get header details of visualization charts for a given liveboard or answer. At least one of id or name of liveboard or answer is required. When both are given, then id will be considered. - -```csharp -RestapiV2GetObjectVisualizationHeaderAsync( - string id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the liveboard or answer | - -## Response Type - -`Task` - -## Example Usage - -```csharp -string id = "id0"; - -try -{ - object result = await metadataController.RestapiV2GetObjectVisualizationHeaderAsync(id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Detail - -Use this endpoint to get full details of metadata objects - -```csharp -RestapiV2GetObjectDetailAsync( - Models.Type4Enum type, - List id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Models.Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `List` | Query, Required | A JSON array of GUIDs of the objects. | - -## Response Type - -`Task` - -## Example Usage - -```csharp -Type4Enum type = Type4Enum.DATAOBJECT; -var id = new List(); -id.Add("id0"); - -try -{ - object result = await metadataController.RestapiV2GetObjectDetailAsync(type, id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Header - -To get header detail of a metadata object, use this endpoint. You can provide as input selective fields to get the data for. - -```csharp -RestapiV2GetObjectHeaderAsync( - Models.Type5Enum type, - string id, - List outputFields = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Models.Type5Enum`](../../doc/models/type-5-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `string` | Query, Required | GUID of the metadata object | -| `outputFields` | `List` | Query, Optional | Array of header field names that need to be included in the header response | - -## Response Type - -`Task` - -## Example Usage - -```csharp -Type5Enum type = Type5Enum.COLUMNALL; -string id = "id0"; - -try -{ - object result = await metadataController.RestapiV2GetObjectHeaderAsync(type, id, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Object Detail - -Use this endpoint to get full details of metadata objects - -```csharp -RestapiV2SearchObjectDetailAsync( - Models.TspublicRestV2MetadataDetailSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataDetailSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-detail-search-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataDetailSearchRequest(); -body.Type = Type6Enum.USER; -body.Id = new List(); -body.Id.Add("id6"); -body.Id.Add("id7"); - -try -{ - object result = await metadataController.RestapiV2SearchObjectDetailAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Tag - -To programmatically create tags, use this endpoint - -```csharp -RestapiV2CreateTagAsync( - Models.TspublicRestV2MetadataTagCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataTagCreateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-create-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataTagCreateRequest(); -body.Name = "name6"; - -try -{ - MetadataTagResponse result = await metadataController.RestapiV2CreateTagAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Tag - -To programmatically update tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```csharp -RestapiV2UpdateTagAsync( - Models.TspublicRestV2MetadataTagUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataTagUpdateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-update-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataTagUpdateRequest(); - -try -{ - bool? result = await metadataController.RestapiV2UpdateTagAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Tag - -To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```csharp -RestapiV2DeleteTagAsync( - string name = null, - string id = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the tag | -| `id` | `string` | Query, Optional | The GUID of the tag | - -## Response Type - -`Task` - -## Example Usage - -```csharp -try -{ - bool? result = await metadataController.RestapiV2DeleteTagAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Tag - -To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```csharp -RestapiV2AssignTagAsync( - Models.TspublicRestV2MetadataTagAssignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataTagAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-assign-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataTagAssignRequest(); -body.TsObject = new List(); - -var bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.Id = "id8"; -bodyTsObject0.Type = TypeEnum.DATAOBJECT; -body.TsObject.Add(bodyTsObject0); - -var bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.Id = "id9"; -bodyTsObject1.Type = TypeEnum.CONNECTION; -body.TsObject.Add(bodyTsObject1); - -var bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.Id = "id0"; -bodyTsObject2.Type = TypeEnum.ANSWER; -body.TsObject.Add(bodyTsObject2); - - -try -{ - bool? result = await metadataController.RestapiV2AssignTagAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Tag - -To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```csharp -RestapiV2UnassignTagAsync( - Models.TspublicRestV2MetadataTagUnassignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataTagUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataTagUnassignRequest(); -body.TsObject = new List(); - -var bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.Id = "id8"; -bodyTsObject0.Type = TypeEnum.DATAOBJECT; -body.TsObject.Add(bodyTsObject0); - -var bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.Id = "id9"; -bodyTsObject1.Type = TypeEnum.CONNECTION; -body.TsObject.Add(bodyTsObject1); - -var bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.Id = "id0"; -bodyTsObject2.Type = TypeEnum.ANSWER; -body.TsObject.Add(bodyTsObject2); - - -try -{ - bool? result = await metadataController.RestapiV2UnassignTagAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Favorite - -To programmatically assign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```csharp -RestapiV2AssignFavoriteAsync( - Models.TspublicRestV2MetadataFavoriteAssignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataFavoriteAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataFavoriteAssignRequest(); -body.TsObject = new List(); - -var bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.Id = "id8"; -bodyTsObject0.Type = TypeEnum.DATAOBJECT; -body.TsObject.Add(bodyTsObject0); - -var bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.Id = "id9"; -bodyTsObject1.Type = TypeEnum.CONNECTION; -body.TsObject.Add(bodyTsObject1); - -var bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.Id = "id0"; -bodyTsObject2.Type = TypeEnum.ANSWER; -body.TsObject.Add(bodyTsObject2); - - -try -{ - bool? result = await metadataController.RestapiV2AssignFavoriteAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Favorite - -To programmatically unassign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```csharp -RestapiV2UnassignFavoriteAsync( - Models.TspublicRestV2MetadataFavoriteUnassignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataFavoriteUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataFavoriteUnassignRequest(); -body.TsObject = new List(); - -var bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.Id = "id8"; -bodyTsObject0.Type = TypeEnum.DATAOBJECT; -body.TsObject.Add(bodyTsObject0); - -var bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.Id = "id9"; -bodyTsObject1.Type = TypeEnum.CONNECTION; -body.TsObject.Add(bodyTsObject1); - -var bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.Id = "id0"; -bodyTsObject2.Type = TypeEnum.ANSWER; -body.TsObject.Add(bodyTsObject2); - - -try -{ - bool? result = await metadataController.RestapiV2UnassignFavoriteAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Home Liveboard - -To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```csharp -RestapiV2AssignHomeLiveboardAsync( - Models.TspublicRestV2MetadataHomeliveboardAssignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataHomeliveboardAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataHomeliveboardAssignRequest(); - -try -{ - bool? result = await metadataController.RestapiV2AssignHomeLiveboardAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Home Liveboard - -To unassign the home liveboard set for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```csharp -RestapiV2UnassignHomeLiveboardAsync( - Models.TspublicRestV2MetadataHomeliveboardUnassignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataHomeliveboardUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataHomeliveboardUnassignRequest(); - -try -{ - bool? result = await metadataController.RestapiV2UnassignHomeLiveboardAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Export Object TML - -To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```csharp -RestapiV2ExportObjectTMLAsync( - Models.TspublicRestV2MetadataTmlExportRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataTmlExportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-export-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataTmlExportRequest(); -body.Id = new List(); -body.Id.Add("id6"); -body.Id.Add("id7"); - -try -{ - object result = await metadataController.RestapiV2ExportObjectTMLAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Import Object TML - -To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```csharp -RestapiV2ImportObjectTMLAsync( - Models.TspublicRestV2MetadataTmlImportRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataTmlImportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-import-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataTmlImportRequest(); -body.ObjectTML = new List(); -body.ObjectTML.Add("objectTML5"); -body.ObjectTML.Add("objectTML6"); - -try -{ - object result = await metadataController.RestapiV2ImportObjectTMLAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Object - -Use this endpoint to delete the metadata objects - -```csharp -RestapiV2DeleteObjectAsync( - Models.Type4Enum type, - List id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Models.Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched | -| `id` | `List` | Query, Required | A JSON array of GUIDs of the objects | - -## Response Type - -`Task` - -## Example Usage - -```csharp -Type4Enum type = Type4Enum.DATAOBJECT; -var id = new List(); -id.Add("id0"); - -try -{ - bool? result = await metadataController.RestapiV2DeleteObjectAsync(type, id); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Dependency - -To query the details of dependent objects and associate objects as dependents, you can use this API. Dependency is defined as relation between referenced and referencing objects. A referencing object is said to have a dependency on a referenced object, if the referenced object cannot be deleted without first deleting the referencing object. For example, consider a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion of C2 will be prevented by the relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting C1 - -```csharp -RestapiV2GetObjectDependencyAsync( - Models.TspublicRestV2MetadataDependencyRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2MetadataDependencyRequest`](../../doc/models/tspublic-rest-v2-metadata-dependency-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2MetadataDependencyRequest(); -body.Type = Type13Enum.COLUMN; -body.Id = new List(); -body.Id.Add("id6"); -body.Id.Add("id7"); - -try -{ - object result = await metadataController.RestapiV2GetObjectDependencyAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/org.md b/DotNet/doc/controllers/org.md deleted file mode 100644 index 57eb235ed..000000000 --- a/DotNet/doc/controllers/org.md +++ /dev/null @@ -1,227 +0,0 @@ -# Org - -```csharp -OrgController orgController = client.OrgController; -``` - -## Class Name - -`OrgController` - -## Methods - -* [Restapi V2 Get Org](../../doc/controllers/org.md#restapi-v2-get-org) -* [Restapi V2 Create Org](../../doc/controllers/org.md#restapi-v2-create-org) -* [Restapi V2 Update Org](../../doc/controllers/org.md#restapi-v2-update-org) -* [Restapi V2 Delete Org](../../doc/controllers/org.md#restapi-v2-delete-org) -* [Restapi V2 Search Orgs](../../doc/controllers/org.md#restapi-v2-search-orgs) - - -# Restapi V2 Get Org - -To get the details of a specific organization by name or id, use this endpoint. - -At least one value needed. When both are given,then id will be considered to fetch organization information. - -Requires Administration privilege for tenant. - -```csharp -RestapiV2GetOrgAsync( - string name = null, - int? id = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the organization. | -| `id` | `int?` | Query, Optional | The ID of the organization. | - -## Response Type - -[`Task`](../../doc/models/orgs-response.md) - -## Example Usage - -```csharp -try -{ - OrgsResponse result = await orgController.RestapiV2GetOrgAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Org - -To programmatically create an organization in the ThoughtSpot system, use this API endpoint. - -Requires Administration privilege for tenant. - -```csharp -RestapiV2CreateOrgAsync( - Models.TspublicRestV2OrgCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2OrgCreateRequest`](../../doc/models/tspublic-rest-v2-org-create-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/orgs-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2OrgCreateRequest(); -body.Name = "name6"; - -try -{ - OrgsResponse result = await orgController.RestapiV2CreateOrgAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Org - -You can use this endpoint to programmatically modify an existing org. - -Provide name or id of the organization to update the properties. When both id and name are given, then id will be considered and name of the organization will be updated. - -Requires Administration privilege for tenant. - -```csharp -RestapiV2UpdateOrgAsync( - Models.TspublicRestV2OrgUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2OrgUpdateRequest`](../../doc/models/tspublic-rest-v2-org-update-request.md) | Body, Required | - | - -## Response Type - -[`Task`](../../doc/models/orgs-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2OrgUpdateRequest(); - -try -{ - OrgsResponse result = await orgController.RestapiV2UpdateOrgAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Org - -To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. - -At least one value is needed. When both id and name are given, then id will be considered. - -Requires Administration privilege for tenant. - -```csharp -RestapiV2DeleteOrgAsync( - string name = null, - int? id = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the organization. | -| `id` | `int?` | Query, Optional | The ID of the organization. | - -## Response Type - -`Task` - -## Example Usage - -```csharp -try -{ - bool? result = await orgController.RestapiV2DeleteOrgAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Orgs - -To get the details of a specific organization or all organizations in the ThoughtSpot system use this end point. - -If no input is provided, then all organizations are included in the response. - -Requires Administration privilege for tenant. - -```csharp -RestapiV2SearchOrgsAsync( - Models.TspublicRestV2OrgSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2OrgSearchRequest`](../../doc/models/tspublic-rest-v2-org-search-request.md) | Body, Required | - | - -## Response Type - -[`Task>`](../../doc/models/orgs-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2OrgSearchRequest(); - -try -{ - List result = await orgController.RestapiV2SearchOrgsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/report.md b/DotNet/doc/controllers/report.md deleted file mode 100644 index d27794a7b..000000000 --- a/DotNet/doc/controllers/report.md +++ /dev/null @@ -1,108 +0,0 @@ -# Report - -```csharp -ReportController reportController = client.ReportController; -``` - -## Class Name - -`ReportController` - -## Methods - -* [Restapi V2 Answer Report](../../doc/controllers/report.md#restapi-v2-answer-report) -* [Restapi V2 Liveboard Report](../../doc/controllers/report.md#restapi-v2-liveboard-report) - - -# Restapi V2 Answer Report - -To programmatically download Answer data as a file, use this endpoint. - -The PDF will download data in the tabular format even if Answer is saved as chart. - -```csharp -RestapiV2AnswerReportAsync( - string id, - Models.Type16Enum type) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the Answer to download. | -| `type` | [`Models.Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. | - -## Response Type - -`Task` - -## Example Usage - -```csharp -string id = "id0"; -Type16Enum type = Type16Enum.PDF; - -try -{ - object result = await reportController.RestapiV2AnswerReportAsync(id, type); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Report - -To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, use this endpoint - -```csharp -RestapiV2LiveboardReportAsync( - Models.Type16Enum type, - string id = null, - List vizId = null, - string transientContent = null, - string runtimeFilter = null, - string runtimeSort = null, - Models.PdfOptionsInput pdfOptions = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Models.Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. Valid values: CSV/XLSX/PDF/PNG. | -| `id` | `string` | Query, Optional | GUID of the Liveboard to download.

This field is considered only when no input is provided for transientContent field. | -| `vizId` | `List` | Query, Optional | JSON Array of GUIDs of the visualizations in the Liveboard to be included in the downloaded file.

For CSV, XLSX and PNG file download, visualization id is mandatory. CSV and XLSX is valid only for visualization of type table and PNG is valid for charts.

Only one value will be accepted for these formats. If multiple values are provided then first value in the array will be considered. | -| `transientContent` | `string` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard. | -| `runtimeFilter` | `string` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . | -| `runtimeSort` | `string` | Query, Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | -| `pdfOptions` | [`Models.PdfOptionsInput`](../../doc/models/pdf-options-input.md) | Query, Optional | Additional options that are applicable for PDF type. | - -## Response Type - -`Task` - -## Example Usage - -```csharp -Type16Enum type = Type16Enum.PDF; - -try -{ - object result = await reportController.RestapiV2LiveboardReportAsync(type, null, null, null, null, null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/security.md b/DotNet/doc/controllers/security.md deleted file mode 100644 index 640aad983..000000000 --- a/DotNet/doc/controllers/security.md +++ /dev/null @@ -1,314 +0,0 @@ -# Security - -```csharp -SecurityController securityController = client.SecurityController; -``` - -## Class Name - -`SecurityController` - -## Methods - -* [Restapi V2 Get Permission on Object](../../doc/controllers/security.md#restapi-v2-get-permission-on-object) -* [Restapi V2 Get Permission for Principal](../../doc/controllers/security.md#restapi-v2-get-permission-for-principal) -* [Restapi V2 Share Object](../../doc/controllers/security.md#restapi-v2-share-object) -* [Restapi V2 Share Visualization](../../doc/controllers/security.md#restapi-v2-share-visualization) -* [Restapi V2 Search Permission on Objects](../../doc/controllers/security.md#restapi-v2-search-permission-on-objects) -* [Restapi V2 Search Permission for Principals](../../doc/controllers/security.md#restapi-v2-search-permission-for-principals) - - -# Restapi V2 Get Permission on Object - -To list the permissions for user and user groups on an object, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -```csharp -RestapiV2GetPermissionOnObjectAsync( - string id, - Models.Type7Enum type, - bool? includeDependent = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the metadata object for which the permission needs to be obtained. | -| `type` | [`Models.Type7Enum`](../../doc/models/type-7-enum.md) | Query, Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | -| `includeDependent` | `bool?` | Query, Optional | When this field is set to true, the API returns the permission details for the dependent objects for the the object included in the request | - -## Response Type - -[`Task`](../../doc/models/security-permission-response.md) - -## Example Usage - -```csharp -string id = "id0"; -Type7Enum type = Type7Enum.DATAOBJECT; - -try -{ - SecurityPermissionResponse result = await securityController.RestapiV2GetPermissionOnObjectAsync(id, type, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Permission for Principal - -Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. - -Requires administration privilege - -```csharp -RestapiV2GetPermissionForPrincipalAsync( - string id = null, - string name = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Optional | GUID of the user or user group for which the object permission needs to be obtained | -| `name` | `string` | Query, Optional | Name of the ser or user group for which the object permission needs to be obtained | - -## Response Type - -[`Task`](../../doc/models/principal-search-response.md) - -## Example Usage - -```csharp -try -{ - PrincipalSearchResponse result = await securityController.RestapiV2GetPermissionForPrincipalAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Share Object - -To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. - -When you share an object like a Liveboard or visualization, a notification with a live link is sent to the user. When the users access this object, they can view the last saved version of the object. - -```csharp -RestapiV2ShareObjectAsync( - Models.TspublicRestV2SecurityShareTsobjectRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2SecurityShareTsobjectRequest`](../../doc/models/tspublic-rest-v2-security-share-tsobject-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2SecurityShareTsobjectRequest(); -body.Type = Type18Enum.DATAOBJECT; -body.Id = new List(); -body.Id.Add("id6"); -body.Id.Add("id7"); -body.Permission = "permission8"; - -try -{ - bool? result = await securityController.RestapiV2ShareObjectAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Share Visualization - -If you want to share a specific visualization from a Liveboard with another user or user group, then use this endpoint. - -Requires privilege to share the visualization - -```csharp -RestapiV2ShareVisualizationAsync( - Models.TspublicRestV2SecurityShareVisualizationRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2SecurityShareVisualizationRequest`](../../doc/models/tspublic-rest-v2-security-share-visualization-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2SecurityShareVisualizationRequest(); -body.Id = "id6"; -body.VizId = "vizId4"; -body.PrincipalId = new List(); -body.PrincipalId.Add("principalId2"); -body.PrincipalId.Add("principalId3"); - -try -{ - bool? result = await securityController.RestapiV2ShareVisualizationAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Permission on Objects - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```csharp -RestapiV2SearchPermissionOnObjectsAsync( - Models.TspublicRestV2SecurityPermissionTsobjectSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2SecurityPermissionTsobjectSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md) | Body, Required | - | - -## Response Type - -[`Task>`](../../doc/models/security-permission-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2SecurityPermissionTsobjectSearchRequest(); -body.TsObject = new List(); - -var bodyTsObject0 = new TsObjectSearchInput(); -bodyTsObject0.Type = Type2Enum.DATAOBJECT; -bodyTsObject0.Id = new List(); -bodyTsObject0.Id.Add("id8"); -bodyTsObject0.Id.Add("id9"); -body.TsObject.Add(bodyTsObject0); - -var bodyTsObject1 = new TsObjectSearchInput(); -bodyTsObject1.Type = Type2Enum.COLUMN; -bodyTsObject1.Id = new List(); -bodyTsObject1.Id.Add("id9"); -bodyTsObject1.Id.Add("id0"); -bodyTsObject1.Id.Add("id1"); -body.TsObject.Add(bodyTsObject1); - -var bodyTsObject2 = new TsObjectSearchInput(); -bodyTsObject2.Type = Type2Enum.LIVEBOARD; -bodyTsObject2.Id = new List(); -bodyTsObject2.Id.Add("id0"); -body.TsObject.Add(bodyTsObject2); - - -try -{ - List result = await securityController.RestapiV2SearchPermissionOnObjectsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Permission for Principals - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```csharp -RestapiV2SearchPermissionForPrincipalsAsync( - Models.TspublicRestV2SecurityPermissionPrincipalSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2SecurityPermissionPrincipalSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-principal-search-request.md) | Body, Required | - | - -## Response Type - -[`Task>`](../../doc/models/principal-search-response.md) - -## Example Usage - -```csharp -var body = new TspublicRestV2SecurityPermissionPrincipalSearchRequest(); -body.Principal = new List(); - -var bodyPrincipal0 = new UserNameAndIDInput(); -body.Principal.Add(bodyPrincipal0); - - -try -{ - List result = await securityController.RestapiV2SearchPermissionForPrincipalsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/session.md b/DotNet/doc/controllers/session.md deleted file mode 100644 index a0bed82d2..000000000 --- a/DotNet/doc/controllers/session.md +++ /dev/null @@ -1,125 +0,0 @@ -# Session - -```csharp -SessionController sessionController = client.SessionController; -``` - -## Class Name - -`SessionController` - -## Methods - -* [Restapi V2 Login](../../doc/controllers/session.md#restapi-v2-login) -* [Restapi V2 Get Token](../../doc/controllers/session.md#restapi-v2-get-token) - - -# Restapi V2 Login - -You can programmatically create login session for a user in ThoughtSpot using this endpoint. - -You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. - -userName and password input is given precedence over "Authorization" header, when both are included in the request. - -```csharp -RestapiV2LoginAsync( - string userName = null, - string password = null, - bool? rememberMe = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string` | Query, Optional | Username of the user account | -| `password` | `string` | Query, Optional | The password of the user account | -| `rememberMe` | `bool?` | Query, Optional | A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls. | - -## Response Type - -[`Task`](../../doc/models/session-login-response.md) - -## Example Usage - -```csharp -try -{ - SessionLoginResponse result = await sessionController.RestapiV2LoginAsync(null, null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Token - -To programmatically create session token for a user in ThoughtSpot, use this endpoint. - -You can generate the token for a user by providing password or secret key from the cluster. - -You need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. - -1. Click the Develop tab. - -2. Under Customizations, click Settings. - -3. To enable trusted authentication, turn on the toggle. - -4. A secret_key for trusted authentication is generated. - -5. Click the clipboard icon to copy the token. - -Password is given precedence over secretKey input, when both are included in the request. - -```csharp -RestapiV2GetTokenAsync( - string userName, - string password = null, - string secretKey = null, - Models.AccessLevelEnum? accessLevel = null, - string tsObjectId = null, - string tokenExpiryDuration = null, - string orgId = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string` | Query, Required | Username of the user account | -| `password` | `string` | Query, Optional | The password of the user account | -| `secretKey` | `string` | Query, Optional | The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication. | -| `accessLevel` | [`Models.AccessLevelEnum?`](../../doc/models/access-level-enum.md) | Query, Optional | User access privilege.

FULL - Creates a session with full access.

REPORT_BOOK_VIEW - Allow view access to the specified visualizations. | -| `tsObjectId` | `string` | Query, Optional | GUID of the ThoughtSpot object. If you have set the accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or visualization object. | -| `tokenExpiryDuration` | `string` | Query, Optional | Duration in seconds after which the token expires | -| `orgId` | `string` | Query, Optional | Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered | - -## Response Type - -[`Task`](../../doc/models/session-login-response.md) - -## Example Usage - -```csharp -string userName = "userName2"; - -try -{ - SessionLoginResponse result = await sessionController.RestapiV2GetTokenAsync(userName, null, null, null, null, null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/controllers/user.md b/DotNet/doc/controllers/user.md deleted file mode 100644 index 2bc201f78..000000000 --- a/DotNet/doc/controllers/user.md +++ /dev/null @@ -1,421 +0,0 @@ -# User - -```csharp -UserController userController = client.UserController; -``` - -## Class Name - -`UserController` - -## Methods - -* [Restapi V2 Get User](../../doc/controllers/user.md#restapi-v2-get-user) -* [Restapi V2 Create User](../../doc/controllers/user.md#restapi-v2-create-user) -* [Restapi V2 Update User](../../doc/controllers/user.md#restapi-v2-update-user) -* [Restapi V2 Delete User](../../doc/controllers/user.md#restapi-v2-delete-user) -* [Restapi V2 Add User to Groups](../../doc/controllers/user.md#restapi-v2-add-user-to-groups) -* [Restapi V2 Remove User From Groups](../../doc/controllers/user.md#restapi-v2-remove-user-from-groups) -* [Restapi V2 Search Users](../../doc/controllers/user.md#restapi-v2-search-users) -* [Restapi V2 Change Password of User](../../doc/controllers/user.md#restapi-v2-change-password-of-user) -* [Restapi V2 Add User to Orgs](../../doc/controllers/user.md#restapi-v2-add-user-to-orgs) - - -# Restapi V2 Get User - -To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information - -```csharp -RestapiV2GetUserAsync( - string name = null, - string id = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Username of the user that you want to query. | -| `id` | `string` | Query, Optional | The GUID of the user account to query | - -## Response Type - -[`Task`](../../doc/models/user-response.md) - -## Example Usage - -```csharp -try -{ - UserResponse result = await userController.RestapiV2GetUserAsync(null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create User - -To programmatically create a user account in the ThoughtSpot system use this API endpoint. Using this API, you can create a user and assign groups. -To create a user, you require admin user privileges. -All users created in the ThoughtSpot system are added to ALL_GROUP - -```csharp -RestapiV2CreateUserAsync( - string name, - string displayName, - string password, - Models.VisibilityEnum? visibility = null, - string mail = null, - List orgIds = null, - List groups = null, - Models.StateEnum? state = null, - bool? notifyOnShare = null, - bool? showWalkMe = null, - bool? analystOnboardingComplete = null, - Models.Type8Enum? type = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Required | Name of the user. The username string must be unique. | -| `displayName` | `string` | Query, Required | A unique display name string for the user account, usually their first and last name | -| `password` | `string` | Query, Required | Password for the user account. | -| `visibility` | [`Models.VisibilityEnum?`](../../doc/models/visibility-enum.md) | Query, Optional | Visibility of the user. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and this allows them to share objects | -| `mail` | `string` | Query, Optional | Email of the user account | -| `orgIds` | `List` | Query, Optional | Array of org identifiers. If no value is provided then user will be created in the organization associated with the login session. | -| `groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Query, Optional | Array of objects of groups that the user belong to. | -| `state` | [`Models.StateEnum?`](../../doc/models/state-enum.md) | Query, Optional | Status of user account. acitve or inactive. | -| `notifyOnShare` | `bool?` | Query, Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | -| `showWalkMe` | `bool?` | Query, Optional | The user preference for revisiting the onboarding experience. | -| `analystOnboardingComplete` | `bool?` | Query, Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | -| `type` | [`Models.Type8Enum?`](../../doc/models/type-8-enum.md) | Query, Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | - -## Response Type - -[`Task`](../../doc/models/user-response.md) - -## Example Usage - -```csharp -string name = "name0"; -string displayName = "displayName2"; -string password = "password4"; - -try -{ - UserResponse result = await userController.RestapiV2CreateUserAsync(name, displayName, password, null, null, null, null, null, null, null, null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update User - -You can use this endpoint to programmatically modify an existing user account. To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```csharp -RestapiV2UpdateUserAsync( - Models.TspublicRestV2UserUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2UserUpdateRequest`](../../doc/models/tspublic-rest-v2-user-update-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2UserUpdateRequest(); - -try -{ - bool? result = await userController.RestapiV2UpdateUserAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete User - -To remove a user from the ThoughtSpot system, use this endpoint. -At Least one value needed. When both are given user id will be considered to delete user. - -```csharp -RestapiV2DeleteUserAsync( - string name = null, - string id = null, - int? orgId = null) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Username of the user that you want to query. | -| `id` | `string` | Query, Optional | The GUID of the user account to query | -| `orgId` | `int?` | Query, Optional | Unique identifier of the organization from which the user would be deleted. If no value is provided then user will be deleted from the organization associated with the login session. | - -## Response Type - -`Task` - -## Example Usage - -```csharp -try -{ - bool? result = await userController.RestapiV2DeleteUserAsync(null, null, null); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add User to Groups - -To programmatically add groups to an existing ThoughtSpot user use this endpoint. -When you assign groups to a user, the user inherits the privileges assigned to those groups. -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```csharp -RestapiV2AddUserToGroupsAsync( - Models.TspublicRestV2UserAddgroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2UserAddgroupRequest`](../../doc/models/tspublic-rest-v2-user-addgroup-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2UserAddgroupRequest(); -body.Groups = new List(); - -var bodyGroups0 = new GroupNameAndIDInput(); -body.Groups.Add(bodyGroups0); - - -try -{ - bool? result = await userController.RestapiV2AddUserToGroupsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove User From Groups - -To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. -The API removes only the user association. It does not delete the user or group from the Thoughtspot system -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```csharp -RestapiV2RemoveUserFromGroupsAsync( - Models.TspublicRestV2UserRemovegroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2UserRemovegroupRequest`](../../doc/models/tspublic-rest-v2-user-removegroup-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2UserRemovegroupRequest(); -body.Groups = new List(); - -var bodyGroups0 = new GroupNameAndIDInput(); -body.Groups.Add(bodyGroups0); - - -try -{ - bool? result = await userController.RestapiV2RemoveUserFromGroupsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Users - -To get the details of a specific user account or all users in the ThoughtSpot system use this end point. - -```csharp -RestapiV2SearchUsersAsync( - Models.TspublicRestV2UserSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2UserSearchRequest`](../../doc/models/tspublic-rest-v2-user-search-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2UserSearchRequest(); - -try -{ - object result = await userController.RestapiV2SearchUsersAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Change Password of User - -To change the password of a ThoughtSpot user account, use this endpoint. - -At least one of id or name of user is required. When both are given user id will be considered. - -```csharp -RestapiV2ChangePasswordOfUserAsync( - Models.TspublicRestV2UserChangepasswordRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2UserChangepasswordRequest`](../../doc/models/tspublic-rest-v2-user-changepassword-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2UserChangepasswordRequest(); -body.CurrentPassword = "currentPassword0"; -body.NewPassword = "newPassword0"; - -try -{ - bool? result = await userController.RestapiV2ChangePasswordOfUserAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add User to Orgs - -To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. - -At least one of id or name of the organization is required. When both are given, then organization id will be considered. - -Requires Administration access for the organization to which users need to be added. - -```csharp -RestapiV2AddUserToOrgsAsync( - Models.TspublicRestV2UserAddorgRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`Models.TspublicRestV2UserAddorgRequest`](../../doc/models/tspublic-rest-v2-user-addorg-request.md) | Body, Required | - | - -## Response Type - -`Task` - -## Example Usage - -```csharp -var body = new TspublicRestV2UserAddorgRequest(); -body.Users = new List(); - -var bodyUsers0 = new UserNameAndIDInput(); -body.Users.Add(bodyUsers0); - - -try -{ - bool? result = await userController.RestapiV2AddUserToOrgsAsync(body); -} -catch (ApiException e){}; -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/DotNet/doc/http-client-configuration-builder.md b/DotNet/doc/http-client-configuration-builder.md deleted file mode 100644 index 5919d33b4..000000000 --- a/DotNet/doc/http-client-configuration-builder.md +++ /dev/null @@ -1,19 +0,0 @@ - -# HttpClientConfiguration Builder Class - -Class to build instances of HttpClientConfiguration. - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `Timeout(TimeSpan timeout)` | Http client timeout. | `Builder` | -| `SkipSslCertVerification(bool skipSslCertVerification)` | Whether to skip verification of SSL certificates. | `Builder` | -| `NumberOfRetries(int numberOfRetries)` | Number of times the request is retried. | `Builder` | -| `BackoffFactor(int backoffFactor)` | Exponential backoff factor for duration between retry calls. | `Builder` | -| `RetryInterval(double retryInterval)` | The time interval between the endpoint calls. | `Builder` | -| `MaximumRetryWaitTime(TimeSpan maximumRetryWaitTime)` | The maximum retry wait time. | `Builder` | -| `StatusCodesToRetry(IList statusCodesToRetry)` | List of Http status codes to invoke retry. | `Builder` | -| `RequestMethodsToRetry(IList requestMethodsToRetry)` | List of Http request methods to invoke retry. | `Builder` | -| `Build()` | Builds a new HttpClientConfiguration object using the set fields. | `HttpClientConfiguration` | - diff --git a/DotNet/doc/http-client-configuration.md b/DotNet/doc/http-client-configuration.md deleted file mode 100644 index 24d1b198d..000000000 --- a/DotNet/doc/http-client-configuration.md +++ /dev/null @@ -1,26 +0,0 @@ - -# HttpClientConfiguration Class - -HttpClientConfiguration represents the current state of the Http Client. - -## Properties - -| Name | Description | Type | -| --- | --- | --- | -| Timeout | Http client timeout. | `TimeSpan` | -| SkipSslCertVerification | Whether to skip verification of SSL certificates. | `bool` | -| NumberOfRetries | Number of times the request is retried. | `int` | -| BackoffFactor | Exponential backoff factor for duration between retry calls. | `int` | -| RetryInterval | The time interval between the endpoint calls. | `double` | -| MaximumRetryWaitTime | The maximum retry wait time. | `TimeSpan` | -| StatusCodesToRetry | List of Http status codes to invoke retry. | `IList` | -| RequestMethodsToRetry | List of Http request methods to invoke retry. | `IList` | -| HttpClientInstance | HttpClient instance used to make the HTTP calls | `HttpClient` | -| OverrideHttpClientConfiguration | Boolean which allows the SDK to override http client instance's settings used for features like retries, timeouts etc. | `bool` | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `ToBuilder()` | Creates an object of the HttpClientConfiguration using the values provided for the builder. | `Builder` | - diff --git a/DotNet/doc/http-context.md b/DotNet/doc/http-context.md deleted file mode 100644 index 8d1611e41..000000000 --- a/DotNet/doc/http-context.md +++ /dev/null @@ -1,18 +0,0 @@ - -# HttpContext Class - -Represents the contextual information of HTTP request and response. - -## Properties - -| Name | Description | Type | -| --- | --- | --- | -| Request | Gets the http request in the current context. | `HttpRequest` | -| Response | Gets the http response in the current context. | `HttpResponse` | - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpContext(HttpRequest request, HttpResponse response)` | Initializes a new instance of the class. | - diff --git a/DotNet/doc/http-request.md b/DotNet/doc/http-request.md deleted file mode 100644 index 3cda0c9b2..000000000 --- a/DotNet/doc/http-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# HttpRequest Class - -HttpResponse stores necessary information about the http response. - -## Properties - -| Name | Description | Type | -| --- | --- | --- | -| StatusCode | Gets the HTTP Status code of the http response. | `int` | -| Headers | Gets the headers of the http response. | `Dictionary` | -| RawBody | Gets the stream of the body. | `Stream` | - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpRequest(HttpMethod method, string queryUrl)` | Constructor to initialize the http request object. | -| `HttpRequest(HttpMethod method, string queryUrl, Dictionary headers, string username, string password, Dictionary queryParameters = null)` | Constructor to initialize the http request with headers and optional Basic auth params. | -| `HttpRequest(HttpMethod method, string queryUrl, Dictionary headers, object body, string username, string password, Dictionary queryParameters = null)` | Constructor to initialize the http request with headers, body and optional Basic auth params. | -| `HttpRequest(HttpMethod method, string queryUrl, Dictionary headers, List> formParameters, string username, string password, Dictionary queryParameters = null)` | Constructor to initialize the http request with headers, form parameters and optional Basic auth params. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `AddHeaders(Dictionary HeadersToAdd)` | Concatenate values from a Dictionary to this object. | `Dictionary` | -| `AddQueryParameters(Dictionary queryParamaters)` | Concatenate values from a Dictionary to query parameters dictionary. | `void` | - diff --git a/DotNet/doc/http-response.md b/DotNet/doc/http-response.md deleted file mode 100644 index 5d54c4aa9..000000000 --- a/DotNet/doc/http-response.md +++ /dev/null @@ -1,19 +0,0 @@ - -# HttpResponse Class - -HttpResponse stores necessary information about the http response. - -## Properties - -| Name | Description | Type | -| --- | --- | --- | -| StatusCode | Gets the HTTP Status code of the http response. | `int` | -| Headers | Gets the headers of the http response. | `Dictionary` | -| RawBody | Gets the stream of the body. | `Stream` | - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpResponse(int statusCode, Dictionary headers, Stream rawBody)` | Initializes a new instance of the class. | - diff --git a/DotNet/doc/http-string-response.md b/DotNet/doc/http-string-response.md deleted file mode 100644 index 7e82f647d..000000000 --- a/DotNet/doc/http-string-response.md +++ /dev/null @@ -1,19 +0,0 @@ - -# HttpStringResponse Class - -HttpStringResponse inherits from HttpResponse and has additional property of string body. - -## Properties - -| Name | Description | Type | -| --- | --- | --- | -| StatusCode | Gets the HTTP Status code of the http response. | `int` | -| Headers | Gets the headers of the http response. | `Dictionary` | -| Body | Gets the raw string body of the http response. | `string` | - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpStringResponse(int statusCode, Dictionary headers, Stream rawBody, string body) : base(statusCode, headers, rawBody)` | Initializes a new instance of the class. | - diff --git a/DotNet/doc/i-auth-manager.md b/DotNet/doc/i-auth-manager.md deleted file mode 100644 index 80705d6c0..000000000 --- a/DotNet/doc/i-auth-manager.md +++ /dev/null @@ -1,12 +0,0 @@ - -# IAuthManager Class - -IAuthManager adds the authenticaion layer to the http calls. - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `Apply(HttpRequest httpRequest)` | Add authentication information to the HTTP Request. | `HttpRequest` | -| `ApplyAsync(HttpRequest httpRequest)` | Asynchronously add authentication information to the HTTP Request. | `Task` | - diff --git a/DotNet/doc/models/access-enum.md b/DotNet/doc/models/access-enum.md deleted file mode 100644 index 73237e74b..000000000 --- a/DotNet/doc/models/access-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Access Enum - -Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. - -## Enumeration - -`AccessEnum` - -## Fields - -| Name | -| --- | -| `READONLY` | -| `MODIFY` | - diff --git a/DotNet/doc/models/access-level-enum.md b/DotNet/doc/models/access-level-enum.md deleted file mode 100644 index 983e89e4f..000000000 --- a/DotNet/doc/models/access-level-enum.md +++ /dev/null @@ -1,14 +0,0 @@ - -# Access Level Enum - -## Enumeration - -`AccessLevelEnum` - -## Fields - -| Name | -| --- | -| `FULL` | -| `REPORTBOOKVIEW` | - diff --git a/DotNet/doc/models/access-level-input.md b/DotNet/doc/models/access-level-input.md deleted file mode 100644 index 1b8cbd93b..000000000 --- a/DotNet/doc/models/access-level-input.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Access Level Input - -## Structure - -`AccessLevelInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Username or name of the user group | -| `Id` | `string` | Optional | GUID of the user or user group | -| `Type` | [`Models.Type1Enum?`](../../doc/models/type-1-enum.md) | Optional | Type of access detail provided | -| `Access` | [`Models.AccessEnum?`](../../doc/models/access-enum.md) | Optional | Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "type": null, - "access": null -} -``` - diff --git a/DotNet/doc/models/add-table-input.md b/DotNet/doc/models/add-table-input.md deleted file mode 100644 index a9a53d6b6..000000000 --- a/DotNet/doc/models/add-table-input.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Add Table Input - -## Structure - -`AddTableInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Required | Name of the table | -| `DbName` | `string` | Required | Name of the database in the data platform | -| `SchemaName` | `string` | Required | Name of the schema in the database | -| `Columns` | [`List`](../../doc/models/columns-input.md) | Required | A JSON array of column details | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dbName": "dbName8", - "schemaName": "schemaName4", - "columns": [ - { - "name": "name0", - "dataType": "dataType2" - } - ] -} -``` - diff --git a/DotNet/doc/models/adminsync-principal-response.md b/DotNet/doc/models/adminsync-principal-response.md deleted file mode 100644 index 7faf83c94..000000000 --- a/DotNet/doc/models/adminsync-principal-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Adminsync Principal Response - -## Structure - -`AdminsyncPrincipalResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `UsersAdded` | `List` | Optional | Username of list of users added | -| `UsersDeleted` | `List` | Optional | Username of list of users deleted | -| `UsersUpdated` | `List` | Optional | Username of list of users updated | -| `GroupsAdded` | `List` | Optional | Group name of list of groups added | -| `GroupsDeleted` | `List` | Optional | Group name of list of groups deleted | -| `GroupsUpdated` | `List` | Optional | Group name of list of groups updated | - -## Example (as JSON) - -```json -{ - "usersAdded": null, - "usersDeleted": null, - "usersUpdated": null, - "groupsAdded": null, - "groupsDeleted": null, - "groupsUpdated": null -} -``` - diff --git a/DotNet/doc/models/answer-query-response.md b/DotNet/doc/models/answer-query-response.md deleted file mode 100644 index d12c1f717..000000000 --- a/DotNet/doc/models/answer-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Answer Query Response - -## Structure - -`AnswerQueryResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | The name of the saved Answer | -| `Id` | `string` | Optional | The GUID of the saved Answer | -| `QuerySql` | `string` | Optional | SQL query associated with the saved Answer | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/DotNet/doc/models/client-state.md b/DotNet/doc/models/client-state.md deleted file mode 100644 index 1c48428cd..000000000 --- a/DotNet/doc/models/client-state.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Client State - -## Structure - -`ClientState` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Color` | `string` | Optional | Color assigned to the tag | - -## Example (as JSON) - -```json -{ - "color": null -} -``` - diff --git a/DotNet/doc/models/columns-input.md b/DotNet/doc/models/columns-input.md deleted file mode 100644 index 6afbb7538..000000000 --- a/DotNet/doc/models/columns-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Columns Input - -## Structure - -`ColumnsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Required | Name of the column | -| `DataType` | `string` | Required | Datatype of the column | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dataType": "dataType2" -} -``` - diff --git a/DotNet/doc/models/connection-column.md b/DotNet/doc/models/connection-column.md deleted file mode 100644 index c87faae7c..000000000 --- a/DotNet/doc/models/connection-column.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Column - -## Structure - -`ConnectionColumn` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the table | -| `Type` | `string` | Optional | Type of the Table | -| `Column` | [`List`](../../doc/models/table-columns.md) | Optional | List of columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "column": null -} -``` - diff --git a/DotNet/doc/models/connection-columns-shema.md b/DotNet/doc/models/connection-columns-shema.md deleted file mode 100644 index f00de3fd2..000000000 --- a/DotNet/doc/models/connection-columns-shema.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Connection Columns Shema - -## Structure - -`ConnectionColumnsShema` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the table | -| `DbName` | `string` | Optional | Name of the database | -| `SchemaName` | `string` | Optional | Name of the schema | -| `Columns` | [`List`](../../doc/models/table-columns.md) | Optional | List of columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "dbName": null, - "schemaName": null, - "columns": null -} -``` - diff --git a/DotNet/doc/models/connection-database-type.md b/DotNet/doc/models/connection-database-type.md deleted file mode 100644 index 3afa92b4a..000000000 --- a/DotNet/doc/models/connection-database-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Database Type - -## Structure - -`ConnectionDatabaseType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the database | -| `Schema` | [`List`](../../doc/models/connection-table-schema.md) | Optional | List of schemas | - -## Example (as JSON) - -```json -{ - "name": null, - "schema": null -} -``` - diff --git a/DotNet/doc/models/connection-response.md b/DotNet/doc/models/connection-response.md deleted file mode 100644 index b9e55e4fe..000000000 --- a/DotNet/doc/models/connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Connection Response - -## Structure - -`ConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the connection | -| `Description` | `string` | Optional | Description associated with the connection | -| `Type` | `string` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | -| `Id` | `string` | Optional | GUID of the connection | -| `Scheduled` | `bool?` | Optional | Indicates if the data sync is scheduled for this connection | -| `ConnectionType` | `string` | Optional | - | -| `Configuration` | `string` | Optional | Configuration properties of the connection | -| `IsExternal` | `bool?` | Optional | - | -| `IsDeprecated` | `bool?` | Optional | Indicates if the connection is deprecated | -| `IsDeleted` | `bool?` | Optional | Indicates if the connection is deleted | -| `IsHidden` | `bool?` | Optional | Indicates if the connection is hideen | -| `Complete` | `bool?` | Optional | Indicates if the all the properties of connection is provided | -| `IndexVersion` | `double?` | Optional | - | -| `GenerationNum` | `double?` | Optional | - | -| `Created` | `string` | Optional | Date and time when the connection was created | -| `Modified` | `string` | Optional | Date and time of last modification of the connection | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `ModifiedBy` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Owner` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Tags` | `List` | Optional | List of tags assigned to the connection | -| `Tables` | [`List`](../../doc/models/table-list.md) | Optional | List of tables linked to this connection | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/DotNet/doc/models/connection-table-columns-input.md b/DotNet/doc/models/connection-table-columns-input.md deleted file mode 100644 index 28c49986a..000000000 --- a/DotNet/doc/models/connection-table-columns-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Table Columns Input - -## Structure - -`ConnectionTableColumnsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `DbName` | `string` | Required | Name of the database | -| `SchemaName` | `string` | Required | Name of the schema | -| `Name` | `string` | Required | Name of the table | - -## Example (as JSON) - -```json -{ - "dbName": "dbName8", - "schemaName": "schemaName4", - "name": "name0" -} -``` - diff --git a/DotNet/doc/models/connection-table-columns-response.md b/DotNet/doc/models/connection-table-columns-response.md deleted file mode 100644 index f206e3829..000000000 --- a/DotNet/doc/models/connection-table-columns-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Columns Response - -## Structure - -`ConnectionTableColumnsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | Connection id | -| `Table` | [`List`](../../doc/models/connection-columns-shema.md) | Optional | List of table details | - -## Example (as JSON) - -```json -{ - "id": null, - "table": null -} -``` - diff --git a/DotNet/doc/models/connection-table-response.md b/DotNet/doc/models/connection-table-response.md deleted file mode 100644 index d5d208d2b..000000000 --- a/DotNet/doc/models/connection-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Response - -## Structure - -`ConnectionTableResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | Connection id | -| `Database` | [`List`](../../doc/models/connection-database-type.md) | Optional | List of databases | - -## Example (as JSON) - -```json -{ - "id": null, - "database": null -} -``` - diff --git a/DotNet/doc/models/connection-table-schema.md b/DotNet/doc/models/connection-table-schema.md deleted file mode 100644 index 7c8595351..000000000 --- a/DotNet/doc/models/connection-table-schema.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Schema - -## Structure - -`ConnectionTableSchema` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the schema | -| `Table` | [`List`](../../doc/models/connection-column.md) | Optional | List of table details | - -## Example (as JSON) - -```json -{ - "name": null, - "table": null -} -``` - diff --git a/DotNet/doc/models/create-connection-response.md b/DotNet/doc/models/create-connection-response.md deleted file mode 100644 index bffa08ffd..000000000 --- a/DotNet/doc/models/create-connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Create Connection Response - -## Structure - -`CreateConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the connection | -| `Description` | `string` | Optional | Description associated with the connection | -| `Type` | `string` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | -| `Id` | `string` | Optional | GUID of the connection | -| `Scheduled` | `bool?` | Optional | Indicates if the data sync is scheduled for this connection | -| `ConnectionType` | `string` | Optional | - | -| `Configuration` | `string` | Optional | Configuration properties of the connection | -| `IsExternal` | `bool?` | Optional | - | -| `IsDeprecated` | `bool?` | Optional | Indicates if the connection is deprecated | -| `IsDeleted` | `bool?` | Optional | Indicates if the connection is deleted | -| `IsHidden` | `bool?` | Optional | Indicates if the connection is hideen | -| `Complete` | `bool?` | Optional | Indicates if the all the properties of connection is provided | -| `IndexVersion` | `double?` | Optional | - | -| `GenerationNum` | `double?` | Optional | - | -| `Created` | `string` | Optional | Date and time when user account was created | -| `Modified` | `string` | Optional | Date and time of last modification of user account | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `ModifiedBy` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Owner` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Tags` | `List` | Optional | List of tags assigned to the connection | -| `Tables` | `List` | Optional | List of tables linked to this connection and details of the columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/DotNet/doc/models/create-table-response.md b/DotNet/doc/models/create-table-response.md deleted file mode 100644 index bbf1394fe..000000000 --- a/DotNet/doc/models/create-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Create Table Response - -## Structure - -`CreateTableResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `LogicalTableHeader` | [`Models.LogicalTableHeader`](../../doc/models/logical-table-header.md) | Optional | - | -| `PhysicalTableId` | `string` | Optional | - | - -## Example (as JSON) - -```json -{ - "logicalTableHeader": null, - "physicalTableId": null -} -``` - diff --git a/DotNet/doc/models/dependent-permission.md b/DotNet/doc/models/dependent-permission.md deleted file mode 100644 index 7f2292117..000000000 --- a/DotNet/doc/models/dependent-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Dependent Permission - -## Structure - -`DependentPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | GUID of the object | -| `Name` | `string` | Optional | Name of the object | -| `Type` | `string` | Optional | Indicates the type of the object | -| `Permission` | `string` | Optional | Indicates the permission which user or user group has on the object | -| `SharedPermission` | `string` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | -| `GroupPermission` | [`List`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/DotNet/doc/models/error-response-exception.md b/DotNet/doc/models/error-response-exception.md deleted file mode 100644 index d3f195f56..000000000 --- a/DotNet/doc/models/error-response-exception.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Error Response Exception - -## Structure - -`ErrorResponseException` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Error` | `object` | Optional | - | - -## Example (as JSON) - -```json -{ - "error": null -} -``` - diff --git a/DotNet/doc/models/format-type-3-enum.md b/DotNet/doc/models/format-type-3-enum.md deleted file mode 100644 index eda7010b5..000000000 --- a/DotNet/doc/models/format-type-3-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Format Type 3 Enum - -The format in which to export the objects - -## Enumeration - -`FormatType3Enum` - -## Fields - -| Name | -| --- | -| `YAML` | -| `JSON` | - diff --git a/DotNet/doc/models/format-type-enum.md b/DotNet/doc/models/format-type-enum.md deleted file mode 100644 index 5d0d34595..000000000 --- a/DotNet/doc/models/format-type-enum.md +++ /dev/null @@ -1,20 +0,0 @@ - -# Format Type Enum - -The format of the data in the response. - -FULL: The response comes in "column":"value" format. - -COMPACT: The response includes only the value of the columns. - -## Enumeration - -`FormatTypeEnum` - -## Fields - -| Name | -| --- | -| `COMPACT` | -| `FULL` | - diff --git a/DotNet/doc/models/from-user-name-and-id-input.md b/DotNet/doc/models/from-user-name-and-id-input.md deleted file mode 100644 index 6b47dbcf0..000000000 --- a/DotNet/doc/models/from-user-name-and-id-input.md +++ /dev/null @@ -1,29 +0,0 @@ - -# From User Name and ID Input - -A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. - -If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. - -Provide either name or id as input. When both are given user id will be considered. - -## Structure - -`FromUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Username of the user | -| `Id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/group-name-and-id-input.md b/DotNet/doc/models/group-name-and-id-input.md deleted file mode 100644 index 02563635c..000000000 --- a/DotNet/doc/models/group-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID Input - -## Structure - -`GroupNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | GUID of the group | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/group-name-and-id.md b/DotNet/doc/models/group-name-and-id.md deleted file mode 100644 index 946d81f72..000000000 --- a/DotNet/doc/models/group-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID - -## Structure - -`GroupNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | GUID of the group | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/group-permission.md b/DotNet/doc/models/group-permission.md deleted file mode 100644 index 7adaa8b6e..000000000 --- a/DotNet/doc/models/group-permission.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Group Permission - -## Structure - -`GroupPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | GUID of the user group | -| `Name` | `string` | Optional | Name of the user group | -| `Permission` | `string` | Optional | Indicates the permission which user group has on the object | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "permission": null -} -``` - diff --git a/DotNet/doc/models/group-response.md b/DotNet/doc/models/group-response.md deleted file mode 100644 index e3ddaf974..000000000 --- a/DotNet/doc/models/group-response.md +++ /dev/null @@ -1,79 +0,0 @@ - -# Group Response - -## Structure - -`GroupResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `DisplayName` | `string` | Optional | A unique display name string for the user group | -| `Id` | `string` | Optional | GUID of the group | -| `Visibility` | `string` | Optional | Visibility of the group | -| `Description` | `string` | Optional | Description of the group | -| `Privileges` | `List` | Optional | Privileges assigned to the group | -| `Orgs` | [`List`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | -| `Groups` | [`List`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which is added | -| `Users` | [`List`](../../doc/models/user-name-and-id.md) | Optional | User Group Information by Id or Name. | -| `AssignedLiveboards` | [`List`](../../doc/models/liveboard-name-and-id.md) | Optional | Liveboards assigned to the group | -| `UserGroupContent` | `object` | Optional | - | -| `Tags` | `List` | Optional | Tags assigned to the group | -| `IsDeleted` | `bool?` | Optional | Indicates if the group is deleted | -| `IsHidden` | `bool?` | Optional | Indicates if the group is hidden | -| `IsExternal` | `bool?` | Optional | Indicates if the group is from external system | -| `IsDeprecated` | `bool?` | Optional | - | -| `Complete` | `bool?` | Optional | Indicates if the all the properties of group is provided | -| `IsSystemPrincipal` | `bool?` | Optional | Indicates if the group is system principal | -| `Type` | `string` | Optional | Indicates the type of group | -| `Parenttype` | `string` | Optional | Indicates the type of parent object | -| `GroupIdx` | `int?` | Optional | - | -| `MetadataVersion` | `int?` | Optional | - | -| `TenantId` | `string` | Optional | Tenant id associated with the group | -| `IndexVersion` | `double?` | Optional | - | -| `GenerationNum` | `double?` | Optional | - | -| `Created` | `double?` | Optional | Date and time when group was created | -| `Modified` | `double?` | Optional | Date and time of last modification of the group | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `ModifiedBy` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Owner` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "description": null, - "privileges": null, - "orgs": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "userGroupContent": null, - "tags": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "groupIdx": null, - "metadataVersion": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/DotNet/doc/models/home-liveboard-response.md b/DotNet/doc/models/home-liveboard-response.md deleted file mode 100644 index fa570c5d2..000000000 --- a/DotNet/doc/models/home-liveboard-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Home Liveboard Response - -## Structure - -`HomeLiveboardResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `UserName` | `string` | Optional | Name of the user | -| `UserId` | `string` | Optional | The GUID of the user | -| `LiveboardName` | `string` | Optional | Name of the liveboard | -| `LiveboardId` | `string` | Optional | The GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardName": null, - "liveboardId": null -} -``` - diff --git a/DotNet/doc/models/import-policy-enum.md b/DotNet/doc/models/import-policy-enum.md deleted file mode 100644 index 74a7195e1..000000000 --- a/DotNet/doc/models/import-policy-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Import Policy Enum - -Policy to follow during import - -## Enumeration - -`ImportPolicyEnum` - -## Fields - -| Name | -| --- | -| `PARTIAL` | -| `ALLORNONE` | -| `VALIDATEONLY` | - diff --git a/DotNet/doc/models/liveboard-name-and-id.md b/DotNet/doc/models/liveboard-name-and-id.md deleted file mode 100644 index 80b5d377e..000000000 --- a/DotNet/doc/models/liveboard-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Liveboard Name and ID - -## Structure - -`LiveboardNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the liveboard | -| `Id` | `string` | Optional | GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/liveboard-query-response.md b/DotNet/doc/models/liveboard-query-response.md deleted file mode 100644 index 8b9e276e6..000000000 --- a/DotNet/doc/models/liveboard-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Liveboard Query Response - -## Structure - -`LiveboardQueryResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | The name of the Liveboard | -| `Id` | `string` | Optional | The GUID of the Liveboard | -| `Viz` | [`List`](../../doc/models/viz-type.md) | Optional | SQL query associated with the saved Answer | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "viz": null -} -``` - diff --git a/DotNet/doc/models/logical-table-header.md b/DotNet/doc/models/logical-table-header.md deleted file mode 100644 index cd29717bb..000000000 --- a/DotNet/doc/models/logical-table-header.md +++ /dev/null @@ -1,51 +0,0 @@ - -# Logical Table Header - -## Structure - -`LogicalTableHeader` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | - | -| `Name` | `string` | Optional | - | -| `Author` | `string` | Optional | - | -| `AuthorName` | `string` | Optional | - | -| `AuthorDisplayName` | `string` | Optional | - | -| `Created` | `double?` | Optional | - | -| `Modified` | `double?` | Optional | - | -| `ModifiedBy` | `string` | Optional | - | -| `GenerationNum` | `int?` | Optional | - | -| `Owner` | `string` | Optional | - | -| `Deleted` | `bool?` | Optional | - | -| `Hidden` | `bool?` | Optional | - | -| `Database` | `string` | Optional | - | -| `Schema` | `string` | Optional | - | -| `Type` | `string` | Optional | - | -| `SubType` | `string` | Optional | - | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "author": null, - "authorName": null, - "authorDisplayName": null, - "created": null, - "modified": null, - "modifiedBy": null, - "generationNum": null, - "owner": null, - "deleted": null, - "hidden": null, - "database": null, - "schema": null, - "type": null, - "subType": null -} -``` - diff --git a/DotNet/doc/models/logs-response.md b/DotNet/doc/models/logs-response.md deleted file mode 100644 index 9acd67de6..000000000 --- a/DotNet/doc/models/logs-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Logs Response - -## Structure - -`LogsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Date` | `string` | Optional | Date and time for the event in the log | -| `Log` | `string` | Optional | Logged event at the time specified in JSON format. This includes, Event ID, A unique description of the event, for example, User login failed, Timestamp, User ID of the person initiating the event and IP address of the ThoughtSpot instance. | - -## Example (as JSON) - -```json -{ - "date": null, - "log": null -} -``` - diff --git a/DotNet/doc/models/metadata-tag-response.md b/DotNet/doc/models/metadata-tag-response.md deleted file mode 100644 index 276242df5..000000000 --- a/DotNet/doc/models/metadata-tag-response.md +++ /dev/null @@ -1,47 +0,0 @@ - -# Metadata Tag Response - -## Structure - -`MetadataTagResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the tag | -| `Id` | `string` | Optional | GUID of the tag | -| `ClientState` | [`Models.ClientState`](../../doc/models/client-state.md) | Optional | - | -| `IndexVersion` | `double?` | Optional | - | -| `GenerationNum` | `double?` | Optional | - | -| `IsDeleted` | `bool?` | Optional | Indicates if the tag is deleted | -| `IsHidden` | `bool?` | Optional | Indicates if the tag is hidden | -| `IsExternal` | `bool?` | Optional | Indicates if the tag is from external system | -| `IsDeprecated` | `bool?` | Optional | - | -| `Created` | `double?` | Optional | Date and time when group was created | -| `Modified` | `double?` | Optional | Date and time of last modification of the group | -| `ModifiedBy` | [`Models.TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | -| `Author` | [`Models.TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | -| `Owner` | [`Models.TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "clientState": null, - "indexVersion": null, - "generationNum": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "created": null, - "modified": null, - "modifiedBy": null, - "author": null, - "owner": null -} -``` - diff --git a/DotNet/doc/models/name-and-id-input.md b/DotNet/doc/models/name-and-id-input.md deleted file mode 100644 index 93bb357eb..000000000 --- a/DotNet/doc/models/name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Name and Id Input - -## Structure - -`NameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the user | -| `Id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/org-type.md b/DotNet/doc/models/org-type.md deleted file mode 100644 index a22b0604c..000000000 --- a/DotNet/doc/models/org-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Org Type - -## Structure - -`OrgType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the organization | -| `Id` | `int?` | Optional | Id of the organization | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/orgs-response.md b/DotNet/doc/models/orgs-response.md deleted file mode 100644 index b4f8bad8e..000000000 --- a/DotNet/doc/models/orgs-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Orgs Response - -## Structure - -`OrgsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `OrgId` | `int?` | Optional | ID of the organization searched for | -| `OrgName` | `string` | Optional | Name of the organization searched for | -| `Description` | `string` | Optional | Description associated with the organization | -| `AllGroupUserId` | `string` | Optional | GUID of the ALL group in the organization | -| `DefaultAdminUserGroupId` | `string` | Optional | GUID of the admin group in the organization | -| `Active` | `bool?` | Optional | Indicates if the organization is active or not | - -## Example (as JSON) - -```json -{ - "orgId": null, - "orgName": null, - "description": null, - "allGroupUserId": null, - "defaultAdminUserGroupId": null, - "active": null -} -``` - diff --git a/DotNet/doc/models/orientation-enum.md b/DotNet/doc/models/orientation-enum.md deleted file mode 100644 index e297ba16e..000000000 --- a/DotNet/doc/models/orientation-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Orientation Enum - -Page orientation for the PDF. Default: PORTRAIT - -## Enumeration - -`OrientationEnum` - -## Fields - -| Name | -| --- | -| `PORTRAIT` | -| `LANDSCAPE` | - diff --git a/DotNet/doc/models/pdf-options-input.md b/DotNet/doc/models/pdf-options-input.md deleted file mode 100644 index 75a0fa412..000000000 --- a/DotNet/doc/models/pdf-options-input.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Pdf Options Input - -## Structure - -`PdfOptionsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Orientation` | [`Models.OrientationEnum?`](../../doc/models/orientation-enum.md) | Optional | Page orientation for the PDF. Default: PORTRAIT | -| `TruncateTables` | `bool?` | Optional | When set to true, only the first page of the tables is displayed in the file.

This setting is applicable only when generating report for specific visualization ids. Default: false | -| `IncludeLogo` | `bool?` | Optional | Include customized wide logo if available in the footer. Default: true | -| `FooterText` | `string` | Optional | Footer text to include in the footer of each page of the PDF. | -| `IncludePageNumber` | `bool?` | Optional | When set to true, the page number is included in the footer of each page. Default: true | -| `IncludeCoverPage` | `bool?` | Optional | When set to true, a cover page with the Liveboard title is added in the PDF. Default: true | -| `IncludeFilterPage` | `bool?` | Optional | When set to true, a second page with a list of all applied filters is added in the PDF. Default: true | - -## Example (as JSON) - -```json -{ - "orientation": null, - "truncateTables": null, - "includeLogo": null, - "footerText": null, - "includePageNumber": null, - "includeCoverPage": null, - "includeFilterPage": null -} -``` - diff --git a/DotNet/doc/models/permissions-type-search.md b/DotNet/doc/models/permissions-type-search.md deleted file mode 100644 index b54ffc0d6..000000000 --- a/DotNet/doc/models/permissions-type-search.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Permissions Type Search - -## Structure - -`PermissionsTypeSearch` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Type` | `string` | Optional | Indicates the type of the object | -| `TsObject` | [`List`](../../doc/models/ts-object-type-serach.md) | Optional | An array of objects of type mentioned in type field | - -## Example (as JSON) - -```json -{ - "type": null, - "tsObject": null -} -``` - diff --git a/DotNet/doc/models/pinboard-details.md b/DotNet/doc/models/pinboard-details.md deleted file mode 100644 index eb6768d6d..000000000 --- a/DotNet/doc/models/pinboard-details.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Pinboard Details - -## Structure - -`PinboardDetails` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `PinboardId` | `string` | Optional | pinboard id of recently pinned pinboard | -| `PinboardName` | `string` | Optional | pinboard name of recently pinned pinboard | -| `TabId` | `string` | Optional | tab id of recently pinned tab | -| `TabName` | `string` | Optional | tab name of recently pinned tab | - -## Example (as JSON) - -```json -{ - "pinboardId": null, - "pinboardName": null, - "tabId": null, - "tabName": null -} -``` - diff --git a/DotNet/doc/models/principal-search-response.md b/DotNet/doc/models/principal-search-response.md deleted file mode 100644 index 38db17d72..000000000 --- a/DotNet/doc/models/principal-search-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Principal Search Response - -## Structure - -`PrincipalSearchResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | GUID of the user or user group | -| `Name` | `string` | Optional | Name of the user or user group | -| `Type` | `string` | Optional | Indicates the type of principal | -| `Permissions` | [`List`](../../doc/models/permissions-type-search.md) | Optional | Indicates the permission which user or user group has on the object | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permissions": null -} -``` - diff --git a/DotNet/doc/models/privilege-enum.md b/DotNet/doc/models/privilege-enum.md deleted file mode 100644 index d49665569..000000000 --- a/DotNet/doc/models/privilege-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Privilege Enum - -## Enumeration - -`PrivilegeEnum` - -## Fields - -| Name | -| --- | -| `RANALYSIS` | -| `DATAMANAGEMENT` | -| `APPLICATIONADMINISTRATION` | -| `USERADMINISTRATION` | -| `SYSTEMMANAGEMENT` | -| `SYSTEMINFOADMINISTRATION` | -| `AUTHORING` | -| `BACKUPADMINISTRATION` | -| `SHAREWITHALL` | -| `DEVELOPER` | -| `JOBSCHEDULING` | -| `GROUPADMINISTRATION` | -| `BYPASSRLS` | -| `EXPERIMENTALFEATUREPRIVILEGE` | -| `A3ANALYSIS` | -| `USERDATAUPLOADING` | -| `DATADOWNLOADING` | -| `DISABLEPINBOARDCREATION` | -| `ADMINISTRATION` | - diff --git a/DotNet/doc/models/secuirity-dependents.md b/DotNet/doc/models/secuirity-dependents.md deleted file mode 100644 index af9309995..000000000 --- a/DotNet/doc/models/secuirity-dependents.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Secuirity Dependents - -## Structure - -`SecuirityDependents` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | GUID of the object | -| `Name` | `string` | Optional | Name of the object | -| `Type` | `string` | Optional | Indicates the type of the object | -| `Owner` | `string` | Optional | Owner of the object | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Permissions` | [`List`](../../doc/models/dependent-permission.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null -} -``` - diff --git a/DotNet/doc/models/security-permission-response.md b/DotNet/doc/models/security-permission-response.md deleted file mode 100644 index 4061ba5dd..000000000 --- a/DotNet/doc/models/security-permission-response.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Security Permission Response - -## Structure - -`SecurityPermissionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | GUID of the object | -| `Name` | `string` | Optional | Name of the object | -| `Type` | `string` | Optional | Indicates the type of the object | -| `Owner` | `string` | Optional | GUID of the owner of the object | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Permissions` | [`List`](../../doc/models/security-permission.md) | Optional | An array of object with details of permission on users and user groups | -| `Dependents` | [`List`](../../doc/models/secuirity-dependents.md) | Optional | The objects on which the primary object is dependent on | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null, - "dependents": null -} -``` - diff --git a/DotNet/doc/models/security-permission.md b/DotNet/doc/models/security-permission.md deleted file mode 100644 index b50f2caae..000000000 --- a/DotNet/doc/models/security-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Security Permission - -## Structure - -`SecurityPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | GUID of the user or user group | -| `Name` | `string` | Optional | Name of the user or user group | -| `Type` | `string` | Optional | Indicates the type of principal | -| `Permission` | `string` | Optional | Indicates the permission which user or user group has on the object | -| `SharedPermission` | `string` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | -| `GroupPermission` | [`List`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/DotNet/doc/models/session-login-response.md b/DotNet/doc/models/session-login-response.md deleted file mode 100644 index f2914ecac..000000000 --- a/DotNet/doc/models/session-login-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Session Login Response - -Login response - -## Structure - -`SessionLoginResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `UserName` | `string` | Optional | Username of the user account for which token is generated | -| `Token` | `string` | Optional | Bearer token generated. This will be blank when token type is Cookie | -| `TokenCreatedTime` | `string` | Optional | Date and time at which the token is generated | -| `TokenExpiryDuration` | `string` | Optional | Duration in seconds after which the token expires | -| `TokenType` | `string` | Optional | Type of token generated | - -## Example (as JSON) - -```json -{ - "userName": null, - "token": null, - "tokenCreatedTime": null, - "tokenExpiryDuration": null, - "tokenType": null -} -``` - diff --git a/DotNet/doc/models/sort-by-1-enum.md b/DotNet/doc/models/sort-by-1-enum.md deleted file mode 100644 index a80270e7b..000000000 --- a/DotNet/doc/models/sort-by-1-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by 1 Enum - -Field based on which the re.sponse needs to be ordered. Valid values - -## Enumeration - -`SortBy1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NAME` | -| `DISPLAYNAME` | -| `AUTHOR` | -| `CREATED` | -| `MODIFIED` | -| `LASTACCESSED` | -| `SYNCED` | -| `VIEWS` | -| `NONE` | -| `USERSTATE` | -| `ROWCOUNT` | - diff --git a/DotNet/doc/models/sort-by-enum.md b/DotNet/doc/models/sort-by-enum.md deleted file mode 100644 index 2b1a28b6f..000000000 --- a/DotNet/doc/models/sort-by-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by Enum - -Field based on which the response needs to be ordered. - -## Enumeration - -`SortByEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NAME` | -| `DISPLAYNAME` | -| `AUTHOR` | -| `CREATED` | -| `MODIFIED` | -| `LASTACCESSED` | -| `SYNCED` | -| `VIEWS` | -| `NONE` | -| `USERSTATE` | -| `ROWCOUNT` | - diff --git a/DotNet/doc/models/sort-order-1-enum.md b/DotNet/doc/models/sort-order-1-enum.md deleted file mode 100644 index 2ec76b355..000000000 --- a/DotNet/doc/models/sort-order-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order 1 Enum - -Order in which sortBy should be applied. Valid values - -## Enumeration - -`SortOrder1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `ASC` | -| `DESC` | - diff --git a/DotNet/doc/models/sort-order-enum.md b/DotNet/doc/models/sort-order-enum.md deleted file mode 100644 index e448349b5..000000000 --- a/DotNet/doc/models/sort-order-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order Enum - -Order in which sortBy should be applied. - -## Enumeration - -`SortOrderEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `ASC` | -| `DESC` | - diff --git a/DotNet/doc/models/state-1-enum.md b/DotNet/doc/models/state-1-enum.md deleted file mode 100644 index 758fd0610..000000000 --- a/DotNet/doc/models/state-1-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# State 1 Enum - -Status of user account. acitve or inactive. - -## Enumeration - -`State1Enum` - -## Fields - -| Name | -| --- | -| `ACTIVE` | -| `INACTIVE` | -| `EXPIRED` | -| `LOCKED` | -| `PENDING` | - diff --git a/DotNet/doc/models/state-enum.md b/DotNet/doc/models/state-enum.md deleted file mode 100644 index 94aa47712..000000000 --- a/DotNet/doc/models/state-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# State Enum - -## Enumeration - -`StateEnum` - -## Fields - -| Name | -| --- | -| `ACTIVE` | -| `INACTIVE` | -| `EXPIRED` | -| `LOCKED` | -| `PENDING` | - diff --git a/DotNet/doc/models/table-columns.md b/DotNet/doc/models/table-columns.md deleted file mode 100644 index a2286c158..000000000 --- a/DotNet/doc/models/table-columns.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Columns - -## Structure - -`TableColumns` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the column | -| `DataType` | `string` | Optional | Datatype of the column | - -## Example (as JSON) - -```json -{ - "name": null, - "dataType": null -} -``` - diff --git a/DotNet/doc/models/table-input.md b/DotNet/doc/models/table-input.md deleted file mode 100644 index 0bac3bb31..000000000 --- a/DotNet/doc/models/table-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Input - -## Structure - -`TableInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the table | -| `Id` | `string` | Optional | GUID of the Table | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/table-list.md b/DotNet/doc/models/table-list.md deleted file mode 100644 index 241ebe32e..000000000 --- a/DotNet/doc/models/table-list.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Table List - -## Structure - -`TableList` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the table | -| `Type` | `string` | Optional | Type of the table | -| `Id` | `string` | Optional | GUID of the table | -| `DatabaseStripe` | `string` | Optional | Name of the database to which the table belongs | -| `SchemaStripe` | `string` | Optional | Name of the schema to which the table belongs | -| `IsExternal` | `bool?` | Optional | - | -| `IsDeprecated` | `bool?` | Optional | Indicates if the table is deprecated | -| `IsDeleted` | `bool?` | Optional | Indicates if the table is deleted | -| `IsHidden` | `bool?` | Optional | Indicates if the table is hideen | -| `IndexVersion` | `double?` | Optional | - | -| `GenerationNum` | `double?` | Optional | - | -| `Created` | `string` | Optional | Date and time when the table was created | -| `Modified` | `string` | Optional | Date and time of last modification of the table | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `ModifiedBy` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Owner` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Tags` | `List` | Optional | List of tags assigned to the table | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "id": null, - "databaseStripe": null, - "schemaStripe": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null -} -``` - diff --git a/DotNet/doc/models/tag-name-and-id-input.md b/DotNet/doc/models/tag-name-and-id-input.md deleted file mode 100644 index 9796e73c7..000000000 --- a/DotNet/doc/models/tag-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and Id Input - -## Structure - -`TagNameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the tags | -| `Id` | `string` | Optional | GUID of the tags | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/tag-name-and-id.md b/DotNet/doc/models/tag-name-and-id.md deleted file mode 100644 index 1a957fda0..000000000 --- a/DotNet/doc/models/tag-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and ID - -## Structure - -`TagNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group to which group is added | -| `Id` | `string` | Optional | GUID of the group to which group is added | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/to-user-name-and-id-input.md b/DotNet/doc/models/to-user-name-and-id-input.md deleted file mode 100644 index 820421a3f..000000000 --- a/DotNet/doc/models/to-user-name-and-id-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# To User Name and ID Input - -A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. - -## Structure - -`ToUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Username of the user | -| `Id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/topic-enum.md b/DotNet/doc/models/topic-enum.md deleted file mode 100644 index 68b6d2721..000000000 --- a/DotNet/doc/models/topic-enum.md +++ /dev/null @@ -1,13 +0,0 @@ - -# Topic Enum - -## Enumeration - -`TopicEnum` - -## Fields - -| Name | -| --- | -| `SecurityLogs` | - diff --git a/DotNet/doc/models/ts-object-input.md b/DotNet/doc/models/ts-object-input.md deleted file mode 100644 index 6cad6e113..000000000 --- a/DotNet/doc/models/ts-object-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Ts Object Input - -## Structure - -`TsObjectInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | GUID of the metadata object | -| `Type` | [`Models.TypeEnum`](../../doc/models/type-enum.md) | Required | Type of the metadata object | - -## Example (as JSON) - -```json -{ - "id": "id0", - "type": "DATAOBJECT" -} -``` - diff --git a/DotNet/doc/models/ts-object-search-input.md b/DotNet/doc/models/ts-object-search-input.md deleted file mode 100644 index 7fb543ce0..000000000 --- a/DotNet/doc/models/ts-object-search-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Ts Object Search Input - -## Structure - -`TsObjectSearchInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Type` | [`Models.Type2Enum`](../../doc/models/type-2-enum.md) | Required | Type of the metadata objec | -| `Id` | `List` | Required | A JSON Array of GUIDs of the metadata object | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ] -} -``` - diff --git a/DotNet/doc/models/ts-object-type-serach.md b/DotNet/doc/models/ts-object-type-serach.md deleted file mode 100644 index f89607914..000000000 --- a/DotNet/doc/models/ts-object-type-serach.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Ts Object Type Serach - -## Structure - -`TsObjectTypeSerach` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Optional | GUID of the object | -| `Name` | `string` | Optional | Name of the object | -| `Owner` | `string` | Optional | Owner of the object | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Permission` | `string` | Optional | Indicates the permission which user or user group has on the object | -| `SharedPermission` | `string` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with the user or user group | -| `GroupPermission` | [`List`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "owner": null, - "author": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-admin-assignauthor-request.md b/DotNet/doc/models/tspublic-rest-v2-admin-assignauthor-request.md deleted file mode 100644 index 272a7a6d3..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-admin-assignauthor-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Admin Assignauthor Request - -## Structure - -`TspublicRestV2AdminAssignauthorRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `TsObjectId` | `List` | Required | A JSON array of GUIDs of the metadata objects. | -| `Name` | `string` | Optional | User name of the user account | -| `Id` | `string` | Optional | The GUID of the user account | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-admin-changeauthor-request.md b/DotNet/doc/models/tspublic-rest-v2-admin-changeauthor-request.md deleted file mode 100644 index d53394233..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-admin-changeauthor-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Admin Changeauthor Request - -## Structure - -`TspublicRestV2AdminChangeauthorRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `TsObjectId` | `List` | Required | A JSON array of GUIDs of the metadata objects.

To change owner of all the objects owned by a user, provide single input as ALL.

If multiple object ids along with ALL is provided as input, then ALL will be considered. | -| `FromUser` | [`Models.FromUserNameAndIDInput`](../../doc/models/from-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered.

If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed.

Provide either name or id as input. When both are given user id will be considered. | -| `ToUser` | [`Models.ToUserNameAndIDInput`](../../doc/models/to-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "fromUser": { - "name": null, - "id": null - }, - "toUser": { - "name": null, - "id": null - } -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-admin-configuration-update-request.md b/DotNet/doc/models/tspublic-rest-v2-admin-configuration-update-request.md deleted file mode 100644 index 22c761ac6..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-admin-configuration-update-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Configuration Update Request - -## Structure - -`TspublicRestV2AdminConfigurationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Configuration` | `string` | Optional | A JSON file with the key-value pair of configuration attributes to be updated.

Example: {"defaultChartDataSize": 5000} | - -## Example (as JSON) - -```json -{ - "configuration": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-admin-forcelogout-request.md b/DotNet/doc/models/tspublic-rest-v2-admin-forcelogout-request.md deleted file mode 100644 index 08b92e672..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-admin-forcelogout-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Forcelogout Request - -## Structure - -`TspublicRestV2AdminForcelogoutRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `User` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name of users or GUIDs of groups or both. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "user": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-admin-resetpassword-request.md b/DotNet/doc/models/tspublic-rest-v2-admin-resetpassword-request.md deleted file mode 100644 index f48b29ea8..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-admin-resetpassword-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Admin Resetpassword Request - -## Structure - -`TspublicRestV2AdminResetpasswordRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | User name of the user account | -| `Id` | `string` | Optional | The GUID of the user account to query. | -| `NewPassword` | `string` | Required | A new password for the user. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "newPassword": "newPassword6" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md b/DotNet/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md deleted file mode 100644 index a3f3f01d7..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md +++ /dev/null @@ -1,40 +0,0 @@ - -# Tspublic Rest V2 Admin Syncprincipal Request - -## Structure - -`TspublicRestV2AdminSyncprincipalRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `PrincipalObject` | `object` | Required | A JSON array of principal objects containing all users and groups present in the external system.

Example:

{

"name": "Customer Success",

"displayName": "Customer Success",

"description": "CS",

"created": 1568926267025,

"modified": 1568926982242,

"principalTypeEnum": "LOCAL_GROUP",

"groupNames": [],

"visibility": "DEFAULT"

},

{

"name": "test",

"displayName": "test one",

"created": 1587573621279,

"modified": 1587573621674,

"mail": "test2@test.com",

"principalTypeEnum": "LOCAL_USER",

"groupNames": [ "Administrator", "All" ],

"visibility": "DEFAULT"

}

You can leave the created and modified dates blank for new users.

You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum keyword.

Set visibility to NON_SHARABLE, if you do not want the user to be able to share ThoughtSpot objects with other users in this group. | -| `UpdateModified` | `bool?` | Optional | Specifies whether to apply the changes to users and groups already in the cluster based on the principal object list input.
**Default**: `false` | -| `DeleteRemoved` | `bool?` | Optional | Specifies whether to delete the users and groups already in the cluster if not present in the principal object list input.
**Default**: `false` | -| `NewUserPassword` | `string` | Optional | Assign a password for new users added during the sync operation.

All new users added will have this password. It is mandatory to provide value for this field if new users are included in the input list. | - -## Example (as JSON) - -```json -{ - "principalObject": [ - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - } - ], - "updateModified": null, - "deleteRemoved": null, - "newUserPassword": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-connection-addtable-request.md b/DotNet/doc/models/tspublic-rest-v2-connection-addtable-request.md deleted file mode 100644 index 167bd1277..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-connection-addtable-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Connection Addtable Request - -## Structure - -`TspublicRestV2ConnectionAddtableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | GUID of the connection | -| `Table` | [`List`](../../doc/models/add-table-input.md) | Required | A JSON array of table details | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": "name6", - "dbName": "dbName4", - "schemaName": "schemaName0", - "columns": [ - { - "name": "name6", - "dataType": "dataType8" - } - ] - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-connection-create-request.md b/DotNet/doc/models/tspublic-rest-v2-connection-create-request.md deleted file mode 100644 index c6d923301..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-connection-create-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Create Request - -## Structure - -`TspublicRestV2ConnectionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Type` | [`Models.Type14Enum`](../../doc/models/type-14-enum.md) | Required | Type of the data connection. | -| `Name` | `string` | Required | Name of the connection | -| `Description` | `string` | Optional | A short description of the connection. | -| `Configuration` | `string` | Required | A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. | - -## Example (as JSON) - -```json -{ - "type": "DENODO", - "name": "name0", - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-connection-removetable-request.md b/DotNet/doc/models/tspublic-rest-v2-connection-removetable-request.md deleted file mode 100644 index 11fda66c2..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-connection-removetable-request.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Tspublic Rest V2 Connection Removetable Request - -## Structure - -`TspublicRestV2ConnectionRemovetableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | GUID of the connection | -| `Table` | [`List`](../../doc/models/table-input.md) | Required | A JSON array of name or GUIDs of the table or both. At least one input is required. Provide either table name or id. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-connection-search-request.md b/DotNet/doc/models/tspublic-rest-v2-connection-search-request.md deleted file mode 100644 index 05c8c16ef..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-connection-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Connection Search Request - -## Structure - -`TspublicRestV2ConnectionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Offset` | `int?` | Optional | The offset point, starting from where the records should be included in the response. If no input is provided then offset starts from 0
**Default**: `0` | -| `BatchNumber` | `int?` | Optional | An alternate way to set offset for the starting point of the response. Offset field should be kept blank to use the value from this field. Offset value will be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `BatchSize` | `int?` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided, then all records starting from the value provided in offset is included in the response.
**Default**: `-1` | -| `SortBy` | [`Models.SortBy1Enum?`](../../doc/models/sort-by-1-enum.md) | Optional | Field based on which the re.sponse needs to be ordered. Valid values
**Default**: `SortBy1Enum.DEFAULT` | -| `SortOrder` | [`Models.SortOrder1Enum?`](../../doc/models/sort-order-1-enum.md) | Optional | Order in which sortBy should be applied. Valid values | -| `Type` | [`Models.Type15Enum`](../../doc/models/type-15-enum.md) | Required | Type of the connect being searched. Valid values: SNOWFLAKE\|AMAZON_REDSHIFT\|GOOGLE_BIGQUERY\|AZURE_SYNAPSE\|TERADATA\|STARBURST\|SAP_HANA\|ORACLE_ADW\|DATABRICKS\|DENODO | -| `NamePattern` | `string` | Optional | A pattern to match the name of the connection. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | -| `FetchId` | `List` | Optional | A JSON array containing the GUIDs of the connections that you want to fetch. | -| `SkipId` | `List` | Optional | A JSON array containing the GUIDs of the connections that you want to skip. | -| `Tag` | [`List`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "DENODO", - "namePattern": null, - "fetchId": null, - "skipId": null, - "tag": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-connection-table-request.md b/DotNet/doc/models/tspublic-rest-v2-connection-table-request.md deleted file mode 100644 index cb97d56f0..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-connection-table-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Connection Table Request - -## Structure - -`TspublicRestV2ConnectionTableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | The GUID of the connection | -| `Configuration` | `string` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | -| `IncludeColumn` | `bool?` | Optional | When set to true, the response will include column level details as well
**Default**: `true` | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "includeColumn": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md b/DotNet/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md deleted file mode 100644 index dec769365..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Connection Tablecoloumn Request - -## Structure - -`TspublicRestV2ConnectionTablecoloumnRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | The GUID of the connection | -| `Configuration` | `string` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | -| `Table` | [`List`](../../doc/models/connection-table-columns-input.md) | Required | List of table details | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "table": [ - { - "dbName": "dbName4", - "schemaName": "schemaName0", - "name": "name6" - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-connection-update-request.md b/DotNet/doc/models/tspublic-rest-v2-connection-update-request.md deleted file mode 100644 index 9ac7c09ab..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-connection-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Update Request - -## Structure - -`TspublicRestV2ConnectionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | GUID of the connection | -| `Name` | `string` | Optional | The text to update the name of the connection. | -| `Description` | `string` | Optional | The text to update the description of the connection. | -| `Configuration` | `string` | Required | A JSON object of the connection metadata. Include all the configuration attributes with original value along with the changes required to any attribute. | - -## Example (as JSON) - -```json -{ - "id": "id0", - "name": null, - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-customaction-association-update-request.md b/DotNet/doc/models/tspublic-rest-v2-customaction-association-update-request.md deleted file mode 100644 index d9f5ad831..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-customaction-association-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Association Update Request - -## Structure - -`TspublicRestV2CustomactionAssociationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | GUID of the custom action | -| `Association` | `string` | Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "id": "id0", - "association": "association0" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-customaction-create-request.md b/DotNet/doc/models/tspublic-rest-v2-customaction-create-request.md deleted file mode 100644 index d6c73c1c1..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-customaction-create-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Create Request - -## Structure - -`TspublicRestV2CustomactionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Configuration` | `string` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "configuration": "configuration6" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-customaction-search-request.md b/DotNet/doc/models/tspublic-rest-v2-customaction-search-request.md deleted file mode 100644 index 42601f4fd..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-customaction-search-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Search Request - -## Structure - -`TspublicRestV2CustomactionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Tag` | `List` | Optional | A JSON array of tag GUIDs.

If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags. | - -## Example (as JSON) - -```json -{ - "tag": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-customaction-update-request.md b/DotNet/doc/models/tspublic-rest-v2-customaction-update-request.md deleted file mode 100644 index e34314445..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-customaction-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Update Request - -## Structure - -`TspublicRestV2CustomactionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | GUID of the custom action | -| `Configuration` | `string` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": "configuration6" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-data-answer-request.md b/DotNet/doc/models/tspublic-rest-v2-data-answer-request.md deleted file mode 100644 index 96b1a7b61..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-data-answer-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Data Answer Request - -## Structure - -`TspublicRestV2DataAnswerRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Offset` | `int?` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | -| `BatchNumber` | `int?` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `BatchSize` | `int?` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `Id` | `string` | Required | The GUID of the Answer | -| `FormatType` | [`Models.FormatTypeEnum?`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": "id0", - "formatType": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-data-liveboard-request.md b/DotNet/doc/models/tspublic-rest-v2-data-liveboard-request.md deleted file mode 100644 index 28cfd4998..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-data-liveboard-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Data Liveboard Request - -## Structure - -`TspublicRestV2DataLiveboardRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Offset` | `int?` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | -| `BatchNumber` | `int?` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `BatchSize` | `int?` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `Id` | `string` | Optional | The GUID of the Liveboard | -| `TransientContent` | `string` | Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboard data with unsaved changes then, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If value for this field is provided, then id will not be considered. | -| `VizId` | `List` | Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | -| `RuntimeFilter` | `string` | Optional | JSON object which contains filter condition to filter the data at the time of data retrieval.

Example: {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | -| `RuntimeSort` | `string` | Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. | -| `FormatType` | [`Models.FormatTypeEnum?`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": null, - "transientContent": null, - "vizId": null, - "runtimeFilter": null, - "runtimeSort": null, - "formatType": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-data-search-request.md b/DotNet/doc/models/tspublic-rest-v2-data-search-request.md deleted file mode 100644 index 044feaada..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-data-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Data Search Request - -## Structure - -`TspublicRestV2DataSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Offset` | `int?` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `-1` | -| `BatchNumber` | `int?` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `BatchSize` | `int?` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `QueryString` | `string` | Required | The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' | -| `DataObjectId` | `string` | Required | The GUID of the data object, either a worksheet, a view, or a table. | -| `FormatType` | [`Models.FormatTypeEnum?`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "queryString": "queryString4", - "dataObjectId": "dataObjectId2", - "formatType": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-database-table-create-request.md b/DotNet/doc/models/tspublic-rest-v2-database-table-create-request.md deleted file mode 100644 index 7a8ae5afc..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-database-table-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Create Request - -## Structure - -`TspublicRestV2DatabaseTableCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `CreateDatabase` | `bool?` | Optional | Flag to indicate if the database and schema should be created if they do not exist in Falcon. (Valid values: True/False)
**Default**: `true` | -| `Schema` | `string` | Optional | DDL of the table to be created. Example: {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} | - -## Example (as JSON) - -```json -{ - "createDatabase": null, - "schema": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-database-table-runquery-request.md b/DotNet/doc/models/tspublic-rest-v2-database-table-runquery-request.md deleted file mode 100644 index 562f3033d..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-database-table-runquery-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Runquery Request - -## Structure - -`TspublicRestV2DatabaseTableRunqueryRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Statement` | `List` | Required | A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end with semi-colon (;). The TQL operations that can be run through this API are restricted to create database and schema, alter table, delete and update table rows. If a TQL statement fails, then the subsequent statements in the array are not run. Example: ["alter table test_db.test_schema.test_table drop contraint primary key;";"alter table test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] | - -## Example (as JSON) - -```json -{ - "statement": [ - "statement0" - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-addgroup-request.md b/DotNet/doc/models/tspublic-rest-v2-group-addgroup-request.md deleted file mode 100644 index a5d35adf0..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Addgroup Request - -## Structure - -`TspublicRestV2GroupAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | The GUID of the group to query. | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-addprivilege-request.md b/DotNet/doc/models/tspublic-rest-v2-group-addprivilege-request.md deleted file mode 100644 index 962a523b7..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-addprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Addprivilege Request - -## Structure - -`TspublicRestV2GroupAddprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | The GUID of the group to query. | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-adduser-request.md b/DotNet/doc/models/tspublic-rest-v2-group-adduser-request.md deleted file mode 100644 index ad08013ce..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-adduser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Adduser Request - -## Structure - -`TspublicRestV2GroupAdduserRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | The GUID of the group to query. | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to update in user group. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-create-request.md b/DotNet/doc/models/tspublic-rest-v2-group-create-request.md deleted file mode 100644 index 73420bc23..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-create-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Group Create Request - -## Structure - -`TspublicRestV2GroupCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Required | Name of the user group. The group name string must be unique. | -| `DisplayName` | `string` | Required | A unique display name string for the user group, for example, Developer group. | -| `Visibility` | [`Models.Visibility2Enum?`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `Visibility2Enum.DEFAULT` | -| `Description` | `string` | Optional | Description text for the group. | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `OrgId` | `int?` | Optional | Unique identifier of the organization. If no value is provided then group will be created in the organization associated with the login session. | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the group belong to. | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | Array of names of user names that the group belong to. | -| `Type` | [`Models.Type10Enum?`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type10Enum.LOCAL_GROUP` | - -## Example (as JSON) - -```json -{ - "name": "name0", - "displayName": "displayName2", - "visibility": null, - "description": null, - "privileges": null, - "orgId": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-removegroup-request.md b/DotNet/doc/models/tspublic-rest-v2-group-removegroup-request.md deleted file mode 100644 index 451804c68..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Removegroup Request - -## Structure - -`TspublicRestV2GroupRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | The GUID of the group to query. | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-removeprivilege-request.md b/DotNet/doc/models/tspublic-rest-v2-group-removeprivilege-request.md deleted file mode 100644 index 81160543a..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-removeprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Removeprivilege Request - -## Structure - -`TspublicRestV2GroupRemoveprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | The GUID of the group to query. | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-removeuser-request.md b/DotNet/doc/models/tspublic-rest-v2-group-removeuser-request.md deleted file mode 100644 index 9249faefe..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-removeuser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Removeuser Request - -## Structure - -`TspublicRestV2GroupRemoveuserRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the group | -| `Id` | `string` | Optional | The GUID of the group to query. | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to delete from user group. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-search-request.md b/DotNet/doc/models/tspublic-rest-v2-group-search-request.md deleted file mode 100644 index abea34226..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Search Request - -## Structure - -`TspublicRestV2GroupSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `OutputFields` | `List` | Optional | Array of field names that need to be included in the response | -| `Name` | `string` | Optional | Name of the user group | -| `Id` | `string` | Optional | GUID of the group to update | -| `DisplayName` | `string` | Optional | A unique display name string for the user group, for example, Developer group. | -| `Visibility` | `string` | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. | -| `Description` | `string` | Optional | Description text for the group. | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | Array of user name that associated with group. | -| `Type` | `string` | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-group-update-request.md b/DotNet/doc/models/tspublic-rest-v2-group-update-request.md deleted file mode 100644 index 5a836dc29..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-group-update-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Update Request - -## Structure - -`TspublicRestV2GroupUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the user group. The group name string must be unique. | -| `Id` | `string` | Optional | he GUID of the user account to query. | -| `DisplayName` | `string` | Optional | A unique display name string for the user group, for example, Developer group. | -| `Visibility` | [`Models.Visibility2Enum?`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `Visibility2Enum.DEFAULT` | -| `Description` | `string` | Optional | Description text for the group. | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | Array of object, A JSON array of name of users of users. | -| `AssignedLiveboards` | `List` | Optional | Array of string. An array of liveboard ids to be assigned to the group. | -| `Type` | [`Models.Type10Enum?`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type10Enum.LOCAL_GROUP` | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "type": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-materialization-refreshview-request.md b/DotNet/doc/models/tspublic-rest-v2-materialization-refreshview-request.md deleted file mode 100644 index 1612b5bfb..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-materialization-refreshview-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Materialization Refreshview Request - -## Structure - -`TspublicRestV2MaterializationRefreshviewRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | GUID of metadata object | - -## Example (as JSON) - -```json -{ - "id": "id0" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-dependency-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-dependency-request.md deleted file mode 100644 index 99d7874c1..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-dependency-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Dependency Request - -## Structure - -`TspublicRestV2MetadataDependencyRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Type` | [`Models.Type13Enum`](../../doc/models/type-13-enum.md) | Required | Type of the data object | -| `Id` | `List` | Required | A JSON array of GUIDs of the objects | -| `BatchSize` | `int?` | Optional | The maximum number of batches to fetch in a query. If this attribute is not defined, the value specified in the cluster configuration is used. To get the list of all dependent objects in a single query, define the batch size attribute as -1
**Default**: `-1` | - -## Example (as JSON) - -```json -{ - "type": "COLUMN", - "id": [ - "id0" - ], - "batchSize": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-detail-search-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-detail-search-request.md deleted file mode 100644 index 683847544..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-detail-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Metadata Detail Search Request - -## Structure - -`TspublicRestV2MetadataDetailSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Type` | [`Models.Type6Enum`](../../doc/models/type-6-enum.md) | Required | Type of the metadata object being searched. | -| `Id` | `List` | Required | A JSON array of GUIDs of the objects. | -| `ShowHidden` | `bool?` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `false` | -| `DropQuestionDetails` | `bool?` | Optional | When set to true, the search assist data associated with a worksheet is not included in the API response. This attribute is applicable only for DATAOBJECT data type.
**Default**: `false` | -| `Version` | `string` | Optional | Specify the version to retrieve the objects from. By default, the API returns metadata for all versions of the object. | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "showHidden": null, - "dropQuestionDetails": null, - "version": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md deleted file mode 100644 index 3e5dfa071..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Assign Request - -## Structure - -`TspublicRestV2MetadataFavoriteAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `UserName` | `string` | Optional | Name of the user | -| `UserId` | `string` | Optional | The GUID of the user | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md deleted file mode 100644 index 94d4bcf7d..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Unassign Request - -## Structure - -`TspublicRestV2MetadataFavoriteUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `UserName` | `string` | Optional | Name of the user | -| `UserId` | `string` | Optional | The GUID of the user | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-header-search-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-header-search-request.md deleted file mode 100644 index f05f92fce..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-header-search-request.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Tspublic Rest V2 Metadata Header Search Request - -## Structure - -`TspublicRestV2MetadataHeaderSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `OutputFields` | `List` | Optional | Array of header field names that need to be included in the header response | -| `Offset` | `int?` | Optional | The batch offset, starting from where the records should be included in the response. If no input is provided then offset starts from 0. Default: 0
**Default**: `0` | -| `BatchNumber` | `int?` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. | -| `BatchSize` | `int?` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided then first page is included in the response.
**Default**: `-1` | -| `SortBy` | [`Models.SortByEnum?`](../../doc/models/sort-by-enum.md) | Optional | Field based on which the response needs to be ordered.
**Default**: `SortByEnum.DEFAULT` | -| `SortOrder` | [`Models.SortOrderEnum?`](../../doc/models/sort-order-enum.md) | Optional | Order in which sortBy should be applied.
**Default**: `SortOrderEnum.DEFAULT` | -| `Type` | [`Models.Type3Enum`](../../doc/models/type-3-enum.md) | Required | Type of the metadata object being searched. | -| `NamePattern` | `string` | Optional | A pattern to match the name of the metadata object. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | -| `FetchId` | `List` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to fetch. | -| `SkipId` | `List` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to skip. | -| `ShowHidden` | `bool?` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `false` | -| `AutoCreated` | `bool?` | Optional | A flag to indicate whether to list only the auto created objects. When no value is provided as input then all objects are returned. | -| `AccessLevel` | [`List`](../../doc/models/access-level-input.md) | Optional | A JSON array of objects with user details for which the metadata objects should be considered from the repository
If you specify ID or name of user and set the type parameter to USER, the API returns metadata objects associated with the user
If you specify ID or name of user group and set the type parameter to USER_GROUP, the API returns metadata objects for all the users mapped to the specified user group.
If the id or name parameter is not defined, but the type attribute is set to USER or USER_GROUP, then the API will not return and response.
If no input is provided for any field for this object, then the API returns headers for all users.
If both name and id is provided, then id will be considered. | -| `Tag` | [`List`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered. | -| `FavoriteFor` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. When both are given then id is considered. | -| `Author` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who created the object. When both are given then id is considered | -| `LastModifiedBy` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who last modified the object. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "COLUMN_ALL", - "namePattern": null, - "fetchId": null, - "skipId": null, - "showHidden": null, - "autoCreated": null, - "accessLevel": null, - "tag": null, - "favoriteFor": null, - "author": null, - "lastModifiedBy": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md deleted file mode 100644 index 54d2f9ead..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Assign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `UserName` | `string` | Optional | Name of the user | -| `UserId` | `string` | Optional | The GUID of the user | -| `LiveboardId` | `string` | Optional | The GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardId": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md deleted file mode 100644 index fe4f8543f..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Unassign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `UserName` | `string` | Optional | Name of the user | -| `UserId` | `string` | Optional | The GUID of the user | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md deleted file mode 100644 index 0c59a9389..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Assign Request - -## Structure - -`TspublicRestV2MetadataTagAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the tag | -| `Id` | `string` | Optional | The GUID of the tag | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-create-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-tag-create-request.md deleted file mode 100644 index 63bcb7e6b..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Create Request - -## Structure - -`TspublicRestV2MetadataTagCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Required | Name of the tag | -| `Color` | `string` | Optional | Hex color code to be assigned to the tag | - -## Example (as JSON) - -```json -{ - "name": "name0", - "color": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md deleted file mode 100644 index 83beef040..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Unassign Request - -## Structure - -`TspublicRestV2MetadataTagUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the tag | -| `Id` | `string` | Optional | The GUID of the tag | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-update-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-tag-update-request.md deleted file mode 100644 index 83102f511..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-tag-update-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Update Request - -## Structure - -`TspublicRestV2MetadataTagUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the tag | -| `Id` | `string` | Optional | The GUID of the tag | -| `Color` | `string` | Optional | Hex color code to be assigned to the tag | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "color": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-tml-export-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-tml-export-request.md deleted file mode 100644 index 73907ab2c..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-tml-export-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Export Request - -## Structure - -`TspublicRestV2MetadataTmlExportRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `List` | Required | A JSON array of GUIDs of the objects. | -| `FormatType` | [`Models.FormatType3Enum?`](../../doc/models/format-type-3-enum.md) | Optional | The format in which to export the objects
**Default**: `FormatType3Enum.YAML` | -| `ExportAssociated` | `bool?` | Optional | Specifies if you would like to export the associated objects. To export the objects associated with the objects specified in id, set the value to true. When set to true, the API exports any underlying worksheets, tables, or views for a given object. By default, the API does not export these underlying objects
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "id": [ - "id0" - ], - "formatType": null, - "exportAssociated": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-metadata-tml-import-request.md b/DotNet/doc/models/tspublic-rest-v2-metadata-tml-import-request.md deleted file mode 100644 index 8f1482ec3..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-metadata-tml-import-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Import Request - -## Structure - -`TspublicRestV2MetadataTmlImportRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `ObjectTML` | `List` | Required | A string array of TML objects to upload, in YAML or JSON format.

If TML is in YAML format, then use escape characters for quotes and new line characters.

Example TML:

guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: DONT_INDEX\n db_column_properties:\n data_type: INT64\n

If TML is in JSON format, then use escape characters for quotes.

Example TML:

{\\"guid\\": \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', | -| `ImportPolicy` | [`Models.ImportPolicyEnum?`](../../doc/models/import-policy-enum.md) | Optional | Policy to follow during import
**Default**: `ImportPolicyEnum.PARTIAL` | -| `ForceCreate` | `bool?` | Optional | Specifies if you are updating or creating objects. To create new objects, specify true. By default, ThoughtSpot updates existing objects that have the same GUID as the objects you are importing. When set to true, the GUID property in the imported TML is replaced on the server, and the response headers will include the id_guid property with the GUID of the new object. The new object will be assigned a new GUID, even if the imported TML file included a guid value. Thus, there is no need to include the guid in the TML file if you are using forceCreate=true.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "objectTML": [ - "objectTML7" - ], - "importPolicy": null, - "forceCreate": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-org-create-request.md b/DotNet/doc/models/tspublic-rest-v2-org-create-request.md deleted file mode 100644 index 359479dd0..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-org-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Org Create Request - -## Structure - -`TspublicRestV2OrgCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Required | Name of the organization. | -| `Description` | `string` | Optional | Description text for the organization. | - -## Example (as JSON) - -```json -{ - "name": "name0", - "description": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-org-search-request.md b/DotNet/doc/models/tspublic-rest-v2-org-search-request.md deleted file mode 100644 index e7678e6b6..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-org-search-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Org Search Request - -## Structure - -`TspublicRestV2OrgSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the organization. | -| `Id` | `int?` | Optional | The ID of the organization. | -| `ShowDeleted` | `bool?` | Optional | When set to true, the response will include the details of deleted organization also.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "showDeleted": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-org-update-request.md b/DotNet/doc/models/tspublic-rest-v2-org-update-request.md deleted file mode 100644 index 4eba3ea92..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-org-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Org Update Request - -## Structure - -`TspublicRestV2OrgUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the organization. | -| `Id` | `int?` | Optional | The ID of the organization. | -| `Description` | `string` | Optional | Description text for the organization. | -| `Active` | `bool?` | Optional | Status of the organization. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "description": null, - "active": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md b/DotNet/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md deleted file mode 100644 index 5ff09d634..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 Security Permission Principal Search Request - -## Structure - -`TspublicRestV2SecurityPermissionPrincipalSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Principal` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | A JSON array of principal names or GUIDs to be included in the request. When both are given then id is considered. | -| `TsObject` | [`List`](../../doc/models/ts-object-search-input.md) | Optional | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "principal": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ], - "tsObject": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md b/DotNet/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md deleted file mode 100644 index 34ab6c9fc..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Security Permission Tsobject Search Request - -## Structure - -`TspublicRestV2SecurityPermissionTsobjectSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `TsObject` | [`List`](../../doc/models/ts-object-search-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | -| `Principal` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | A JSON array of principal names or GUIDs. When both are given then id is considered. | -| `IncludeDependent` | `bool?` | Optional | When this field is set to true, the API response includes the permission details for the dependent objects.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "tsObject": [ - { - "type": "DATAOBJECT", - "id": [ - "id2" - ] - }, - { - "type": "COLUMN", - "id": [ - "id3", - "id4" - ] - } - ], - "principal": null, - "includeDependent": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-security-share-tsobject-request.md b/DotNet/doc/models/tspublic-rest-v2-security-share-tsobject-request.md deleted file mode 100644 index fdf86d158..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-security-share-tsobject-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Security Share Tsobject Request - -## Structure - -`TspublicRestV2SecurityShareTsobjectRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Type` | [`Models.Type18Enum`](../../doc/models/type-18-enum.md) | Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | -| `Id` | `List` | Required | A JSON array of the GUIDs of the objects to be shared | -| `Permission` | `string` | Required | A JSON object with GUIDs of user and user group, and the type of access privilge.

You can provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user group can view the shared object, whereas MODIFY access enables users to modify the object.

To remove access to a shared object, you can set the shareMode in the permission string to NO_ACCESS. Example:

{"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} | -| `EmailId` | `List` | Optional | The email addresses that should ne notified when the objects are shared. | -| `Notify` | `bool?` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `true` | -| `Message` | `string` | Optional | The message text to send in the notification email. | -| `IncludeCustomEmbedUrl` | `bool?` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "permission": "permission2", - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-security-share-visualization-request.md b/DotNet/doc/models/tspublic-rest-v2-security-share-visualization-request.md deleted file mode 100644 index d6933ff60..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-security-share-visualization-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Security Share Visualization Request - -## Structure - -`TspublicRestV2SecurityShareVisualizationRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Id` | `string` | Required | A JSON array of the GUIDs of the objects to be shared | -| `VizId` | `string` | Required | The GUID of visualization | -| `PrincipalId` | `List` | Required | The GUID of the users and user groups with which you want to share the visualization | -| `EmailId` | `List` | Optional | The email addresses that should ne notified when the objects are shared | -| `Notify` | `bool?` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `true` | -| `Message` | `string` | Optional | The message text to send in the notification email. | -| `IncludeCustomEmbedUrl` | `bool?` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "id": "id0", - "vizId": "vizId2", - "principalId": [ - "principalId8", - "principalId9", - "principalId0" - ], - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-user-addgroup-request.md b/DotNet/doc/models/tspublic-rest-v2-user-addgroup-request.md deleted file mode 100644 index 36fa45123..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-user-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Addgroup Request - -## Structure - -`TspublicRestV2UserAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | User name of the user account | -| `Id` | `string` | Optional | The GUID of the user account | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-user-addorg-request.md b/DotNet/doc/models/tspublic-rest-v2-user-addorg-request.md deleted file mode 100644 index 9393a4cd5..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-user-addorg-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 User Addorg Request - -## Structure - -`TspublicRestV2UserAddorgRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `OrgId` | `int?` | Optional | The ID of the organization. | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | Array of objects. A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "orgId": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-user-changepassword-request.md b/DotNet/doc/models/tspublic-rest-v2-user-changepassword-request.md deleted file mode 100644 index edfb2f32f..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-user-changepassword-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 User Changepassword Request - -## Structure - -`TspublicRestV2UserChangepasswordRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | User name of the user account. | -| `Id` | `string` | Optional | The GUID of the user account to query. | -| `CurrentPassword` | `string` | Required | The current password of the user. | -| `NewPassword` | `string` | Required | A new password for the user. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "currentPassword": "currentPassword6", - "newPassword": "newPassword6" -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-user-removegroup-request.md b/DotNet/doc/models/tspublic-rest-v2-user-removegroup-request.md deleted file mode 100644 index ec7449467..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-user-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Removegroup Request - -## Structure - -`TspublicRestV2UserRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | User name of the user account | -| `Id` | `string` | Optional | The GUID of the user account | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-user-search-request.md b/DotNet/doc/models/tspublic-rest-v2-user-search-request.md deleted file mode 100644 index 834e9f054..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-user-search-request.md +++ /dev/null @@ -1,45 +0,0 @@ - -# Tspublic Rest V2 User Search Request - -## Structure - -`TspublicRestV2UserSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `OutputFields` | `List` | Optional | Array of field names that need to be included in the response | -| `Name` | `string` | Optional | User name of the user account | -| `Id` | `string` | Optional | The GUID of the user account | -| `DisplayName` | `string` | Optional | A unique display name string for the user, usually their first and last name. | -| `Visibility` | `string` | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. | -| `Mail` | `string` | Optional | email of the user. | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | Privileges assigned to user account | -| `State` | `string` | Optional | Status of user account. acitve or inactive. | -| `NotifyOnShare` | `bool?` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | -| `ShowWalkMe` | `bool?` | Optional | The user preference for revisiting the onboarding experience. | -| `AnalystOnboardingComplete` | `bool?` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | -| `Type` | `string` | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null -} -``` - diff --git a/DotNet/doc/models/tspublic-rest-v2-user-update-request.md b/DotNet/doc/models/tspublic-rest-v2-user-update-request.md deleted file mode 100644 index 3fa15217d..000000000 --- a/DotNet/doc/models/tspublic-rest-v2-user-update-request.md +++ /dev/null @@ -1,41 +0,0 @@ - -# Tspublic Rest V2 User Update Request - -## Structure - -`TspublicRestV2UserUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Name of the user. The username string must be unique. | -| `Id` | `string` | Optional | The GUID of the user account to query | -| `DisplayName` | `string` | Optional | A unique display name string for the user, usually their first and last name. | -| `Visibility` | [`Models.Visibility1Enum?`](../../doc/models/visibility-1-enum.md) | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects.
**Default**: `Visibility1Enum.DEFAULT` | -| `Mail` | `string` | Optional | email of the user. | -| `State` | [`Models.State1Enum?`](../../doc/models/state-1-enum.md) | Optional | Status of user account. acitve or inactive.
**Default**: `State1Enum.ACTIVE` | -| `NotifyOnShare` | `bool?` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards.
**Default**: `true` | -| `ShowWalkMe` | `bool?` | Optional | The user preference for revisiting the onboarding experience.
**Default**: `true` | -| `AnalystOnboardingComplete` | `bool?` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI.
**Default**: `false` | -| `Type` | [`Models.Type9Enum?`](../../doc/models/type-9-enum.md) | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type9Enum.LOCAL_USER` | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null, - "groups": null -} -``` - diff --git a/DotNet/doc/models/type-1-enum.md b/DotNet/doc/models/type-1-enum.md deleted file mode 100644 index 36d78715a..000000000 --- a/DotNet/doc/models/type-1-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 1 Enum - -Type of access detail provided - -## Enumeration - -`Type1Enum` - -## Fields - -| Name | -| --- | -| `USER` | -| `USERGROUP` | - diff --git a/DotNet/doc/models/type-10-enum.md b/DotNet/doc/models/type-10-enum.md deleted file mode 100644 index 38cf726c8..000000000 --- a/DotNet/doc/models/type-10-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 10 Enum - -Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type10Enum` - -## Fields - -| Name | -| --- | -| `LOCALGROUP` | -| `TENANTGROUP` | - diff --git a/DotNet/doc/models/type-13-enum.md b/DotNet/doc/models/type-13-enum.md deleted file mode 100644 index f0293e6f2..000000000 --- a/DotNet/doc/models/type-13-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 13 Enum - -Type of the data object - -## Enumeration - -`Type13Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | - diff --git a/DotNet/doc/models/type-14-enum.md b/DotNet/doc/models/type-14-enum.md deleted file mode 100644 index 759a8e288..000000000 --- a/DotNet/doc/models/type-14-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 14 Enum - -Type of the data connection. - -## Enumeration - -`Type14Enum` - -## Fields - -| Name | -| --- | -| `SNOWFLAKE` | -| `AMAZONREDSHIFT` | -| `GOOGLEBIGQUERY` | -| `AZURESYNAPSE` | -| `TERADATA` | -| `STARBURST` | -| `SAPHANA` | -| `ORACLEADW` | -| `DATABRICKS` | -| `DENODO` | -| `DREMIO` | - diff --git a/DotNet/doc/models/type-15-enum.md b/DotNet/doc/models/type-15-enum.md deleted file mode 100644 index 3107d27b0..000000000 --- a/DotNet/doc/models/type-15-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 15 Enum - -Type of the connect being searched. Valid values: SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - -## Enumeration - -`Type15Enum` - -## Fields - -| Name | -| --- | -| `SNOWFLAKE` | -| `AMAZONREDSHIFT` | -| `GOOGLEBIGQUERY` | -| `AZURESYNAPSE` | -| `TERADATA` | -| `STARBURST` | -| `SAPHANA` | -| `ORACLEADW` | -| `DATABRICKS` | -| `DENODO` | -| `DREMIO` | - diff --git a/DotNet/doc/models/type-16-enum.md b/DotNet/doc/models/type-16-enum.md deleted file mode 100644 index 90ae5c47c..000000000 --- a/DotNet/doc/models/type-16-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 16 Enum - -## Enumeration - -`Type16Enum` - -## Fields - -| Name | -| --- | -| `CSV` | -| `XLSX` | -| `PDF` | -| `PNG` | - diff --git a/DotNet/doc/models/type-18-enum.md b/DotNet/doc/models/type-18-enum.md deleted file mode 100644 index de04aeab8..000000000 --- a/DotNet/doc/models/type-18-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 18 Enum - -Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - -## Enumeration - -`Type18Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/DotNet/doc/models/type-2-enum.md b/DotNet/doc/models/type-2-enum.md deleted file mode 100644 index 04624a9d7..000000000 --- a/DotNet/doc/models/type-2-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 2 Enum - -Type of the metadata objec - -## Enumeration - -`Type2Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/DotNet/doc/models/type-3-enum.md b/DotNet/doc/models/type-3-enum.md deleted file mode 100644 index df8bc9646..000000000 --- a/DotNet/doc/models/type-3-enum.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Type 3 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type3Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECTALL` | -| `DATAOBJECTWORKSHEET` | -| `DATAOBJECTTABLE` | -| `DATAOBJECTUSERDEFINED` | -| `DATAOBJECTVIEW` | -| `DATAOBJECTCALENDARTABLE` | -| `COLUMNALL` | -| `COLUMNWORKSHEET` | -| `COLUMNTABLE` | -| `COLUMNUSERDEFINED` | -| `COLUMNVIEW` | -| `COLUMNCALENDARTABLE` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/DotNet/doc/models/type-4-enum.md b/DotNet/doc/models/type-4-enum.md deleted file mode 100644 index 2bc032891..000000000 --- a/DotNet/doc/models/type-4-enum.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Type 4 Enum - -## Enumeration - -`Type4Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/DotNet/doc/models/type-5-enum.md b/DotNet/doc/models/type-5-enum.md deleted file mode 100644 index 7a1dbcb1c..000000000 --- a/DotNet/doc/models/type-5-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Type 5 Enum - -## Enumeration - -`Type5Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECTALL` | -| `DATAOBJECTWORKSHEET` | -| `DATAOBJECTTABLE` | -| `DATAOBJECTUSERDEFINED` | -| `DATAOBJECTVIEW` | -| `DATAOBJECTCALENDARTABLE` | -| `COLUMNALL` | -| `COLUMNWORKSHEET` | -| `COLUMNTABLE` | -| `COLUMNUSERDEFINED` | -| `COLUMNVIEW` | -| `COLUMNCALENDARTABLE` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/DotNet/doc/models/type-6-enum.md b/DotNet/doc/models/type-6-enum.md deleted file mode 100644 index b8a8298d3..000000000 --- a/DotNet/doc/models/type-6-enum.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Type 6 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type6Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/DotNet/doc/models/type-7-enum.md b/DotNet/doc/models/type-7-enum.md deleted file mode 100644 index b79c74487..000000000 --- a/DotNet/doc/models/type-7-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 7 Enum - -## Enumeration - -`Type7Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/DotNet/doc/models/type-8-enum.md b/DotNet/doc/models/type-8-enum.md deleted file mode 100644 index 2880f43d9..000000000 --- a/DotNet/doc/models/type-8-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Type 8 Enum - -## Enumeration - -`Type8Enum` - -## Fields - -| Name | -| --- | -| `UNKNOWN` | -| `LDAPUSER` | -| `SAMLUSER` | -| `OIDCUSER` | -| `LOCALUSER` | - diff --git a/DotNet/doc/models/type-9-enum.md b/DotNet/doc/models/type-9-enum.md deleted file mode 100644 index 464ce808b..000000000 --- a/DotNet/doc/models/type-9-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# Type 9 Enum - -Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type9Enum` - -## Fields - -| Name | -| --- | -| `UNKNOWN` | -| `LDAPUSER` | -| `SAMLUSER` | -| `OIDCUSER` | -| `LOCALUSER` | - diff --git a/DotNet/doc/models/type-enum.md b/DotNet/doc/models/type-enum.md deleted file mode 100644 index 739ca7020..000000000 --- a/DotNet/doc/models/type-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type Enum - -Type of the metadata object - -## Enumeration - -`TypeEnum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `CONNECTION` | - diff --git a/DotNet/doc/models/user-name-and-id-input.md b/DotNet/doc/models/user-name-and-id-input.md deleted file mode 100644 index 8a7582970..000000000 --- a/DotNet/doc/models/user-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID Input - -## Structure - -`UserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Username of the user | -| `Id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/user-name-and-id.md b/DotNet/doc/models/user-name-and-id.md deleted file mode 100644 index 7a6f60606..000000000 --- a/DotNet/doc/models/user-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID - -## Structure - -`UserNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Username of the user | -| `Id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/DotNet/doc/models/user-response.md b/DotNet/doc/models/user-response.md deleted file mode 100644 index cd6654aa0..000000000 --- a/DotNet/doc/models/user-response.md +++ /dev/null @@ -1,83 +0,0 @@ - -# User Response - -## Structure - -`UserResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | Username of the user account | -| `DisplayName` | `string` | Optional | Display name of the user account | -| `Id` | `string` | Optional | GUID of the user account | -| `Visibility` | `string` | Optional | Visibility of the user account | -| `Mail` | `string` | Optional | Email of the user account | -| `Groups` | [`List`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which user account is added | -| `Privileges` | `List` | Optional | Privileges assigned to user account | -| `Orgs` | [`List`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | -| `Tags` | `List` | Optional | Tags assigned to the user | -| `State` | `string` | Optional | Indicates if the user account is active or inactive | -| `NotifyOnShare` | `bool?` | Optional | Indicates if the email should be sent when object is shared with the user | -| `ShowWalkMe` | `bool?` | Optional | Indicates if the walk me should be shown when logging in | -| `AnalystOnboardingComplete` | `bool?` | Optional | Indicates if the onboarding is completed for the user | -| `FirstLogin` | `int?` | Optional | Indicates if the use is logging in for the first time | -| `WelcomeEmailSent` | `bool?` | Optional | Indicates if the welcome email is sent to email associated with the user account | -| `IsDeleted` | `bool?` | Optional | Indicates if the user account is deleted | -| `IsHidden` | `bool?` | Optional | Indicates if the user account is hidden | -| `IsExternal` | `bool?` | Optional | Indicates if the user account is from external system
isDeprecated | -| `IsDeprecated` | `bool?` | Optional | - | -| `Complete` | `bool?` | Optional | Indicates if the all the properties of user account is provided | -| `IsSuperUser` | `bool?` | Optional | Indicates if the user account is super user | -| `IsSystemPrincipal` | `bool?` | Optional | Indicates if the user account is system principal | -| `Type` | `string` | Optional | Indicates the type of user account | -| `Parenttype` | `string` | Optional | Indicates the type of parent object | -| `TenantId` | `string` | Optional | Tenant id associated with the user account | -| `IndexVersion` | `double?` | Optional | - | -| `GenerationNum` | `double?` | Optional | - | -| `Created` | `double?` | Optional | Date and time when user account was created | -| `Modified` | `double?` | Optional | Date and time of last modification of user account | -| `Author` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `ModifiedBy` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `Owner` | [`Models.UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "orgs": null, - "tags": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "firstLogin": null, - "welcomeEmailSent": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSuperUser": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/DotNet/doc/models/visibility-1-enum.md b/DotNet/doc/models/visibility-1-enum.md deleted file mode 100644 index db3b6f282..000000000 --- a/DotNet/doc/models/visibility-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 1 Enum - -Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. - -## Enumeration - -`Visibility1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NONSHARABLE` | -| `SHARABLE` | - diff --git a/DotNet/doc/models/visibility-2-enum.md b/DotNet/doc/models/visibility-2-enum.md deleted file mode 100644 index a1cd4043b..000000000 --- a/DotNet/doc/models/visibility-2-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 2 Enum - -Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. - -## Enumeration - -`Visibility2Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NONSHARABLE` | -| `SHARABLE` | - diff --git a/DotNet/doc/models/visibility-enum.md b/DotNet/doc/models/visibility-enum.md deleted file mode 100644 index c4e6f73b5..000000000 --- a/DotNet/doc/models/visibility-enum.md +++ /dev/null @@ -1,15 +0,0 @@ - -# Visibility Enum - -## Enumeration - -`VisibilityEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NONSHARABLE` | -| `SHARABLE` | - diff --git a/DotNet/doc/models/viz-type.md b/DotNet/doc/models/viz-type.md deleted file mode 100644 index f436c1ad3..000000000 --- a/DotNet/doc/models/viz-type.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Viz Type - -## Structure - -`VizType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `Name` | `string` | Optional | The name of the visualization | -| `Id` | `string` | Optional | The GUID of the visualization | -| `QuerySql` | `string` | Optional | SQL query associated with the visualization | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/DotNet/doc/utility-classes.md b/DotNet/doc/utility-classes.md deleted file mode 100644 index b13cf83f5..000000000 --- a/DotNet/doc/utility-classes.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Utility Classes Documentation - -## ApiHelper Class - -HttpRequest stores necessary information about the http request. - -### Properties - -| Name | Description | Type | -| --- | --- | --- | -| HttpMethod | The HTTP verb to use for this request. | `HttpMethod` | -| QueryUrl | The query url for the http request. | `string` | -| QueryParameters | Query parameters collection for the current http request. | `Dictionary` | -| Headers | Headers collection for the current http request. | `Dictionary` | -| FormParameters | Form parameters for the current http request. | `List>` | -| Body | Optional raw string to send as request body. | `object` | -| Username | Optional username for Basic Auth. | `string` | -| Password | Optional password for Basic Auth. | `string` | - -### Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `DeepCloneObject(T obj)` | Creates a deep clone of an object by serializing it into a json string and then deserializing back into an object. | `T` | -| `JsonSerialize(object obj, JsonConverter converter = null)` | JSON Serialization of a given object. | `string` | -| `JsonDeserialize(string json, JsonConverter converter = null)` | JSON Deserialization of the given json string. | `T` | - diff --git a/Java/.classpath b/Java/.classpath deleted file mode 100644 index 9aa18b799..000000000 --- a/Java/.classpath +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Java/.project b/Java/.project deleted file mode 100644 index 0bb7bc7a3..000000000 --- a/Java/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - - ThoughtSpotPublicRESTAPILib - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.m2e.core.maven2Nature - org.eclipse.jdt.core.javanature - - diff --git a/Java/.settings/.org.eclipse.jdt.core.prefs b/Java/.settings/.org.eclipse.jdt.core.prefs deleted file mode 100644 index 30268d29b..000000000 --- a/Java/.settings/.org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 \ No newline at end of file diff --git a/Java/.settings/.org.eclipse.m2e.core.prefs b/Java/.settings/.org.eclipse.m2e.core.prefs deleted file mode 100644 index 7e75fb4b3..000000000 --- a/Java/.settings/.org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 \ No newline at end of file diff --git a/Java/LICENSE b/Java/LICENSE deleted file mode 100644 index c571aa529..000000000 --- a/Java/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -License: -======== -The MIT License (MIT) -http://opensource.org/licenses/MIT - -Copyright (c) 2014 - 2022 APIMATIC Limited - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Trade Mark: -========== -APIMATIC is a trade mark for APIMATIC Limited \ No newline at end of file diff --git a/Java/README.md b/Java/README.md deleted file mode 100644 index 71c39384e..000000000 --- a/Java/README.md +++ /dev/null @@ -1,89 +0,0 @@ - -# Getting Started with ThoughtSpot Public REST API - -## Install the Package - -Install the SDK by adding the following dependency in your project's pom.xml file: - -```xml - - io.github.thoughtspot - rest-api-sdk-lib - 1.13.1 - -``` - -You can also view the package at: -https://mvnrepository.com/artifact/io.github.thoughtspot/rest-api-sdk-lib/1.13.1 - -## Test the SDK - -The generated code and the server can be tested using automatically generated test cases. -JUnit is used as the testing framework and test runner. - -In Eclipse, for running the tests do the following: - -1. Select the project ThoughtSpotPublicRESTAPILib from the package explorer. -2. Select `Run -> Run as -> JUnit Test` or use `Alt + Shift + X` followed by `T` to run the Tests. - -## Initialize the API Client - -**_Note:_** Documentation for the client can be found [here.](doc/client.md) - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `baseUrl` | `String` | *Default*: `"https://localhost:443"` | -| `environment` | Environment | The API environment.
**Default: `Environment.PRODUCTION`** | -| `httpClientConfig` | `ReadonlyHttpClientConfiguration` | Http Client Configuration instance. | -| `accessToken` | `String` | The OAuth 2.0 Access Token to use for API requests. | - -The API client can be initialized as follows: - -```java -ThoughtSpotPublicRESTAPIClient client = new ThoughtSpotPublicRESTAPIClient.Builder() - .httpClientConfig(configBuilder -> configBuilder - .timeout(0)) - .accessToken("AccessToken") - .environment(Environment.PRODUCTION) - .baseUrl("https://localhost:443") - .build(); -``` - -## Authorization - -This API uses `OAuth 2 Bearer token`. - -## List of APIs - -* [User](doc/controllers/user.md) -* [Group](doc/controllers/group.md) -* [Metadata](doc/controllers/metadata.md) -* [Database](doc/controllers/database.md) -* [Connection](doc/controllers/connection.md) -* [Data](doc/controllers/data.md) -* [Logs](doc/controllers/logs.md) -* [Custom Actions](doc/controllers/custom-actions.md) -* [Security](doc/controllers/security.md) -* [Org](doc/controllers/org.md) -* [Session](doc/controllers/session.md) -* [Admin](doc/controllers/admin.md) -* [Report](doc/controllers/report.md) -* [Materialization](doc/controllers/materialization.md) - -## Classes Documentation - -* [Utility Classes](doc/utility-classes.md) -* [HttpRequest](doc/http-request.md) -* [HttpResponse](doc/http-response.md) -* [HttpStringResponse](doc/http-string-response.md) -* [HttpContext](doc/http-context.md) -* [HttpBodyRequest](doc/http-body-request.md) -* [HttpCallback Interface](doc/http-callback-interface.md) -* [Headers](doc/headers.md) -* [ApiException](doc/api-exception.md) -* [Configuration Interface](doc/configuration-interface.md) -* [HttpClientConfiguration](doc/http-client-configuration.md) -* [HttpClientConfiguration.Builder](doc/http-client-configuration-builder.md) - diff --git a/Java/doc/api-exception.md b/Java/doc/api-exception.md deleted file mode 100644 index 8ec1dee01..000000000 --- a/Java/doc/api-exception.md +++ /dev/null @@ -1,19 +0,0 @@ - -# ApiException Class - -This is the base class for all exceptions that represent an error response from the server. - -## Constructors - -| Name | Description | -| --- | --- | -| `ApiException(String reason)` | Initialization constructor. | -| `ApiException(String reason, HttpContext context)` | Initialization constructor. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getResponseCode()` | The HTTP response code from the API request | `int` | -| `getHeaders()` | The HTTP response body from the API request. | `Headers` | - diff --git a/Java/doc/client.md b/Java/doc/client.md deleted file mode 100644 index bebeb5dc1..000000000 --- a/Java/doc/client.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Client Class Documentation - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `baseUrl` | `String` | *Default*: `"https://localhost:443"` | -| `environment` | Environment | The API environment.
**Default: `Environment.PRODUCTION`** | -| `httpClientConfig` | `ReadonlyHttpClientConfiguration` | Http Client Configuration instance. | -| `accessToken` | `String` | The OAuth 2.0 Access Token to use for API requests. | - -The API client can be initialized as follows: - -```java -ThoughtSpotPublicRESTAPIClient client = new ThoughtSpotPublicRESTAPIClient.Builder() - .httpClientConfig(configBuilder -> configBuilder - .timeout(0)) - .accessToken("AccessToken") - .environment(Environment.PRODUCTION) - .baseUrl("https://localhost:443") - .build(); -``` - -## ThoughtSpot Public REST APIClient Class - -The gateway for the SDK. This class acts as a factory for the Controllers and also holds the configuration of the SDK. - -### Controllers - -| Name | Description | Return Type | -| --- | --- | --- | -| `getUserController()` | Provides access to User controller. | `UserController` | -| `getGroupController()` | Provides access to Group controller. | `GroupController` | -| `getMetadataController()` | Provides access to Metadata controller. | `MetadataController` | -| `getDatabaseController()` | Provides access to Database controller. | `DatabaseController` | -| `getConnectionController()` | Provides access to Connection controller. | `ConnectionController` | -| `getDataController()` | Provides access to Data controller. | `DataController` | -| `getLogsController()` | Provides access to Logs controller. | `LogsController` | -| `getCustomActionsController()` | Provides access to CustomActions controller. | `CustomActionsController` | -| `getSecurityController()` | Provides access to Security controller. | `SecurityController` | -| `getOrgController()` | Provides access to Org controller. | `OrgController` | -| `getSessionController()` | Provides access to Session controller. | `SessionController` | -| `getAdminController()` | Provides access to Admin controller. | `AdminController` | -| `getReportController()` | Provides access to Report controller. | `ReportController` | -| `getMaterializationController()` | Provides access to Materialization controller. | `MaterializationController` | - -### Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `shutdown()` | Shutdown the underlying HttpClient instance. | `void` | -| `getEnvironment()` | Current API environment. | `Environment` | -| `getBaseUrl()` | baseUrl value. | `String` | -| `getHttpClient()` | The HTTP Client instance to use for making HTTP requests. | `HttpClient` | -| `getHttpClientConfig()` | Http Client Configuration instance. | `ReadonlyHttpClientConfiguration` | -| `getBearerAuthCredentials()` | The credentials to use with BearerAuth. | `BearerAuthCredentials` | -| `getAccessToken()` | OAuth 2.0 Access Token. | `String` | -| `getBaseUri(Server server)` | Get base URI by current environment | `String` | -| `getBaseUri()` | Get base URI by current environment | `String` | - diff --git a/Java/doc/configuration-interface.md b/Java/doc/configuration-interface.md deleted file mode 100644 index 520652808..000000000 --- a/Java/doc/configuration-interface.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Configuration Interface - -This is the base class for all exceptions that represent an error response from the server. - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getEnvironment()` | Current API environment. | `Environment` | -| `getBaseUrl()` | baseUrl value. | `String` | -| `getHttpClientConfig()` | Http Client Configuration instance. | `ReadonlyHttpClientConfiguration` | -| `getAccessToken()` | OAuth 2.0 Access Token. | `String` | -| `getBaseUri(Server server)` | Get base URI by current environment. | `String` | -| `getBaseUri()` | Get base URI by current environment. | `String` | - diff --git a/Java/doc/controllers/admin.md b/Java/doc/controllers/admin.md deleted file mode 100644 index 6d572c9d0..000000000 --- a/Java/doc/controllers/admin.md +++ /dev/null @@ -1,281 +0,0 @@ -# Admin - -```java -AdminController adminController = client.getAdminController(); -``` - -## Class Name - -`AdminController` - -## Methods - -* [Restapi V2 Update Cluster Config](../../doc/controllers/admin.md#restapi-v2-update-cluster-config) -* [Restapi V2 Reset User Password](../../doc/controllers/admin.md#restapi-v2-reset-user-password) -* [Restapi V2 Sync Principal](../../doc/controllers/admin.md#restapi-v2-sync-principal) -* [Restapi V2 Change Author of Objects](../../doc/controllers/admin.md#restapi-v2-change-author-of-objects) -* [Restapi V2 Assign Author to Objects](../../doc/controllers/admin.md#restapi-v2-assign-author-to-objects) -* [Restapi V2 Force Logout Users](../../doc/controllers/admin.md#restapi-v2-force-logout-users) - - -# Restapi V2 Update Cluster Config - -To update the Thoughtspot cluster configuration, use this endpoint. - -```java -CompletableFuture restapiV2UpdateClusterConfigAsync( - final TspublicRestV2AdminConfigurationUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminConfigurationUpdateRequest`](../../doc/models/tspublic-rest-v2-admin-configuration-update-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2AdminConfigurationUpdateRequest body = new TspublicRestV2AdminConfigurationUpdateRequest(); - -adminController.restapiV2UpdateClusterConfigAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Reset User Password - -To reset the password of a ThoughtSpot user account, use this endpoint. - -It is mandatory to use Authorization header with token of a user with admin access to successfully run this endpoint. - -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```java -CompletableFuture restapiV2ResetUserPasswordAsync( - final TspublicRestV2AdminResetpasswordRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminResetpasswordRequest`](../../doc/models/tspublic-rest-v2-admin-resetpassword-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2AdminResetpasswordRequest body = new TspublicRestV2AdminResetpasswordRequest(); -body.setNewPassword("newPassword0"); - -adminController.restapiV2ResetUserPasswordAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Sync Principal - -To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, use this endpoint. - -The payload takes principals containing all users and groups present in the external system. - -The users and user groups in Thoughtspot get updated for any matching inputs. - -Any user and user group present in the input, but not present in the cluster, gets created in cluster. -n You can optionally choose to delete the user and groups from the cluster, that are not present in the input. - -```java -CompletableFuture restapiV2SyncPrincipalAsync( - final TspublicRestV2AdminSyncprincipalRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminSyncprincipalRequest`](../../doc/models/tspublic-rest-v2-admin-syncprincipal-request.md) | Body, Required | - | - -## Response Type - -[`AdminsyncPrincipalResponse`](../../doc/models/adminsync-principal-response.md) - -## Example Usage - -```java -TspublicRestV2AdminSyncprincipalRequest body = new TspublicRestV2AdminSyncprincipalRequest(); -body.setPrincipalObject(new LinkedList<>()); -body.getPrincipalObject().add(localhost.ApiHelper.deserialize("{\"key1\":\"val1\",\"key2\":\"val2\"}")); - -adminController.restapiV2SyncPrincipalAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Change Author of Objects - -To programmatically change the owner of one or several objects from one user account to another, use this endpoint. - -You might want to transfer ownership of objects owned by a user to another active user, when the account is removed from the ThoughtSpot application. - -```java -CompletableFuture restapiV2ChangeAuthorOfObjectsAsync( - final TspublicRestV2AdminChangeauthorRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminChangeauthorRequest`](../../doc/models/tspublic-rest-v2-admin-changeauthor-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2AdminChangeauthorRequest body = new TspublicRestV2AdminChangeauthorRequest(); -body.setTsObjectId(new LinkedList<>()); -body.getTsObjectId().add("tsObjectId7"); -body.setFromUser(new FromUserNameAndIDInput()); -body.setToUser(new ToUserNameAndIDInput()); - -adminController.restapiV2ChangeAuthorOfObjectsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Author to Objects - -To programmatically assign an author to one or several objects, use this endpoint. - -Provide either user name or id as input. When both are given user id will be considered. - -Requires administration privilege. - -```java -CompletableFuture restapiV2AssignAuthorToObjectsAsync( - final TspublicRestV2AdminAssignauthorRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminAssignauthorRequest`](../../doc/models/tspublic-rest-v2-admin-assignauthor-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2AdminAssignauthorRequest body = new TspublicRestV2AdminAssignauthorRequest(); -body.setTsObjectId(new LinkedList<>()); -body.getTsObjectId().add("tsObjectId7"); - -adminController.restapiV2AssignAuthorToObjectsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Force Logout Users - -To logout one or more users from logged in session, use this endpoint. If no input is provided then all logged in users are force logged out. - -Requires administration privilege - -```java -CompletableFuture restapiV2ForceLogoutUsersAsync( - final TspublicRestV2AdminForcelogoutRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminForcelogoutRequest`](../../doc/models/tspublic-rest-v2-admin-forcelogout-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2AdminForcelogoutRequest body = new TspublicRestV2AdminForcelogoutRequest(); - -adminController.restapiV2ForceLogoutUsersAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/connection.md b/Java/doc/controllers/connection.md deleted file mode 100644 index af2b4b2d4..000000000 --- a/Java/doc/controllers/connection.md +++ /dev/null @@ -1,526 +0,0 @@ -# Connection - -```java -ConnectionController connectionController = client.getConnectionController(); -``` - -## Class Name - -`ConnectionController` - -## Methods - -* [Restapi V2 Get Connection](../../doc/controllers/connection.md#restapi-v2-get-connection) -* [Restapi V2 Get Connection Database](../../doc/controllers/connection.md#restapi-v2-get-connection-database) -* [Restapi V2 Create Connection](../../doc/controllers/connection.md#restapi-v2-create-connection) -* [Restapi V2 Update Connection](../../doc/controllers/connection.md#restapi-v2-update-connection) -* [Restapi V2 Delete Connection](../../doc/controllers/connection.md#restapi-v2-delete-connection) -* [Restapi V2 Add Table to Connection](../../doc/controllers/connection.md#restapi-v2-add-table-to-connection) -* [Restapi V2 Remove Table From Connection](../../doc/controllers/connection.md#restapi-v2-remove-table-from-connection) -* [Restapi V2 Search Connection](../../doc/controllers/connection.md#restapi-v2-search-connection) -* [Restapi V2 Get Connection Tables](../../doc/controllers/connection.md#restapi-v2-get-connection-tables) -* [Restapi V2 Get Connection Table Columns](../../doc/controllers/connection.md#restapi-v2-get-connection-table-columns) - - -# Restapi V2 Get Connection - -To get the details of a specific connection use this endpoint - -```java -CompletableFuture restapiV2GetConnectionAsync( - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | The GUID of the connection to query | - -## Response Type - -[`ConnectionResponse`](../../doc/models/connection-response.md) - -## Example Usage - -```java -String id = "id0"; - -connectionController.restapiV2GetConnectionAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Database - -To get the list of databases for a connection, use this endpoint. - -The response will include databases from the data platform corresponding to the connection id provided. - -```java -CompletableFuture> restapiV2GetConnectionDatabaseAsync( - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | The GUID of the connection | - -## Response Type - -`List` - -## Example Usage - -```java -String id = "id0"; - -connectionController.restapiV2GetConnectionDatabaseAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Connection - -To programmatically create a connection in the ThoughtSpot system use this API endpoint. -Using this API, you can create a connection and assign groups. -To create a connection, you require admin connection privileges. -All connections created in the ThoughtSpot system are added to ALL_GROUP - -```java -CompletableFuture restapiV2CreateConnectionAsync( - final TspublicRestV2ConnectionCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionCreateRequest`](../../doc/models/tspublic-rest-v2-connection-create-request.md) | Body, Required | - | - -## Response Type - -[`CreateConnectionResponse`](../../doc/models/create-connection-response.md) - -## Example Usage - -```java -TspublicRestV2ConnectionCreateRequest body = new TspublicRestV2ConnectionCreateRequest(); -body.setType(Type14Enum.ORACLE_ADW); -body.setName("name6"); -body.setConfiguration("configuration0"); - -connectionController.restapiV2CreateConnectionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Connection - -You can use this endpoint to programmatically modify an existing connection -To modify a connection, you require admin connection privileges. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered and connectionname will be updated - -```java -CompletableFuture restapiV2UpdateConnectionAsync( - final TspublicRestV2ConnectionUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionUpdateRequest`](../../doc/models/tspublic-rest-v2-connection-update-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2ConnectionUpdateRequest body = new TspublicRestV2ConnectionUpdateRequest(); -body.setId("id6"); -body.setConfiguration("configuration0"); - -connectionController.restapiV2UpdateConnectionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Connection - -To remove a connection from the ThoughtSpot system, use this endpoint. - -```java -CompletableFuture restapiV2DeleteConnectionAsync( - final List id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `List` | Query, Required | A JSON array of GUIDs of the connection | - -## Response Type - -`boolean` - -## Example Usage - -```java -List id = new LinkedList<>(); -id.add("id0"); - -connectionController.restapiV2DeleteConnectionAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Table to Connection - -To programmatically add table to an existing connection use this endpoint. -When you assign groups to a connection, the connection inherits the privileges assigned to those groups. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered. - -```java -CompletableFuture restapiV2AddTableToConnectionAsync( - final TspublicRestV2ConnectionAddtableRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionAddtableRequest`](../../doc/models/tspublic-rest-v2-connection-addtable-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2ConnectionAddtableRequest body = new TspublicRestV2ConnectionAddtableRequest(); -body.setId("id6"); -body.setTable(new LinkedList<>()); - -AddTableInput bodyTable0 = new AddTableInput(); -bodyTable0.setName("name0"); -bodyTable0.setDbName("dbName8"); -bodyTable0.setSchemaName("schemaName4"); -bodyTable0.setColumns(new LinkedList<>()); - -ColumnsInput bodyTable0Columns0 = new ColumnsInput(); -bodyTable0Columns0.setName("name0"); -bodyTable0Columns0.setDataType("dataType2"); -bodyTable0.getColumns().add(bodyTable0Columns0); - -ColumnsInput bodyTable0Columns1 = new ColumnsInput(); -bodyTable0Columns1.setName("name1"); -bodyTable0Columns1.setDataType("dataType3"); -bodyTable0.getColumns().add(bodyTable0Columns1); - -body.getTable().add(bodyTable0); - -AddTableInput bodyTable1 = new AddTableInput(); -bodyTable1.setName("name1"); -bodyTable1.setDbName("dbName9"); -bodyTable1.setSchemaName("schemaName5"); -bodyTable1.setColumns(new LinkedList<>()); - -ColumnsInput bodyTable1Columns0 = new ColumnsInput(); -bodyTable1Columns0.setName("name9"); -bodyTable1Columns0.setDataType("dataType1"); -bodyTable1.getColumns().add(bodyTable1Columns0); - -body.getTable().add(bodyTable1); - -AddTableInput bodyTable2 = new AddTableInput(); -bodyTable2.setName("name2"); -bodyTable2.setDbName("dbName0"); -bodyTable2.setSchemaName("schemaName6"); -bodyTable2.setColumns(new LinkedList<>()); - -ColumnsInput bodyTable2Columns0 = new ColumnsInput(); -bodyTable2Columns0.setName("name8"); -bodyTable2Columns0.setDataType("dataType0"); -bodyTable2.getColumns().add(bodyTable2Columns0); - -ColumnsInput bodyTable2Columns1 = new ColumnsInput(); -bodyTable2Columns1.setName("name9"); -bodyTable2Columns1.setDataType("dataType1"); -bodyTable2.getColumns().add(bodyTable2Columns1); - -ColumnsInput bodyTable2Columns2 = new ColumnsInput(); -bodyTable2Columns2.setName("name0"); -bodyTable2Columns2.setDataType("dataType2"); -bodyTable2.getColumns().add(bodyTable2Columns2); - -body.getTable().add(bodyTable2); - - -connectionController.restapiV2AddTableToConnectionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Table From Connection - -To programmatically remove a table from a connection use API endpoint. -The API removes only the connection association. It does not delete the connection or group from the Thoughtspot system. -At least one of id or name of connection is required. When both are given connection id will be considered. - -```java -CompletableFuture restapiV2RemoveTableFromConnectionAsync( - final TspublicRestV2ConnectionRemovetableRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionRemovetableRequest`](../../doc/models/tspublic-rest-v2-connection-removetable-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2ConnectionRemovetableRequest body = new TspublicRestV2ConnectionRemovetableRequest(); -body.setId("id6"); -body.setTable(new LinkedList<>()); - -TableInput bodyTable0 = new TableInput(); -body.getTable().add(bodyTable0); - -TableInput bodyTable1 = new TableInput(); -body.getTable().add(bodyTable1); - -TableInput bodyTable2 = new TableInput(); -body.getTable().add(bodyTable2); - - -connectionController.restapiV2RemoveTableFromConnectionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Connection - -To get the details of a specific connection or all connections in the ThoughtSpot system use this end point. - -```java -CompletableFuture> restapiV2SearchConnectionAsync( - final TspublicRestV2ConnectionSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionSearchRequest`](../../doc/models/tspublic-rest-v2-connection-search-request.md) | Body, Required | - | - -## Response Type - -[`List`](../../doc/models/connection-response.md) - -## Example Usage - -```java -TspublicRestV2ConnectionSearchRequest body = new TspublicRestV2ConnectionSearchRequest(); -body.setType(Type15Enum.ORACLE_ADW); - -connectionController.restapiV2SearchConnectionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Tables - -To get the details of tables from a connection, use this endpoint. - -You can get the details of tables in the data platform for the connection id provided. - -```java -CompletableFuture restapiV2GetConnectionTablesAsync( - final TspublicRestV2ConnectionTableRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionTableRequest`](../../doc/models/tspublic-rest-v2-connection-table-request.md) | Body, Required | - | - -## Response Type - -[`ConnectionTableResponse`](../../doc/models/connection-table-response.md) - -## Example Usage - -```java -TspublicRestV2ConnectionTableRequest body = new TspublicRestV2ConnectionTableRequest(); -body.setId("id6"); - -connectionController.restapiV2GetConnectionTablesAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Table Columns - -To get the details of columns in a table associated to a connection, use this endpoint. - -You can get the columns of any table available in the data platform for the connection id provided. - -```java -CompletableFuture restapiV2GetConnectionTableColumnsAsync( - final TspublicRestV2ConnectionTablecoloumnRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionTablecoloumnRequest`](../../doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md) | Body, Required | - | - -## Response Type - -[`ConnectionTableColumnsResponse`](../../doc/models/connection-table-columns-response.md) - -## Example Usage - -```java -TspublicRestV2ConnectionTablecoloumnRequest body = new TspublicRestV2ConnectionTablecoloumnRequest(); -body.setId("id6"); -body.setTable(new LinkedList<>()); - -ConnectionTableColumnsInput bodyTable0 = new ConnectionTableColumnsInput(); -bodyTable0.setDbName("dbName8"); -bodyTable0.setSchemaName("schemaName4"); -bodyTable0.setName("name0"); -body.getTable().add(bodyTable0); - -ConnectionTableColumnsInput bodyTable1 = new ConnectionTableColumnsInput(); -bodyTable1.setDbName("dbName9"); -bodyTable1.setSchemaName("schemaName5"); -bodyTable1.setName("name1"); -body.getTable().add(bodyTable1); - -ConnectionTableColumnsInput bodyTable2 = new ConnectionTableColumnsInput(); -bodyTable2.setDbName("dbName0"); -bodyTable2.setSchemaName("schemaName6"); -bodyTable2.setName("name2"); -body.getTable().add(bodyTable2); - - -connectionController.restapiV2GetConnectionTableColumnsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/custom-actions.md b/Java/doc/controllers/custom-actions.md deleted file mode 100644 index 461594eb7..000000000 --- a/Java/doc/controllers/custom-actions.md +++ /dev/null @@ -1,341 +0,0 @@ -# Custom Actions - -```java -CustomActionsController customActionsController = client.getCustomActionsController(); -``` - -## Class Name - -`CustomActionsController` - -## Methods - -* [Restapi V2 Get Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action) -* [Restapi V2 Search Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-search-custom-action) -* [Restapi V2 Get Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action-association) -* [Restapi V2 Create Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-create-custom-action) -* [Restapi V2 Update Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action) -* [Restapi V2 Delete Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action) -* [Restapi V2 Update Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action-association) -* [Restapi V2 Delete Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action-association) - - -# Restapi V2 Get Custom Action - -To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint - -```java -CompletableFuture restapiV2GetCustomActionAsync( - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | GUID of the custom action | - -## Response Type - -`Object` - -## Example Usage - -```java -String id = "id0"; - -customActionsController.restapiV2GetCustomActionAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Custom Action - -To search custom actions available on a ThoughtSpot instance, use this endpoint - -```java -CompletableFuture restapiV2SearchCustomActionAsync( - final TspublicRestV2CustomactionSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionSearchRequest`](../../doc/models/tspublic-rest-v2-customaction-search-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2CustomactionSearchRequest body = new TspublicRestV2CustomactionSearchRequest(); - -customActionsController.restapiV2SearchCustomActionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Custom Action Association - -ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the details of the ThoughtSpot objects associated with a custom action, use this endpoint. - -```java -CompletableFuture restapiV2GetCustomActionAssociationAsync( - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | GUID of the custom action | - -## Response Type - -`Object` - -## Example Usage - -```java -String id = "id0"; - -customActionsController.restapiV2GetCustomActionAssociationAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Custom Action - -To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, use this endpoint - -```java -CompletableFuture restapiV2CreateCustomActionAsync( - final TspublicRestV2CustomactionCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionCreateRequest`](../../doc/models/tspublic-rest-v2-customaction-create-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2CustomactionCreateRequest body = new TspublicRestV2CustomactionCreateRequest(); -body.setConfiguration("configuration0"); - -customActionsController.restapiV2CreateCustomActionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Custom Action - -To programmatically edit an existing custom action, use this endpoint - -```java -CompletableFuture restapiV2UpdateCustomActionAsync( - final TspublicRestV2CustomactionUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-update-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2CustomactionUpdateRequest body = new TspublicRestV2CustomactionUpdateRequest(); -body.setId("id6"); -body.setConfiguration("configuration0"); - -customActionsController.restapiV2UpdateCustomActionAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Custom Action - -To programmatically delete a custom action, use this endpoint - -```java -CompletableFuture restapiV2DeleteCustomActionAsync( - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | GUID of the custom action | - -## Response Type - -`Object` - -## Example Usage - -```java -String id = "id0"; - -customActionsController.restapiV2DeleteCustomActionAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Custom Action Association - -To programmatically associate a custom action to a ThoughtSpot object, use this endpoint - -```java -CompletableFuture restapiV2UpdateCustomActionAssociationAsync( - final TspublicRestV2CustomactionAssociationUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionAssociationUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-association-update-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2CustomactionAssociationUpdateRequest body = new TspublicRestV2CustomactionAssociationUpdateRequest(); -body.setId("id6"); -body.setAssociation("association6"); - -customActionsController.restapiV2UpdateCustomActionAssociationAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Custom Action Association - -To remove custom action associations to ThoughtSpot objects, use this endpoint - -```java -CompletableFuture restapiV2DeleteCustomActionAssociationAsync( - final String id, - final String association) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | GUID of the custom action | -| `association` | `String` | Query, Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Response Type - -`Object` - -## Example Usage - -```java -String id = "id0"; -String association = "association0"; - -customActionsController.restapiV2DeleteCustomActionAssociationAsync(id, association).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/data.md b/Java/doc/controllers/data.md deleted file mode 100644 index b5b15f4f8..000000000 --- a/Java/doc/controllers/data.md +++ /dev/null @@ -1,218 +0,0 @@ -# Data - -```java -DataController dataController = client.getDataController(); -``` - -## Class Name - -`DataController` - -## Methods - -* [Restapi V2 Search Query Data](../../doc/controllers/data.md#restapi-v2-search-query-data) -* [Restapi V2 Liveboard Data](../../doc/controllers/data.md#restapi-v2-liveboard-data) -* [Restapi V2 Answer Data](../../doc/controllers/data.md#restapi-v2-answer-data) -* [Restapi V2 Answer Query Sql](../../doc/controllers/data.md#restapi-v2-answer-query-sql) -* [Restapi V2 Liveboard Query Sql](../../doc/controllers/data.md#restapi-v2-liveboard-query-sql) - - -# Restapi V2 Search Query Data - -To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint - -```java -CompletableFuture restapiV2SearchQueryDataAsync( - final TspublicRestV2DataSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataSearchRequest`](../../doc/models/tspublic-rest-v2-data-search-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2DataSearchRequest body = new TspublicRestV2DataSearchRequest(); -body.setQueryString("queryString0"); -body.setDataObjectId("dataObjectId6"); - -dataController.restapiV2SearchQueryDataAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Data - -To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use this endpoint - -```java -CompletableFuture restapiV2LiveboardDataAsync( - final TspublicRestV2DataLiveboardRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataLiveboardRequest`](../../doc/models/tspublic-rest-v2-data-liveboard-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2DataLiveboardRequest body = new TspublicRestV2DataLiveboardRequest(); - -dataController.restapiV2LiveboardDataAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Answer Data - -To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint - -```java -CompletableFuture restapiV2AnswerDataAsync( - final TspublicRestV2DataAnswerRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataAnswerRequest`](../../doc/models/tspublic-rest-v2-data-answer-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2DataAnswerRequest body = new TspublicRestV2DataAnswerRequest(); -body.setId("id6"); - -dataController.restapiV2AnswerDataAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Answer Query Sql - -To retrieve the query SQL related to an Answer that is run on the data platform, you can use this endpoint - -```java -CompletableFuture restapiV2AnswerQuerySqlAsync( - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | The GUID of the Answer | - -## Response Type - -[`AnswerQueryResponse`](../../doc/models/answer-query-response.md) - -## Example Usage - -```java -String id = "id0"; - -dataController.restapiV2AnswerQuerySqlAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Query Sql - -To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, you can use this endpoint - -```java -CompletableFuture restapiV2LiveboardQuerySqlAsync( - final String id, - final List vizId) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | The GUID of the Answer | -| `vizId` | `List` | Query, Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | - -## Response Type - -[`LiveboardQueryResponse`](../../doc/models/liveboard-query-response.md) - -## Example Usage - -```java -String id = "id0"; - -dataController.restapiV2LiveboardQuerySqlAsync(id, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/database.md b/Java/doc/controllers/database.md deleted file mode 100644 index 587526109..000000000 --- a/Java/doc/controllers/database.md +++ /dev/null @@ -1,226 +0,0 @@ -# Database - -```java -DatabaseController databaseController = client.getDatabaseController(); -``` - -## Class Name - -`DatabaseController` - -## Methods - -* [Restapi V2 Get Schemas](../../doc/controllers/database.md#restapi-v2-get-schemas) -* [Restapi V2 Get Tables](../../doc/controllers/database.md#restapi-v2-get-tables) -* [Restapi V2 Get Table Details](../../doc/controllers/database.md#restapi-v2-get-table-details) -* [Restapi V2 Create Table](../../doc/controllers/database.md#restapi-v2-create-table) -* [Restapi V2 Run Query](../../doc/controllers/database.md#restapi-v2-run-query) - - -# Restapi V2 Get Schemas - -To list all the schemas in a database in Falcon, use this endpoint. - -```java -CompletableFuture> restapiV2GetSchemasAsync( - final String database) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `String` | Query, Required | Name of the Falcon database | - -## Response Type - -`List` - -## Example Usage - -```java -String database = "database0"; - -databaseController.restapiV2GetSchemasAsync(database).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Tables - -To list all the tables in a schema of a database in Falcon, use this endpoint. - -```java -CompletableFuture> restapiV2GetTablesAsync( - final String database, - final String schema) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `String` | Query, Required | Name of the Falcon database | -| `schema` | `String` | Query, Required | Name of the schema in Falcon database | - -## Response Type - -`List` - -## Example Usage - -```java -String database = "database0"; -String schema = "schema2"; - -databaseController.restapiV2GetTablesAsync(database, schema).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Table Details - -Note: This endpoint is applicable only for on-prem deployments. - -To provide details of a table in a schema of a database in Falcon, use this endpoint. - -```java -CompletableFuture restapiV2GetTableDetailsAsync( - final String database, - final String table, - final String schema) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `String` | Query, Required | Name of the Falcon database | -| `table` | `String` | Query, Required | Name of the table in Falcon database | -| `schema` | `String` | Query, Optional | Name of the schema in Falcon database | - -## Response Type - -`Object` - -## Example Usage - -```java -String database = "database0"; -String table = "table2"; - -databaseController.restapiV2GetTableDetailsAsync(database, table, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Table - -To create a table in Falcon, use this endpoint. - -```java -CompletableFuture restapiV2CreateTableAsync( - final TspublicRestV2DatabaseTableCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DatabaseTableCreateRequest`](../../doc/models/tspublic-rest-v2-database-table-create-request.md) | Body, Required | - | - -## Response Type - -[`CreateTableResponse`](../../doc/models/create-table-response.md) - -## Example Usage - -```java -TspublicRestV2DatabaseTableCreateRequest body = new TspublicRestV2DatabaseTableCreateRequest(); - -databaseController.restapiV2CreateTableAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Run Query - -To run a TQL statement in Falcon, use this endpoint. You can run only following type of statements - Table DDL alter and Table rows update and delete. - -```java -CompletableFuture> restapiV2RunQueryAsync( - final TspublicRestV2DatabaseTableRunqueryRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DatabaseTableRunqueryRequest`](../../doc/models/tspublic-rest-v2-database-table-runquery-request.md) | Body, Required | - | - -## Response Type - -`List` - -## Example Usage - -```java -TspublicRestV2DatabaseTableRunqueryRequest body = new TspublicRestV2DatabaseTableRunqueryRequest(); -body.setStatement(new LinkedList<>()); -body.getStatement().add("statement6"); -body.getStatement().add("statement7"); - -databaseController.restapiV2RunQueryAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/group.md b/Java/doc/controllers/group.md deleted file mode 100644 index db4057af7..000000000 --- a/Java/doc/controllers/group.md +++ /dev/null @@ -1,480 +0,0 @@ -# Group - -```java -GroupController groupController = client.getGroupController(); -``` - -## Class Name - -`GroupController` - -## Methods - -* [Restapi V2 Get Group](../../doc/controllers/group.md#restapi-v2-get-group) -* [Restapi V2 Create Group](../../doc/controllers/group.md#restapi-v2-create-group) -* [Restapi V2 Update Group](../../doc/controllers/group.md#restapi-v2-update-group) -* [Restapi V2 Delete Group](../../doc/controllers/group.md#restapi-v2-delete-group) -* [Restapi V2 Add Privileges to Group](../../doc/controllers/group.md#restapi-v2-add-privileges-to-group) -* [Restapi V2 Remove Privileges From Group](../../doc/controllers/group.md#restapi-v2-remove-privileges-from-group) -* [Restapi V2 Add Users to Group](../../doc/controllers/group.md#restapi-v2-add-users-to-group) -* [Restapi V2 Remove Users From Group](../../doc/controllers/group.md#restapi-v2-remove-users-from-group) -* [Restapi V2 Add Groups to Group](../../doc/controllers/group.md#restapi-v2-add-groups-to-group) -* [Restapi V2 Remove Groups From Group](../../doc/controllers/group.md#restapi-v2-remove-groups-from-group) -* [Restapi V2 Search Groups](../../doc/controllers/group.md#restapi-v2-search-groups) - - -# Restapi V2 Get Group - -To get the details of a specific group by name or id, use this endpoint. -At Least one value needed. When both are given id will be considered to fetch user information. - -```java -CompletableFuture restapiV2GetGroupAsync( - final String name, - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Name of the group | -| `id` | `String` | Query, Optional | The GUID of the group to query. | - -## Response Type - -[`GroupResponse`](../../doc/models/group-response.md) - -## Example Usage - -```java -groupController.restapiV2GetGroupAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Group - -To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using this API, you can create a group and assign privileges and users. For ease of user management and access control, ThoughtSpot administrators can create groups and assign privileges to these groups. The privileges determine the actions that the users belonging to a group are allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the ALL_GROUP or remove members from it. - -```java -CompletableFuture restapiV2CreateGroupAsync( - final TspublicRestV2GroupCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupCreateRequest`](../../doc/models/tspublic-rest-v2-group-create-request.md) | Body, Required | - | - -## Response Type - -[`GroupResponse`](../../doc/models/group-response.md) - -## Example Usage - -```java -TspublicRestV2GroupCreateRequest body = new TspublicRestV2GroupCreateRequest(); -body.setName("name6"); -body.setDisplayName("displayName6"); - -groupController.restapiV2CreateGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Group - -You can use this endpoint to programmatically modify an existing user account. -To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```java -CompletableFuture restapiV2UpdateGroupAsync( - final TspublicRestV2GroupUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupUpdateRequest`](../../doc/models/tspublic-rest-v2-group-update-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2GroupUpdateRequest body = new TspublicRestV2GroupUpdateRequest(); - -groupController.restapiV2UpdateGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Group - -To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information. - -```java -CompletableFuture restapiV2DeleteGroupAsync( - final String name, - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Name of the group. | -| `id` | `String` | Query, Optional | The GUID of the group | - -## Response Type - -`boolean` - -## Example Usage - -```java -groupController.restapiV2DeleteGroupAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Privileges to Group - -To programmatically add privileges to an existing group, use API endpoint. -When you assign privileges to a group, all the users under to this group inherits the privileges assigned to that group. -At least one of id or name of group is required. When both are given user id will be considered. - -```java -CompletableFuture restapiV2AddPrivilegesToGroupAsync( - final TspublicRestV2GroupAddprivilegeRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAddprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-addprivilege-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2GroupAddprivilegeRequest body = new TspublicRestV2GroupAddprivilegeRequest(); - -groupController.restapiV2AddPrivilegesToGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Privileges From Group - -To programmatically remove privileges from a group, use API endpoint. The API removes only the privilege association. It does not delete the privilege or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```java -CompletableFuture restapiV2RemovePrivilegesFromGroupAsync( - final TspublicRestV2GroupRemoveprivilegeRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemoveprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-removeprivilege-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2GroupRemoveprivilegeRequest body = new TspublicRestV2GroupRemoveprivilegeRequest(); - -groupController.restapiV2RemovePrivilegesFromGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Users to Group - -To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When you assign users to a group, the users inherits the privileges assigned to that group. At least one of id or name of the group is required. When both are given user id will be considered. - -```java -CompletableFuture restapiV2AddUsersToGroupAsync( - final TspublicRestV2GroupAdduserRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAdduserRequest`](../../doc/models/tspublic-rest-v2-group-adduser-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2GroupAdduserRequest body = new TspublicRestV2GroupAdduserRequest(); -body.setUsers(new LinkedList<>()); - -UserNameAndIDInput bodyUsers0 = new UserNameAndIDInput(); -body.getUsers().add(bodyUsers0); - - -groupController.restapiV2AddUsersToGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Users From Group - -To programmatically remove users from a group, use API endpoint.The API removes only the user association. It does not delete the users or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```java -CompletableFuture restapiV2RemoveUsersFromGroupAsync( - final TspublicRestV2GroupRemoveuserRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemoveuserRequest`](../../doc/models/tspublic-rest-v2-group-removeuser-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2GroupRemoveuserRequest body = new TspublicRestV2GroupRemoveuserRequest(); -body.setUsers(new LinkedList<>()); - -UserNameAndIDInput bodyUsers0 = new UserNameAndIDInput(); -body.getUsers().add(bodyUsers0); - - -groupController.restapiV2RemoveUsersFromGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Groups to Group - -To programmatically add existing groups to a group, use API endpoint. When you assign groups to a group, the group inherits the privileges assigned to those groups. At least one of id or name of group is required. When both are given user id will be considered. - -```java -CompletableFuture restapiV2AddGroupsToGroupAsync( - final TspublicRestV2GroupAddgroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAddgroupRequest`](../../doc/models/tspublic-rest-v2-group-addgroup-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2GroupAddgroupRequest body = new TspublicRestV2GroupAddgroupRequest(); -body.setGroups(new LinkedList<>()); - -GroupNameAndIDInput bodyGroups0 = new GroupNameAndIDInput(); -body.getGroups().add(bodyGroups0); - - -groupController.restapiV2AddGroupsToGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Groups From Group - -To programmatically remove groups from a group, use API endpoint.The API removes only the group association. It does not delete the group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```java -CompletableFuture restapiV2RemoveGroupsFromGroupAsync( - final TspublicRestV2GroupRemovegroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemovegroupRequest`](../../doc/models/tspublic-rest-v2-group-removegroup-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2GroupRemovegroupRequest body = new TspublicRestV2GroupRemovegroupRequest(); -body.setGroups(new LinkedList<>()); - -GroupNameAndIDInput bodyGroups0 = new GroupNameAndIDInput(); -body.getGroups().add(bodyGroups0); - - -groupController.restapiV2RemoveGroupsFromGroupAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Groups - -To get the details of a specific group account or all groups in the ThoughtSpot system, use this end point. - -```java -CompletableFuture restapiV2SearchGroupsAsync( - final TspublicRestV2GroupSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupSearchRequest`](../../doc/models/tspublic-rest-v2-group-search-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2GroupSearchRequest body = new TspublicRestV2GroupSearchRequest(); - -groupController.restapiV2SearchGroupsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/logs.md b/Java/doc/controllers/logs.md deleted file mode 100644 index 903d6765b..000000000 --- a/Java/doc/controllers/logs.md +++ /dev/null @@ -1,61 +0,0 @@ -# Logs - -```java -LogsController logsController = client.getLogsController(); -``` - -## Class Name - -`LogsController` - - -# Restapi V2 Get Log Events - -Note: This endpoint is applicable only for SAAS deployments. - -The ThoughtSpot log streaming service API allows you to programmatically get a security audit event log from the ThoughtSpot system. - -To use this API, make sure you have admin user privileges. - -ThoughtSpot cloud deployments allow you to collect security audit events and send them to your Security information and event management (SIEM) application in real-time. - -These events can help your security operations personnel to detect potential security threats or compromised user accounts in your organization. - -```java -CompletableFuture restapiV2GetLogEventsAsync( - final TopicEnum topic, - final String fromEpoch, - final String toEpoch) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `topic` | [`TopicEnum`](../../doc/models/topic-enum.md) | Query, Required | Type of the log | -| `fromEpoch` | `String` | Query, Optional | The EPOCH time in milliseconds to set the start time for streaming logs.

Example: To set the timestamp as June 1, 2021 8 am, specify 1622534400000. | -| `toEpoch` | `String` | Query, Optional | The EPOCH time in milliseconds to set the end time for streaming logs.

Example: To set the timestamp as July 1, 2021, 8 am, specify 1625126400000. | - -## Response Type - -[`LogsResponse`](../../doc/models/logs-response.md) - -## Example Usage - -```java -TopicEnum topic = TopicEnum.SECURITY_LOGS; - -logsController.restapiV2GetLogEventsAsync(topic, null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/materialization.md b/Java/doc/controllers/materialization.md deleted file mode 100644 index c74291e6a..000000000 --- a/Java/doc/controllers/materialization.md +++ /dev/null @@ -1,50 +0,0 @@ -# Materialization - -```java -MaterializationController materializationController = client.getMaterializationController(); -``` - -## Class Name - -`MaterializationController` - - -# Restapi V2 Refresh Materialized View - -Use this endpoint to refresh data in the materialized view by running the query associated with it - -```java -CompletableFuture restapiV2RefreshMaterializedViewAsync( - final TspublicRestV2MaterializationRefreshviewRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MaterializationRefreshviewRequest`](../../doc/models/tspublic-rest-v2-materialization-refreshview-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2MaterializationRefreshviewRequest body = new TspublicRestV2MaterializationRefreshviewRequest(); -body.setId("id6"); - -materializationController.restapiV2RefreshMaterializedViewAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/metadata.md b/Java/doc/controllers/metadata.md deleted file mode 100644 index c60622da7..000000000 --- a/Java/doc/controllers/metadata.md +++ /dev/null @@ -1,910 +0,0 @@ -# Metadata - -```java -MetadataController metadataController = client.getMetadataController(); -``` - -## Class Name - -`MetadataController` - -## Methods - -* [Restapi V2 Get Tag](../../doc/controllers/metadata.md#restapi-v2-get-tag) -* [Restapi V2 Get Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-get-home-liveboard) -* [Restapi V2 Search Object Header](../../doc/controllers/metadata.md#restapi-v2-search-object-header) -* [Restapi V2 Get Object Visualization Header](../../doc/controllers/metadata.md#restapi-v2-get-object-visualization-header) -* [Restapi V2 Get Object Detail](../../doc/controllers/metadata.md#restapi-v2-get-object-detail) -* [Restapi V2 Get Object Header](../../doc/controllers/metadata.md#restapi-v2-get-object-header) -* [Restapi V2 Search Object Detail](../../doc/controllers/metadata.md#restapi-v2-search-object-detail) -* [Restapi V2 Create Tag](../../doc/controllers/metadata.md#restapi-v2-create-tag) -* [Restapi V2 Update Tag](../../doc/controllers/metadata.md#restapi-v2-update-tag) -* [Restapi V2 Delete Tag](../../doc/controllers/metadata.md#restapi-v2-delete-tag) -* [Restapi V2 Assign Tag](../../doc/controllers/metadata.md#restapi-v2-assign-tag) -* [Restapi V2 Unassign Tag](../../doc/controllers/metadata.md#restapi-v2-unassign-tag) -* [Restapi V2 Assign Favorite](../../doc/controllers/metadata.md#restapi-v2-assign-favorite) -* [Restapi V2 Unassign Favorite](../../doc/controllers/metadata.md#restapi-v2-unassign-favorite) -* [Restapi V2 Assign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-assign-home-liveboard) -* [Restapi V2 Unassign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-unassign-home-liveboard) -* [Restapi V2 Export Object TML](../../doc/controllers/metadata.md#restapi-v2-export-object-tml) -* [Restapi V2 Import Object TML](../../doc/controllers/metadata.md#restapi-v2-import-object-tml) -* [Restapi V2 Delete Object](../../doc/controllers/metadata.md#restapi-v2-delete-object) -* [Restapi V2 Get Object Dependency](../../doc/controllers/metadata.md#restapi-v2-get-object-dependency) - - -# Restapi V2 Get Tag - -To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2GetTagAsync( - final String name, - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Name of the tag | -| `id` | `String` | Query, Optional | The GUID of the tag | - -## Response Type - -[`MetadataTagResponse`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```java -metadataController.restapiV2GetTagAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Home Liveboard - -To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2GetHomeLiveboardAsync( - final String userName, - final String userId) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `String` | Query, Optional | Name of the tag | -| `userId` | `String` | Query, Optional | The GUID of the tag | - -## Response Type - -[`HomeLiveboardResponse`](../../doc/models/home-liveboard-response.md) - -## Example Usage - -```java -metadataController.restapiV2GetHomeLiveboardAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Object Header - -To get header details for metadata objects, use this endpoint. You can provide as input selective fields to get the data for. - -```java -CompletableFuture restapiV2SearchObjectHeaderAsync( - final TspublicRestV2MetadataHeaderSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHeaderSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-header-search-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2MetadataHeaderSearchRequest body = new TspublicRestV2MetadataHeaderSearchRequest(); -body.setType(Type3Enum.USER); - -metadataController.restapiV2SearchObjectHeaderAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Visualization Header - -Use this endpoint to get header details of visualization charts for a given liveboard or answer. At least one of id or name of liveboard or answer is required. When both are given, then id will be considered. - -```java -CompletableFuture> restapiV2GetObjectVisualizationHeaderAsync( - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | The GUID of the liveboard or answer | - -## Response Type - -`List` - -## Example Usage - -```java -String id = "id0"; - -metadataController.restapiV2GetObjectVisualizationHeaderAsync(id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Detail - -Use this endpoint to get full details of metadata objects - -```java -CompletableFuture restapiV2GetObjectDetailAsync( - final Type4Enum type, - final List id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `List` | Query, Required | A JSON array of GUIDs of the objects. | - -## Response Type - -`Object` - -## Example Usage - -```java -Type4Enum type = Type4Enum.DATAOBJECT; -List id = new LinkedList<>(); -id.add("id0"); - -metadataController.restapiV2GetObjectDetailAsync(type, id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Header - -To get header detail of a metadata object, use this endpoint. You can provide as input selective fields to get the data for. - -```java -CompletableFuture restapiV2GetObjectHeaderAsync( - final Type5Enum type, - final String id, - final List outputFields) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type5Enum`](../../doc/models/type-5-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `String` | Query, Required | GUID of the metadata object | -| `outputFields` | `List` | Query, Optional | Array of header field names that need to be included in the header response | - -## Response Type - -`Object` - -## Example Usage - -```java -Type5Enum type = Type5Enum.COLUMN_ALL; -String id = "id0"; - -metadataController.restapiV2GetObjectHeaderAsync(type, id, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Object Detail - -Use this endpoint to get full details of metadata objects - -```java -CompletableFuture restapiV2SearchObjectDetailAsync( - final TspublicRestV2MetadataDetailSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataDetailSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-detail-search-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2MetadataDetailSearchRequest body = new TspublicRestV2MetadataDetailSearchRequest(); -body.setType(Type6Enum.USER); -body.setId(new LinkedList<>()); -body.getId().add("id6"); -body.getId().add("id7"); - -metadataController.restapiV2SearchObjectDetailAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Tag - -To programmatically create tags, use this endpoint - -```java -CompletableFuture restapiV2CreateTagAsync( - final TspublicRestV2MetadataTagCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagCreateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-create-request.md) | Body, Required | - | - -## Response Type - -[`MetadataTagResponse`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```java -TspublicRestV2MetadataTagCreateRequest body = new TspublicRestV2MetadataTagCreateRequest(); -body.setName("name6"); - -metadataController.restapiV2CreateTagAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Tag - -To programmatically update tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2UpdateTagAsync( - final TspublicRestV2MetadataTagUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagUpdateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-update-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2MetadataTagUpdateRequest body = new TspublicRestV2MetadataTagUpdateRequest(); - -metadataController.restapiV2UpdateTagAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Tag - -To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2DeleteTagAsync( - final String name, - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Name of the tag | -| `id` | `String` | Query, Optional | The GUID of the tag | - -## Response Type - -`boolean` - -## Example Usage - -```java -metadataController.restapiV2DeleteTagAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Tag - -To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2AssignTagAsync( - final TspublicRestV2MetadataTagAssignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-assign-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2MetadataTagAssignRequest body = new TspublicRestV2MetadataTagAssignRequest(); -body.setTsObject(new LinkedList<>()); - -TsObjectInput bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.setId("id8"); -bodyTsObject0.setType(TypeEnum.DATAOBJECT); -body.getTsObject().add(bodyTsObject0); - -TsObjectInput bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.setId("id9"); -bodyTsObject1.setType(TypeEnum.CONNECTION); -body.getTsObject().add(bodyTsObject1); - -TsObjectInput bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.setId("id0"); -bodyTsObject2.setType(TypeEnum.ANSWER); -body.getTsObject().add(bodyTsObject2); - - -metadataController.restapiV2AssignTagAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Tag - -To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2UnassignTagAsync( - final TspublicRestV2MetadataTagUnassignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2MetadataTagUnassignRequest body = new TspublicRestV2MetadataTagUnassignRequest(); -body.setTsObject(new LinkedList<>()); - -TsObjectInput bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.setId("id8"); -bodyTsObject0.setType(TypeEnum.DATAOBJECT); -body.getTsObject().add(bodyTsObject0); - -TsObjectInput bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.setId("id9"); -bodyTsObject1.setType(TypeEnum.CONNECTION); -body.getTsObject().add(bodyTsObject1); - -TsObjectInput bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.setId("id0"); -bodyTsObject2.setType(TypeEnum.ANSWER); -body.getTsObject().add(bodyTsObject2); - - -metadataController.restapiV2UnassignTagAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Favorite - -To programmatically assign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2AssignFavoriteAsync( - final TspublicRestV2MetadataFavoriteAssignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataFavoriteAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2MetadataFavoriteAssignRequest body = new TspublicRestV2MetadataFavoriteAssignRequest(); -body.setTsObject(new LinkedList<>()); - -TsObjectInput bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.setId("id8"); -bodyTsObject0.setType(TypeEnum.DATAOBJECT); -body.getTsObject().add(bodyTsObject0); - -TsObjectInput bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.setId("id9"); -bodyTsObject1.setType(TypeEnum.CONNECTION); -body.getTsObject().add(bodyTsObject1); - -TsObjectInput bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.setId("id0"); -bodyTsObject2.setType(TypeEnum.ANSWER); -body.getTsObject().add(bodyTsObject2); - - -metadataController.restapiV2AssignFavoriteAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Favorite - -To programmatically unassign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2UnassignFavoriteAsync( - final TspublicRestV2MetadataFavoriteUnassignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataFavoriteUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2MetadataFavoriteUnassignRequest body = new TspublicRestV2MetadataFavoriteUnassignRequest(); -body.setTsObject(new LinkedList<>()); - -TsObjectInput bodyTsObject0 = new TsObjectInput(); -bodyTsObject0.setId("id8"); -bodyTsObject0.setType(TypeEnum.DATAOBJECT); -body.getTsObject().add(bodyTsObject0); - -TsObjectInput bodyTsObject1 = new TsObjectInput(); -bodyTsObject1.setId("id9"); -bodyTsObject1.setType(TypeEnum.CONNECTION); -body.getTsObject().add(bodyTsObject1); - -TsObjectInput bodyTsObject2 = new TsObjectInput(); -bodyTsObject2.setId("id0"); -bodyTsObject2.setType(TypeEnum.ANSWER); -body.getTsObject().add(bodyTsObject2); - - -metadataController.restapiV2UnassignFavoriteAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Home Liveboard - -To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2AssignHomeLiveboardAsync( - final TspublicRestV2MetadataHomeliveboardAssignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHomeliveboardAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2MetadataHomeliveboardAssignRequest body = new TspublicRestV2MetadataHomeliveboardAssignRequest(); - -metadataController.restapiV2AssignHomeLiveboardAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Home Liveboard - -To unassign the home liveboard set for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```java -CompletableFuture restapiV2UnassignHomeLiveboardAsync( - final TspublicRestV2MetadataHomeliveboardUnassignRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHomeliveboardUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2MetadataHomeliveboardUnassignRequest body = new TspublicRestV2MetadataHomeliveboardUnassignRequest(); - -metadataController.restapiV2UnassignHomeLiveboardAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Export Object TML - -To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```java -CompletableFuture restapiV2ExportObjectTMLAsync( - final TspublicRestV2MetadataTmlExportRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTmlExportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-export-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2MetadataTmlExportRequest body = new TspublicRestV2MetadataTmlExportRequest(); -body.setId(new LinkedList<>()); -body.getId().add("id6"); -body.getId().add("id7"); - -metadataController.restapiV2ExportObjectTMLAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Import Object TML - -To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```java -CompletableFuture restapiV2ImportObjectTMLAsync( - final TspublicRestV2MetadataTmlImportRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTmlImportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-import-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2MetadataTmlImportRequest body = new TspublicRestV2MetadataTmlImportRequest(); -body.setObjectTML(new LinkedList<>()); -body.getObjectTML().add("objectTML5"); -body.getObjectTML().add("objectTML6"); - -metadataController.restapiV2ImportObjectTMLAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Object - -Use this endpoint to delete the metadata objects - -```java -CompletableFuture restapiV2DeleteObjectAsync( - final Type4Enum type, - final List id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched | -| `id` | `List` | Query, Required | A JSON array of GUIDs of the objects | - -## Response Type - -`boolean` - -## Example Usage - -```java -Type4Enum type = Type4Enum.DATAOBJECT; -List id = new LinkedList<>(); -id.add("id0"); - -metadataController.restapiV2DeleteObjectAsync(type, id).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Dependency - -To query the details of dependent objects and associate objects as dependents, you can use this API. Dependency is defined as relation between referenced and referencing objects. A referencing object is said to have a dependency on a referenced object, if the referenced object cannot be deleted without first deleting the referencing object. For example, consider a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion of C2 will be prevented by the relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting C1 - -```java -CompletableFuture restapiV2GetObjectDependencyAsync( - final TspublicRestV2MetadataDependencyRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataDependencyRequest`](../../doc/models/tspublic-rest-v2-metadata-dependency-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2MetadataDependencyRequest body = new TspublicRestV2MetadataDependencyRequest(); -body.setType(Type13Enum.COLUMN); -body.setId(new LinkedList<>()); -body.getId().add("id6"); -body.getId().add("id7"); - -metadataController.restapiV2GetObjectDependencyAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/org.md b/Java/doc/controllers/org.md deleted file mode 100644 index 76c18069e..000000000 --- a/Java/doc/controllers/org.md +++ /dev/null @@ -1,232 +0,0 @@ -# Org - -```java -OrgController orgController = client.getOrgController(); -``` - -## Class Name - -`OrgController` - -## Methods - -* [Restapi V2 Get Org](../../doc/controllers/org.md#restapi-v2-get-org) -* [Restapi V2 Create Org](../../doc/controllers/org.md#restapi-v2-create-org) -* [Restapi V2 Update Org](../../doc/controllers/org.md#restapi-v2-update-org) -* [Restapi V2 Delete Org](../../doc/controllers/org.md#restapi-v2-delete-org) -* [Restapi V2 Search Orgs](../../doc/controllers/org.md#restapi-v2-search-orgs) - - -# Restapi V2 Get Org - -To get the details of a specific organization by name or id, use this endpoint. - -At least one value needed. When both are given,then id will be considered to fetch organization information. - -Requires Administration privilege for tenant. - -```java -CompletableFuture restapiV2GetOrgAsync( - final String name, - final Integer id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Name of the organization. | -| `id` | `Integer` | Query, Optional | The ID of the organization. | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```java -orgController.restapiV2GetOrgAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Org - -To programmatically create an organization in the ThoughtSpot system, use this API endpoint. - -Requires Administration privilege for tenant. - -```java -CompletableFuture restapiV2CreateOrgAsync( - final TspublicRestV2OrgCreateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgCreateRequest`](../../doc/models/tspublic-rest-v2-org-create-request.md) | Body, Required | - | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```java -TspublicRestV2OrgCreateRequest body = new TspublicRestV2OrgCreateRequest(); -body.setName("name6"); - -orgController.restapiV2CreateOrgAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Org - -You can use this endpoint to programmatically modify an existing org. - -Provide name or id of the organization to update the properties. When both id and name are given, then id will be considered and name of the organization will be updated. - -Requires Administration privilege for tenant. - -```java -CompletableFuture restapiV2UpdateOrgAsync( - final TspublicRestV2OrgUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgUpdateRequest`](../../doc/models/tspublic-rest-v2-org-update-request.md) | Body, Required | - | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```java -TspublicRestV2OrgUpdateRequest body = new TspublicRestV2OrgUpdateRequest(); - -orgController.restapiV2UpdateOrgAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Org - -To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. - -At least one value is needed. When both id and name are given, then id will be considered. - -Requires Administration privilege for tenant. - -```java -CompletableFuture restapiV2DeleteOrgAsync( - final String name, - final Integer id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Name of the organization. | -| `id` | `Integer` | Query, Optional | The ID of the organization. | - -## Response Type - -`boolean` - -## Example Usage - -```java -orgController.restapiV2DeleteOrgAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Orgs - -To get the details of a specific organization or all organizations in the ThoughtSpot system use this end point. - -If no input is provided, then all organizations are included in the response. - -Requires Administration privilege for tenant. - -```java -CompletableFuture> restapiV2SearchOrgsAsync( - final TspublicRestV2OrgSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgSearchRequest`](../../doc/models/tspublic-rest-v2-org-search-request.md) | Body, Required | - | - -## Response Type - -[`List`](../../doc/models/orgs-response.md) - -## Example Usage - -```java -TspublicRestV2OrgSearchRequest body = new TspublicRestV2OrgSearchRequest(); - -orgController.restapiV2SearchOrgsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/report.md b/Java/doc/controllers/report.md deleted file mode 100644 index f6caf0e5a..000000000 --- a/Java/doc/controllers/report.md +++ /dev/null @@ -1,110 +0,0 @@ -# Report - -```java -ReportController reportController = client.getReportController(); -``` - -## Class Name - -`ReportController` - -## Methods - -* [Restapi V2 Answer Report](../../doc/controllers/report.md#restapi-v2-answer-report) -* [Restapi V2 Liveboard Report](../../doc/controllers/report.md#restapi-v2-liveboard-report) - - -# Restapi V2 Answer Report - -To programmatically download Answer data as a file, use this endpoint. - -The PDF will download data in the tabular format even if Answer is saved as chart. - -```java -CompletableFuture restapiV2AnswerReportAsync( - final String id, - final Type16Enum type) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | GUID of the Answer to download. | -| `type` | [`Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. | - -## Response Type - -`Object` - -## Example Usage - -```java -String id = "id0"; -Type16Enum type = Type16Enum.PDF; - -reportController.restapiV2AnswerReportAsync(id, type).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Report - -To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, use this endpoint - -```java -CompletableFuture restapiV2LiveboardReportAsync( - final Type16Enum type, - final String id, - final List vizId, - final String transientContent, - final String runtimeFilter, - final String runtimeSort, - final PdfOptionsInput pdfOptions) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. Valid values: CSV/XLSX/PDF/PNG. | -| `id` | `String` | Query, Optional | GUID of the Liveboard to download.

This field is considered only when no input is provided for transientContent field. | -| `vizId` | `List` | Query, Optional | JSON Array of GUIDs of the visualizations in the Liveboard to be included in the downloaded file.

For CSV, XLSX and PNG file download, visualization id is mandatory. CSV and XLSX is valid only for visualization of type table and PNG is valid for charts.

Only one value will be accepted for these formats. If multiple values are provided then first value in the array will be considered. | -| `transientContent` | `String` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard. | -| `runtimeFilter` | `String` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . | -| `runtimeSort` | `String` | Query, Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | -| `pdfOptions` | [`PdfOptionsInput`](../../doc/models/pdf-options-input.md) | Query, Optional | Additional options that are applicable for PDF type. | - -## Response Type - -`Object` - -## Example Usage - -```java -Type16Enum type = Type16Enum.PDF; - -reportController.restapiV2LiveboardReportAsync(type, null, null, null, null, null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/security.md b/Java/doc/controllers/security.md deleted file mode 100644 index 00748b3bd..000000000 --- a/Java/doc/controllers/security.md +++ /dev/null @@ -1,320 +0,0 @@ -# Security - -```java -SecurityController securityController = client.getSecurityController(); -``` - -## Class Name - -`SecurityController` - -## Methods - -* [Restapi V2 Get Permission on Object](../../doc/controllers/security.md#restapi-v2-get-permission-on-object) -* [Restapi V2 Get Permission for Principal](../../doc/controllers/security.md#restapi-v2-get-permission-for-principal) -* [Restapi V2 Share Object](../../doc/controllers/security.md#restapi-v2-share-object) -* [Restapi V2 Share Visualization](../../doc/controllers/security.md#restapi-v2-share-visualization) -* [Restapi V2 Search Permission on Objects](../../doc/controllers/security.md#restapi-v2-search-permission-on-objects) -* [Restapi V2 Search Permission for Principals](../../doc/controllers/security.md#restapi-v2-search-permission-for-principals) - - -# Restapi V2 Get Permission on Object - -To list the permissions for user and user groups on an object, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -```java -CompletableFuture restapiV2GetPermissionOnObjectAsync( - final String id, - final Type7Enum type, - final Boolean includeDependent) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Required | GUID of the metadata object for which the permission needs to be obtained. | -| `type` | [`Type7Enum`](../../doc/models/type-7-enum.md) | Query, Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | -| `includeDependent` | `Boolean` | Query, Optional | When this field is set to true, the API returns the permission details for the dependent objects for the the object included in the request | - -## Response Type - -[`SecurityPermissionResponse`](../../doc/models/security-permission-response.md) - -## Example Usage - -```java -String id = "id0"; -Type7Enum type = Type7Enum.DATAOBJECT; - -securityController.restapiV2GetPermissionOnObjectAsync(id, type, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Permission for Principal - -Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. - -Requires administration privilege - -```java -CompletableFuture restapiV2GetPermissionForPrincipalAsync( - final String id, - final String name) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `String` | Query, Optional | GUID of the user or user group for which the object permission needs to be obtained | -| `name` | `String` | Query, Optional | Name of the ser or user group for which the object permission needs to be obtained | - -## Response Type - -[`PrincipalSearchResponse`](../../doc/models/principal-search-response.md) - -## Example Usage - -```java -securityController.restapiV2GetPermissionForPrincipalAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Share Object - -To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. - -When you share an object like a Liveboard or visualization, a notification with a live link is sent to the user. When the users access this object, they can view the last saved version of the object. - -```java -CompletableFuture restapiV2ShareObjectAsync( - final TspublicRestV2SecurityShareTsobjectRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityShareTsobjectRequest`](../../doc/models/tspublic-rest-v2-security-share-tsobject-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2SecurityShareTsobjectRequest body = new TspublicRestV2SecurityShareTsobjectRequest(); -body.setType(Type18Enum.DATAOBJECT); -body.setId(new LinkedList<>()); -body.getId().add("id6"); -body.getId().add("id7"); -body.setPermission("permission8"); - -securityController.restapiV2ShareObjectAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Share Visualization - -If you want to share a specific visualization from a Liveboard with another user or user group, then use this endpoint. - -Requires privilege to share the visualization - -```java -CompletableFuture restapiV2ShareVisualizationAsync( - final TspublicRestV2SecurityShareVisualizationRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityShareVisualizationRequest`](../../doc/models/tspublic-rest-v2-security-share-visualization-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2SecurityShareVisualizationRequest body = new TspublicRestV2SecurityShareVisualizationRequest(); -body.setId("id6"); -body.setVizId("vizId4"); -body.setPrincipalId(new LinkedList<>()); -body.getPrincipalId().add("principalId2"); -body.getPrincipalId().add("principalId3"); - -securityController.restapiV2ShareVisualizationAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Permission on Objects - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```java -CompletableFuture> restapiV2SearchPermissionOnObjectsAsync( - final TspublicRestV2SecurityPermissionTsobjectSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityPermissionTsobjectSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md) | Body, Required | - | - -## Response Type - -[`List`](../../doc/models/security-permission-response.md) - -## Example Usage - -```java -TspublicRestV2SecurityPermissionTsobjectSearchRequest body = new TspublicRestV2SecurityPermissionTsobjectSearchRequest(); -body.setTsObject(new LinkedList<>()); - -TsObjectSearchInput bodyTsObject0 = new TsObjectSearchInput(); -bodyTsObject0.setType(Type2Enum.DATAOBJECT); -bodyTsObject0.setId(new LinkedList<>()); -bodyTsObject0.getId().add("id8"); -bodyTsObject0.getId().add("id9"); -body.getTsObject().add(bodyTsObject0); - -TsObjectSearchInput bodyTsObject1 = new TsObjectSearchInput(); -bodyTsObject1.setType(Type2Enum.COLUMN); -bodyTsObject1.setId(new LinkedList<>()); -bodyTsObject1.getId().add("id9"); -bodyTsObject1.getId().add("id0"); -bodyTsObject1.getId().add("id1"); -body.getTsObject().add(bodyTsObject1); - -TsObjectSearchInput bodyTsObject2 = new TsObjectSearchInput(); -bodyTsObject2.setType(Type2Enum.LIVEBOARD); -bodyTsObject2.setId(new LinkedList<>()); -bodyTsObject2.getId().add("id0"); -body.getTsObject().add(bodyTsObject2); - - -securityController.restapiV2SearchPermissionOnObjectsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Permission for Principals - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```java -CompletableFuture> restapiV2SearchPermissionForPrincipalsAsync( - final TspublicRestV2SecurityPermissionPrincipalSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityPermissionPrincipalSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-principal-search-request.md) | Body, Required | - | - -## Response Type - -[`List`](../../doc/models/principal-search-response.md) - -## Example Usage - -```java -TspublicRestV2SecurityPermissionPrincipalSearchRequest body = new TspublicRestV2SecurityPermissionPrincipalSearchRequest(); -body.setPrincipal(new LinkedList<>()); - -UserNameAndIDInput bodyPrincipal0 = new UserNameAndIDInput(); -body.getPrincipal().add(bodyPrincipal0); - - -securityController.restapiV2SearchPermissionForPrincipalsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/session.md b/Java/doc/controllers/session.md deleted file mode 100644 index e78320786..000000000 --- a/Java/doc/controllers/session.md +++ /dev/null @@ -1,127 +0,0 @@ -# Session - -```java -SessionController sessionController = client.getSessionController(); -``` - -## Class Name - -`SessionController` - -## Methods - -* [Restapi V2 Login](../../doc/controllers/session.md#restapi-v2-login) -* [Restapi V2 Get Token](../../doc/controllers/session.md#restapi-v2-get-token) - - -# Restapi V2 Login - -You can programmatically create login session for a user in ThoughtSpot using this endpoint. - -You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. - -userName and password input is given precedence over "Authorization" header, when both are included in the request. - -```java -CompletableFuture restapiV2LoginAsync( - final String userName, - final String password, - final Boolean rememberMe) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `String` | Query, Optional | Username of the user account | -| `password` | `String` | Query, Optional | The password of the user account | -| `rememberMe` | `Boolean` | Query, Optional | A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls. | - -## Response Type - -[`SessionLoginResponse`](../../doc/models/session-login-response.md) - -## Example Usage - -```java -sessionController.restapiV2LoginAsync(null, null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Token - -To programmatically create session token for a user in ThoughtSpot, use this endpoint. - -You can generate the token for a user by providing password or secret key from the cluster. - -You need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. - -1. Click the Develop tab. - -2. Under Customizations, click Settings. - -3. To enable trusted authentication, turn on the toggle. - -4. A secret_key for trusted authentication is generated. - -5. Click the clipboard icon to copy the token. - -Password is given precedence over secretKey input, when both are included in the request. - -```java -CompletableFuture restapiV2GetTokenAsync( - final String userName, - final String password, - final String secretKey, - final AccessLevelEnum accessLevel, - final String tsObjectId, - final String tokenExpiryDuration, - final String orgId) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `String` | Query, Required | Username of the user account | -| `password` | `String` | Query, Optional | The password of the user account | -| `secretKey` | `String` | Query, Optional | The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication. | -| `accessLevel` | [`AccessLevelEnum`](../../doc/models/access-level-enum.md) | Query, Optional | User access privilege.

FULL - Creates a session with full access.

REPORT_BOOK_VIEW - Allow view access to the specified visualizations. | -| `tsObjectId` | `String` | Query, Optional | GUID of the ThoughtSpot object. If you have set the accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or visualization object. | -| `tokenExpiryDuration` | `String` | Query, Optional | Duration in seconds after which the token expires | -| `orgId` | `String` | Query, Optional | Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered | - -## Response Type - -[`SessionLoginResponse`](../../doc/models/session-login-response.md) - -## Example Usage - -```java -String userName = "userName2"; - -sessionController.restapiV2GetTokenAsync(userName, null, null, null, null, null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/controllers/user.md b/Java/doc/controllers/user.md deleted file mode 100644 index 7a7b06a19..000000000 --- a/Java/doc/controllers/user.md +++ /dev/null @@ -1,430 +0,0 @@ -# User - -```java -UserController userController = client.getUserController(); -``` - -## Class Name - -`UserController` - -## Methods - -* [Restapi V2 Get User](../../doc/controllers/user.md#restapi-v2-get-user) -* [Restapi V2 Create User](../../doc/controllers/user.md#restapi-v2-create-user) -* [Restapi V2 Update User](../../doc/controllers/user.md#restapi-v2-update-user) -* [Restapi V2 Delete User](../../doc/controllers/user.md#restapi-v2-delete-user) -* [Restapi V2 Add User to Groups](../../doc/controllers/user.md#restapi-v2-add-user-to-groups) -* [Restapi V2 Remove User From Groups](../../doc/controllers/user.md#restapi-v2-remove-user-from-groups) -* [Restapi V2 Search Users](../../doc/controllers/user.md#restapi-v2-search-users) -* [Restapi V2 Change Password of User](../../doc/controllers/user.md#restapi-v2-change-password-of-user) -* [Restapi V2 Add User to Orgs](../../doc/controllers/user.md#restapi-v2-add-user-to-orgs) - - -# Restapi V2 Get User - -To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information - -```java -CompletableFuture restapiV2GetUserAsync( - final String name, - final String id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Username of the user that you want to query. | -| `id` | `String` | Query, Optional | The GUID of the user account to query | - -## Response Type - -[`UserResponse`](../../doc/models/user-response.md) - -## Example Usage - -```java -userController.restapiV2GetUserAsync(null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create User - -To programmatically create a user account in the ThoughtSpot system use this API endpoint. Using this API, you can create a user and assign groups. -To create a user, you require admin user privileges. -All users created in the ThoughtSpot system are added to ALL_GROUP - -```java -CompletableFuture restapiV2CreateUserAsync( - final String name, - final String displayName, - final String password, - final VisibilityEnum visibility, - final String mail, - final List orgIds, - final List groups, - final StateEnum state, - final Boolean notifyOnShare, - final Boolean showWalkMe, - final Boolean analystOnboardingComplete, - final Type8Enum type) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Required | Name of the user. The username string must be unique. | -| `displayName` | `String` | Query, Required | A unique display name string for the user account, usually their first and last name | -| `password` | `String` | Query, Required | Password for the user account. | -| `visibility` | [`VisibilityEnum`](../../doc/models/visibility-enum.md) | Query, Optional | Visibility of the user. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and this allows them to share objects | -| `mail` | `String` | Query, Optional | Email of the user account | -| `orgIds` | `List` | Query, Optional | Array of org identifiers. If no value is provided then user will be created in the organization associated with the login session. | -| `groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Query, Optional | Array of objects of groups that the user belong to. | -| `state` | [`StateEnum`](../../doc/models/state-enum.md) | Query, Optional | Status of user account. acitve or inactive. | -| `notifyOnShare` | `Boolean` | Query, Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | -| `showWalkMe` | `Boolean` | Query, Optional | The user preference for revisiting the onboarding experience. | -| `analystOnboardingComplete` | `Boolean` | Query, Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | -| `type` | [`Type8Enum`](../../doc/models/type-8-enum.md) | Query, Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | - -## Response Type - -[`UserResponse`](../../doc/models/user-response.md) - -## Example Usage - -```java -String name = "name0"; -String displayName = "displayName2"; -String password = "password4"; - -userController.restapiV2CreateUserAsync(name, displayName, password, null, null, null, null, null, null, null, null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update User - -You can use this endpoint to programmatically modify an existing user account. To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```java -CompletableFuture restapiV2UpdateUserAsync( - final TspublicRestV2UserUpdateRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserUpdateRequest`](../../doc/models/tspublic-rest-v2-user-update-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2UserUpdateRequest body = new TspublicRestV2UserUpdateRequest(); - -userController.restapiV2UpdateUserAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete User - -To remove a user from the ThoughtSpot system, use this endpoint. -At Least one value needed. When both are given user id will be considered to delete user. - -```java -CompletableFuture restapiV2DeleteUserAsync( - final String name, - final String id, - final Integer orgId) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `String` | Query, Optional | Username of the user that you want to query. | -| `id` | `String` | Query, Optional | The GUID of the user account to query | -| `orgId` | `Integer` | Query, Optional | Unique identifier of the organization from which the user would be deleted. If no value is provided then user will be deleted from the organization associated with the login session. | - -## Response Type - -`boolean` - -## Example Usage - -```java -userController.restapiV2DeleteUserAsync(null, null, null).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add User to Groups - -To programmatically add groups to an existing ThoughtSpot user use this endpoint. -When you assign groups to a user, the user inherits the privileges assigned to those groups. -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```java -CompletableFuture restapiV2AddUserToGroupsAsync( - final TspublicRestV2UserAddgroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserAddgroupRequest`](../../doc/models/tspublic-rest-v2-user-addgroup-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2UserAddgroupRequest body = new TspublicRestV2UserAddgroupRequest(); -body.setGroups(new LinkedList<>()); - -GroupNameAndIDInput bodyGroups0 = new GroupNameAndIDInput(); -body.getGroups().add(bodyGroups0); - - -userController.restapiV2AddUserToGroupsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove User From Groups - -To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. -The API removes only the user association. It does not delete the user or group from the Thoughtspot system -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```java -CompletableFuture restapiV2RemoveUserFromGroupsAsync( - final TspublicRestV2UserRemovegroupRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserRemovegroupRequest`](../../doc/models/tspublic-rest-v2-user-removegroup-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2UserRemovegroupRequest body = new TspublicRestV2UserRemovegroupRequest(); -body.setGroups(new LinkedList<>()); - -GroupNameAndIDInput bodyGroups0 = new GroupNameAndIDInput(); -body.getGroups().add(bodyGroups0); - - -userController.restapiV2RemoveUserFromGroupsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Users - -To get the details of a specific user account or all users in the ThoughtSpot system use this end point. - -```java -CompletableFuture restapiV2SearchUsersAsync( - final TspublicRestV2UserSearchRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserSearchRequest`](../../doc/models/tspublic-rest-v2-user-search-request.md) | Body, Required | - | - -## Response Type - -`Object` - -## Example Usage - -```java -TspublicRestV2UserSearchRequest body = new TspublicRestV2UserSearchRequest(); - -userController.restapiV2SearchUsersAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Change Password of User - -To change the password of a ThoughtSpot user account, use this endpoint. - -At least one of id or name of user is required. When both are given user id will be considered. - -```java -CompletableFuture restapiV2ChangePasswordOfUserAsync( - final TspublicRestV2UserChangepasswordRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserChangepasswordRequest`](../../doc/models/tspublic-rest-v2-user-changepassword-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2UserChangepasswordRequest body = new TspublicRestV2UserChangepasswordRequest(); -body.setCurrentPassword("currentPassword0"); -body.setNewPassword("newPassword0"); - -userController.restapiV2ChangePasswordOfUserAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add User to Orgs - -To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. - -At least one of id or name of the organization is required. When both are given, then organization id will be considered. - -Requires Administration access for the organization to which users need to be added. - -```java -CompletableFuture restapiV2AddUserToOrgsAsync( - final TspublicRestV2UserAddorgRequest body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserAddorgRequest`](../../doc/models/tspublic-rest-v2-user-addorg-request.md) | Body, Required | - | - -## Response Type - -`boolean` - -## Example Usage - -```java -TspublicRestV2UserAddorgRequest body = new TspublicRestV2UserAddorgRequest(); -body.setUsers(new LinkedList<>()); - -UserNameAndIDInput bodyUsers0 = new UserNameAndIDInput(); -body.getUsers().add(bodyUsers0); - - -userController.restapiV2AddUserToOrgsAsync(body).thenAccept(result -> { - // TODO success callback handler -}).exceptionally(exception -> { - // TODO failure callback handler - return null; -}); -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Java/doc/headers.md b/Java/doc/headers.md deleted file mode 100644 index 31bd258ae..000000000 --- a/Java/doc/headers.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Headers Class - -Class for creating and managing HTTP Headers. - -## Constructors - -| Name | Description | -| --- | --- | -| `Headers()` | Default constructor. | -| `Headers(Map> headers)` | Constructor that creates a new instance using a given Map. | -| `Headers(Headers h)` | Copy Constructor. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `has(String headerName)` | Use to check if the given name is present in headers. | `boolean` | -| `names()` | Returns a Set containing all header names. | `Set` | -| `value(String headerName)` | Returns the first value associated with a given header name, or null if the header name is not found. | `String` | -| `values(String headerName)` | Returns a List of all values associated with a given header name, or null if the header name is not found. | `List` | -| `asSimpleMap()` | Returns a Map of the headers, giving only one value for each header name. | `Map` | -| `asMultimap()` | Returns a simulated MultiMap of the headers. | `Map>` | -| `cloneHeaderMap(Map> headerMap)` | Clones a header map. | `Map>` | -| `add(String headerName, String value)` | Adds a value for a header name to this object. | `void` | -| `add(String headerName, List values)` | Adds a List of values for a header name to this object. | `void` | -| `addAllFromMap(Map headers)` | Adds values from a Map to this object. | `void` | -| `addAllFromMultiMap(Map> headers)` | Adds values from a simulated Multi-Map to this object. | `void` | -| `addAll(Headers headers)` | Adds all the entries in a Headers object to this object. | `void` | -| `remove(String headerName)` | Removes the mapping for a header name if it is present. | `List` | - diff --git a/Java/doc/http-body-request.md b/Java/doc/http-body-request.md deleted file mode 100644 index 7baef6143..000000000 --- a/Java/doc/http-body-request.md +++ /dev/null @@ -1,17 +0,0 @@ - -# HttpBodyRequest Class - -HTTP Request with an explicit body. - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpBodyRequest(HttpMethod method, StringBuilder queryUrlBuilder, Headers headers, Map queryParams, Object body)` | Create a request with explicit body. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getBody()` | Body for the http request. | `Object` | - diff --git a/Java/doc/http-callback-interface.md b/Java/doc/http-callback-interface.md deleted file mode 100644 index 3768edfcc..000000000 --- a/Java/doc/http-callback-interface.md +++ /dev/null @@ -1,12 +0,0 @@ - -# HttpCallback Interface - -Callback to be called before and after the HTTP call for an endpoint is made. - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `onBeforeRequest(HttpRequest request)` | Callback called just before the HTTP request is sent. | `void` | -| `onAfterResponse(HttpContext context)` | Callback called just after the HTTP response is received. | `void` | - diff --git a/Java/doc/http-client-configuration-builder.md b/Java/doc/http-client-configuration-builder.md deleted file mode 100644 index beeff1671..000000000 --- a/Java/doc/http-client-configuration-builder.md +++ /dev/null @@ -1,28 +0,0 @@ - -# HttpClientConfiguration.Builder Class - -Class to build instances of {@link HttpClientConfiguration}. - -## Constructors - -| Name | Description | -| --- | --- | -| `Builder()` | Default Constructor to initiate builder with default properties. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `timeout(long timeout)` | Sets the timeout in seconds to use for making http requests. | `Builder` | -| `isSkipSslCertVerification(boolean isSkipSslCertVerification)` | Sets allow or prevent skipping ssl certificate verification. | `Builder` | -| `numberOfRetries(int numberOfRetries)` | Sets the number of retries to make. | `Builder` | -| `backOffFactor(int backOffFactor)` | Sets to use in calculation of wait time for next request in case of failure. | `Builder` | -| `retryInterval(long retryInterval)` | Sets to use in calculation of wait time for next request in case of failure. | `Builder` | -| `httpStatusCodesToRetry(Set httpStatusCodesToRetry)` | Sets http status codes to retry against. | `Builder` | -| `httpMethodsToRetry(Set httpMethodsToRetry)` | Sets http methods to retry against. | `Builder` | -| `maximumRetryWaitTime(long maximumRetryWaitTime)` | Sets the maximum wait time for overall retrying requests. | `Builder` | -| `shouldRetryOnTimeout(boolean shouldRetryOnTimeout)` | Sets whether to retry on request timeout. | `Builder` | -| `httpClientInstance(okhttp3.OkHttpClient httpClientInstance)` | Sets the okhttpclient instance used to make the http calls. | `Builder` | -| `httpClientInstance(okhttp3.OkHttpClient httpClientInstance, boolean overrideHttpClientConfigurations)` | Sets the okhttpclient instance used to make the http calls and an option to Allow the SDK to override HTTP client instance's settings used for features like retries, timeouts etc. | `Builder` | -| `build()` | Builds a new HttpClientConfiguration object using the set fields. | `HttpClientConfiguration` | - diff --git a/Java/doc/http-client-configuration.md b/Java/doc/http-client-configuration.md deleted file mode 100644 index d8399498c..000000000 --- a/Java/doc/http-client-configuration.md +++ /dev/null @@ -1,23 +0,0 @@ - -# HttpClientConfiguration Class - -Class for holding http client configuration. - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getTimeout()` | The timeout in seconds to use for making HTTP requests. | `long` | -| `isSkipSslCertVerification()` | Allow or prevent skipping SSL certificate verification. | `boolean` | -| `getNumberOfRetries()` | The number of retries to make. | `int` | -| `getBackOffFactor()` | To use in calculation of wait time for next request in case of failure. | `int` | -| `getRetryInterval()` | To use in calculation of wait time for next request in case of failure. | `long` | -| `getHttpStatusCodesToRetry()` | Http status codes to retry against. | `Set` | -| `getHttpMethodsToRetry()` | Http methods to retry against. | `Set` | -| `getMaximumRetryWaitTime()` | The maximum wait time for overall retrying requests. | `long` | -| `shouldRetryOnTimeout()` | Whether to retry on request timeout. | `boolean` | -| `getHttpClientInstance()` | The OkHttpClient instance used to make the HTTP calls. | `okhttp3.OkHttpClient` | -| `shouldOverrideHttpClientConfigurations()` | Allow the SDK to override HTTP client instance's settings used for features like retries, timeouts etc. | `boolean` | -| `toString()` | Converts this HttpClientConfiguration into string format. | `String` | -| `newBuilder()` | Builds a new {@link HttpClientConfiguration.Builder} object. Creates the instance with the current state. | `HttpClientConfiguration.Builder` | - diff --git a/Java/doc/http-context.md b/Java/doc/http-context.md deleted file mode 100644 index 277de0abe..000000000 --- a/Java/doc/http-context.md +++ /dev/null @@ -1,18 +0,0 @@ - -# HttpContext Class - -Class to wrap the request sent to the server and the response received from the server. - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpContext(HttpRequest request, HttpResponse response)` | Constructor for HttpContext. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getRequest()` | Getter for the Http Request. | `HttpRequest` | -| `getHttpContext()` | Getter for the Http Response. | `HttpContext` | - diff --git a/Java/doc/http-request.md b/Java/doc/http-request.md deleted file mode 100644 index 91c3a17d1..000000000 --- a/Java/doc/http-request.md +++ /dev/null @@ -1,22 +0,0 @@ - -# HttpRequest Class - -Class for creating and managing HTTP Requests. - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpRequest(HttpMethod method, StringBuilder queryUrlBuilder, Headers headers, Map queryParameters, List< SimpleEntry < String, Object >> parameters)` | Initializes a simple http request. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getHttpMethod()` | HttpMethod for the http request. | `HttpMethod` | -| `getHeaders()` | Headers for the http request. | `Headers` | -| `getQueryUrl()` | Query url for the http request. | `String` | -| `getParameters()` | Parameters for the http request. | `List>` | -| `getQueryParameters()` | Query parameters for the http request. | `Map` | -| `addQueryParameter(String key, Object value)` | Add Query parameter in http request. | `void` | - diff --git a/Java/doc/http-response.md b/Java/doc/http-response.md deleted file mode 100644 index ccc7266bc..000000000 --- a/Java/doc/http-response.md +++ /dev/null @@ -1,19 +0,0 @@ - -# HttpResponse Class - -Class to hold HTTP Response. - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpResponse(int code, Headers headers, InputStream rawBody)` | Constructor for HttpResponse. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getStatusCode()` | HTTP Status code of the http response.. | `int` | -| `getHeaders()` | Headers of the http response. | `Headers` | -| `getRawBody()` | Raw body of the http response. | `InputStream` | - diff --git a/Java/doc/http-string-response.md b/Java/doc/http-string-response.md deleted file mode 100644 index 850a88fe3..000000000 --- a/Java/doc/http-string-response.md +++ /dev/null @@ -1,19 +0,0 @@ - -# HttpStringResponse Class - -Class to hold response body as string. - -## Constructors - -| Name | Description | -| --- | --- | -| `HttpStringResponse(int code, Headers headers, InputStream rawBody, String body)` | Constructor for HttpStringResponse. | - -## Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getStatusCode()` | HTTP Status code of the http response. | `int` | -| `getHeaders()` | Headers of the http response. | `Headers` | -| `getBody()` | String body of the http response. | `String` | - diff --git a/Java/doc/models/access-enum.md b/Java/doc/models/access-enum.md deleted file mode 100644 index 5e72af5dc..000000000 --- a/Java/doc/models/access-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Access Enum - -Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. - -## Enumeration - -`AccessEnum` - -## Fields - -| Name | -| --- | -| `READONLY` | -| `MODIFY` | - diff --git a/Java/doc/models/access-level-enum.md b/Java/doc/models/access-level-enum.md deleted file mode 100644 index 3f79aed15..000000000 --- a/Java/doc/models/access-level-enum.md +++ /dev/null @@ -1,14 +0,0 @@ - -# Access Level Enum - -## Enumeration - -`AccessLevelEnum` - -## Fields - -| Name | -| --- | -| `FULL` | -| `REPORTBOOKVIEW` | - diff --git a/Java/doc/models/access-level-input.md b/Java/doc/models/access-level-input.md deleted file mode 100644 index b4a614065..000000000 --- a/Java/doc/models/access-level-input.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Access Level Input - -## Structure - -`AccessLevelInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Username or name of the user group | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the user or user group | String getId() | setId(String id) | -| `Type` | [`Type1Enum`](../../doc/models/type-1-enum.md) | Optional | Type of access detail provided | Type1Enum getType() | setType(Type1Enum type) | -| `Access` | [`AccessEnum`](../../doc/models/access-enum.md) | Optional | Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. | AccessEnum getAccess() | setAccess(AccessEnum access) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "type": null, - "access": null -} -``` - diff --git a/Java/doc/models/add-table-input.md b/Java/doc/models/add-table-input.md deleted file mode 100644 index 088421fc7..000000000 --- a/Java/doc/models/add-table-input.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Add Table Input - -## Structure - -`AddTableInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Required | Name of the table | String getName() | setName(String name) | -| `DbName` | `String` | Required | Name of the database in the data platform | String getDbName() | setDbName(String dbName) | -| `SchemaName` | `String` | Required | Name of the schema in the database | String getSchemaName() | setSchemaName(String schemaName) | -| `Columns` | [`List`](../../doc/models/columns-input.md) | Required | A JSON array of column details | List getColumns() | setColumns(List columns) | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dbName": "dbName8", - "schemaName": "schemaName4", - "columns": [ - { - "name": "name0", - "dataType": "dataType2" - } - ] -} -``` - diff --git a/Java/doc/models/adminsync-principal-response.md b/Java/doc/models/adminsync-principal-response.md deleted file mode 100644 index 40105ced0..000000000 --- a/Java/doc/models/adminsync-principal-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Adminsync Principal Response - -## Structure - -`AdminsyncPrincipalResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `UsersAdded` | `List` | Optional | Username of list of users added | List getUsersAdded() | setUsersAdded(List usersAdded) | -| `UsersDeleted` | `List` | Optional | Username of list of users deleted | List getUsersDeleted() | setUsersDeleted(List usersDeleted) | -| `UsersUpdated` | `List` | Optional | Username of list of users updated | List getUsersUpdated() | setUsersUpdated(List usersUpdated) | -| `GroupsAdded` | `List` | Optional | Group name of list of groups added | List getGroupsAdded() | setGroupsAdded(List groupsAdded) | -| `GroupsDeleted` | `List` | Optional | Group name of list of groups deleted | List getGroupsDeleted() | setGroupsDeleted(List groupsDeleted) | -| `GroupsUpdated` | `List` | Optional | Group name of list of groups updated | List getGroupsUpdated() | setGroupsUpdated(List groupsUpdated) | - -## Example (as JSON) - -```json -{ - "usersAdded": null, - "usersDeleted": null, - "usersUpdated": null, - "groupsAdded": null, - "groupsDeleted": null, - "groupsUpdated": null -} -``` - diff --git a/Java/doc/models/answer-query-response.md b/Java/doc/models/answer-query-response.md deleted file mode 100644 index 23b1b4ef6..000000000 --- a/Java/doc/models/answer-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Answer Query Response - -## Structure - -`AnswerQueryResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | The name of the saved Answer | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the saved Answer | String getId() | setId(String id) | -| `QuerySql` | `String` | Optional | SQL query associated with the saved Answer | String getQuerySql() | setQuerySql(String querySql) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/Java/doc/models/client-state.md b/Java/doc/models/client-state.md deleted file mode 100644 index b3af2b585..000000000 --- a/Java/doc/models/client-state.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Client State - -## Structure - -`ClientState` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Color` | `String` | Optional | Color assigned to the tag | String getColor() | setColor(String color) | - -## Example (as JSON) - -```json -{ - "color": null -} -``` - diff --git a/Java/doc/models/columns-input.md b/Java/doc/models/columns-input.md deleted file mode 100644 index 5ef28a089..000000000 --- a/Java/doc/models/columns-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Columns Input - -## Structure - -`ColumnsInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Required | Name of the column | String getName() | setName(String name) | -| `DataType` | `String` | Required | Datatype of the column | String getDataType() | setDataType(String dataType) | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dataType": "dataType2" -} -``` - diff --git a/Java/doc/models/connection-column.md b/Java/doc/models/connection-column.md deleted file mode 100644 index cb8188c8e..000000000 --- a/Java/doc/models/connection-column.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Column - -## Structure - -`ConnectionColumn` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the table | String getName() | setName(String name) | -| `Type` | `String` | Optional | Type of the Table | String getType() | setType(String type) | -| `Column` | [`List`](../../doc/models/table-columns.md) | Optional | List of columns in the table | List getColumn() | setColumn(List column) | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "column": null -} -``` - diff --git a/Java/doc/models/connection-columns-shema.md b/Java/doc/models/connection-columns-shema.md deleted file mode 100644 index 2e159689a..000000000 --- a/Java/doc/models/connection-columns-shema.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Connection Columns Shema - -## Structure - -`ConnectionColumnsShema` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the table | String getName() | setName(String name) | -| `DbName` | `String` | Optional | Name of the database | String getDbName() | setDbName(String dbName) | -| `SchemaName` | `String` | Optional | Name of the schema | String getSchemaName() | setSchemaName(String schemaName) | -| `Columns` | [`List`](../../doc/models/table-columns.md) | Optional | List of columns in the table | List getColumns() | setColumns(List columns) | - -## Example (as JSON) - -```json -{ - "name": null, - "dbName": null, - "schemaName": null, - "columns": null -} -``` - diff --git a/Java/doc/models/connection-database-type.md b/Java/doc/models/connection-database-type.md deleted file mode 100644 index 2ceb8a0df..000000000 --- a/Java/doc/models/connection-database-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Database Type - -## Structure - -`ConnectionDatabaseType` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the database | String getName() | setName(String name) | -| `Schema` | [`List`](../../doc/models/connection-table-schema.md) | Optional | List of schemas | List getSchema() | setSchema(List schema) | - -## Example (as JSON) - -```json -{ - "name": null, - "schema": null -} -``` - diff --git a/Java/doc/models/connection-response.md b/Java/doc/models/connection-response.md deleted file mode 100644 index 427fa1ed6..000000000 --- a/Java/doc/models/connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Connection Response - -## Structure - -`ConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the connection | String getName() | setName(String name) | -| `Description` | `String` | Optional | Description associated with the connection | String getDescription() | setDescription(String description) | -| `Type` | `String` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | String getType() | setType(String type) | -| `Id` | `String` | Optional | GUID of the connection | String getId() | setId(String id) | -| `Scheduled` | `Boolean` | Optional | Indicates if the data sync is scheduled for this connection | Boolean getScheduled() | setScheduled(Boolean scheduled) | -| `ConnectionType` | `String` | Optional | - | String getConnectionType() | setConnectionType(String connectionType) | -| `Configuration` | `String` | Optional | Configuration properties of the connection | String getConfiguration() | setConfiguration(String configuration) | -| `IsExternal` | `Boolean` | Optional | - | Boolean getIsExternal() | setIsExternal(Boolean isExternal) | -| `IsDeprecated` | `Boolean` | Optional | Indicates if the connection is deprecated | Boolean getIsDeprecated() | setIsDeprecated(Boolean isDeprecated) | -| `IsDeleted` | `Boolean` | Optional | Indicates if the connection is deleted | Boolean getIsDeleted() | setIsDeleted(Boolean isDeleted) | -| `IsHidden` | `Boolean` | Optional | Indicates if the connection is hideen | Boolean getIsHidden() | setIsHidden(Boolean isHidden) | -| `Complete` | `Boolean` | Optional | Indicates if the all the properties of connection is provided | Boolean getComplete() | setComplete(Boolean complete) | -| `IndexVersion` | `Double` | Optional | - | Double getIndexVersion() | setIndexVersion(Double indexVersion) | -| `GenerationNum` | `Double` | Optional | - | Double getGenerationNum() | setGenerationNum(Double generationNum) | -| `Created` | `String` | Optional | Date and time when the connection was created | String getCreated() | setCreated(String created) | -| `Modified` | `String` | Optional | Date and time of last modification of the connection | String getModified() | setModified(String modified) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `ModifiedBy` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getModifiedBy() | setModifiedBy(UserNameAndID modifiedBy) | -| `Owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getOwner() | setOwner(UserNameAndID owner) | -| `Tags` | `List` | Optional | List of tags assigned to the connection | List getTags() | setTags(List tags) | -| `Tables` | [`List`](../../doc/models/table-list.md) | Optional | List of tables linked to this connection | List getTables() | setTables(List tables) | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/Java/doc/models/connection-table-columns-input.md b/Java/doc/models/connection-table-columns-input.md deleted file mode 100644 index 2351b2883..000000000 --- a/Java/doc/models/connection-table-columns-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Table Columns Input - -## Structure - -`ConnectionTableColumnsInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `DbName` | `String` | Required | Name of the database | String getDbName() | setDbName(String dbName) | -| `SchemaName` | `String` | Required | Name of the schema | String getSchemaName() | setSchemaName(String schemaName) | -| `Name` | `String` | Required | Name of the table | String getName() | setName(String name) | - -## Example (as JSON) - -```json -{ - "dbName": "dbName8", - "schemaName": "schemaName4", - "name": "name0" -} -``` - diff --git a/Java/doc/models/connection-table-columns-response.md b/Java/doc/models/connection-table-columns-response.md deleted file mode 100644 index 1eea0507d..000000000 --- a/Java/doc/models/connection-table-columns-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Columns Response - -## Structure - -`ConnectionTableColumnsResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | Connection id | String getId() | setId(String id) | -| `Table` | [`List`](../../doc/models/connection-columns-shema.md) | Optional | List of table details | List getTable() | setTable(List table) | - -## Example (as JSON) - -```json -{ - "id": null, - "table": null -} -``` - diff --git a/Java/doc/models/connection-table-response.md b/Java/doc/models/connection-table-response.md deleted file mode 100644 index ba20ddbfb..000000000 --- a/Java/doc/models/connection-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Response - -## Structure - -`ConnectionTableResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | Connection id | String getId() | setId(String id) | -| `Database` | [`List`](../../doc/models/connection-database-type.md) | Optional | List of databases | List getDatabase() | setDatabase(List database) | - -## Example (as JSON) - -```json -{ - "id": null, - "database": null -} -``` - diff --git a/Java/doc/models/connection-table-schema.md b/Java/doc/models/connection-table-schema.md deleted file mode 100644 index 71f56188a..000000000 --- a/Java/doc/models/connection-table-schema.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Schema - -## Structure - -`ConnectionTableSchema` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the schema | String getName() | setName(String name) | -| `Table` | [`List`](../../doc/models/connection-column.md) | Optional | List of table details | List getTable() | setTable(List table) | - -## Example (as JSON) - -```json -{ - "name": null, - "table": null -} -``` - diff --git a/Java/doc/models/create-connection-response.md b/Java/doc/models/create-connection-response.md deleted file mode 100644 index cfa2c28bf..000000000 --- a/Java/doc/models/create-connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Create Connection Response - -## Structure - -`CreateConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the connection | String getName() | setName(String name) | -| `Description` | `String` | Optional | Description associated with the connection | String getDescription() | setDescription(String description) | -| `Type` | `String` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | String getType() | setType(String type) | -| `Id` | `String` | Optional | GUID of the connection | String getId() | setId(String id) | -| `Scheduled` | `Boolean` | Optional | Indicates if the data sync is scheduled for this connection | Boolean getScheduled() | setScheduled(Boolean scheduled) | -| `ConnectionType` | `String` | Optional | - | String getConnectionType() | setConnectionType(String connectionType) | -| `Configuration` | `String` | Optional | Configuration properties of the connection | String getConfiguration() | setConfiguration(String configuration) | -| `IsExternal` | `Boolean` | Optional | - | Boolean getIsExternal() | setIsExternal(Boolean isExternal) | -| `IsDeprecated` | `Boolean` | Optional | Indicates if the connection is deprecated | Boolean getIsDeprecated() | setIsDeprecated(Boolean isDeprecated) | -| `IsDeleted` | `Boolean` | Optional | Indicates if the connection is deleted | Boolean getIsDeleted() | setIsDeleted(Boolean isDeleted) | -| `IsHidden` | `Boolean` | Optional | Indicates if the connection is hideen | Boolean getIsHidden() | setIsHidden(Boolean isHidden) | -| `Complete` | `Boolean` | Optional | Indicates if the all the properties of connection is provided | Boolean getComplete() | setComplete(Boolean complete) | -| `IndexVersion` | `Double` | Optional | - | Double getIndexVersion() | setIndexVersion(Double indexVersion) | -| `GenerationNum` | `Double` | Optional | - | Double getGenerationNum() | setGenerationNum(Double generationNum) | -| `Created` | `String` | Optional | Date and time when user account was created | String getCreated() | setCreated(String created) | -| `Modified` | `String` | Optional | Date and time of last modification of user account | String getModified() | setModified(String modified) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `ModifiedBy` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getModifiedBy() | setModifiedBy(UserNameAndID modifiedBy) | -| `Owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getOwner() | setOwner(UserNameAndID owner) | -| `Tags` | `List` | Optional | List of tags assigned to the connection | List getTags() | setTags(List tags) | -| `Tables` | `List` | Optional | List of tables linked to this connection and details of the columns in the table | List getTables() | setTables(List tables) | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/Java/doc/models/create-table-response.md b/Java/doc/models/create-table-response.md deleted file mode 100644 index 948399f59..000000000 --- a/Java/doc/models/create-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Create Table Response - -## Structure - -`CreateTableResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `LogicalTableHeader` | [`LogicalTableHeader`](../../doc/models/logical-table-header.md) | Optional | - | LogicalTableHeader getLogicalTableHeader() | setLogicalTableHeader(LogicalTableHeader logicalTableHeader) | -| `PhysicalTableId` | `String` | Optional | - | String getPhysicalTableId() | setPhysicalTableId(String physicalTableId) | - -## Example (as JSON) - -```json -{ - "logicalTableHeader": null, - "physicalTableId": null -} -``` - diff --git a/Java/doc/models/dependent-permission.md b/Java/doc/models/dependent-permission.md deleted file mode 100644 index 27a228e91..000000000 --- a/Java/doc/models/dependent-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Dependent Permission - -## Structure - -`DependentPermission` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | GUID of the object | String getId() | setId(String id) | -| `Name` | `String` | Optional | Name of the object | String getName() | setName(String name) | -| `Type` | `String` | Optional | Indicates the type of the object | String getType() | setType(String type) | -| `Permission` | `String` | Optional | Indicates the permission which user or user group has on the object | String getPermission() | setPermission(String permission) | -| `SharedPermission` | `String` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | String getSharedPermission() | setSharedPermission(String sharedPermission) | -| `GroupPermission` | [`List`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | List getGroupPermission() | setGroupPermission(List groupPermission) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Java/doc/models/error-response-exception.md b/Java/doc/models/error-response-exception.md deleted file mode 100644 index 1644cee16..000000000 --- a/Java/doc/models/error-response-exception.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Error Response Exception - -## Structure - -`ErrorResponseException` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Error` | `Object` | Optional | - | Object getError() | setError(Object error) | - -## Example (as JSON) - -```json -{ - "error": null -} -``` - diff --git a/Java/doc/models/format-type-3-enum.md b/Java/doc/models/format-type-3-enum.md deleted file mode 100644 index 8b2285822..000000000 --- a/Java/doc/models/format-type-3-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Format Type 3 Enum - -The format in which to export the objects - -## Enumeration - -`FormatType3Enum` - -## Fields - -| Name | -| --- | -| `YAML` | -| `JSON` | - diff --git a/Java/doc/models/format-type-enum.md b/Java/doc/models/format-type-enum.md deleted file mode 100644 index 7d7d7e249..000000000 --- a/Java/doc/models/format-type-enum.md +++ /dev/null @@ -1,20 +0,0 @@ - -# Format Type Enum - -The format of the data in the response. - -FULL: The response comes in "column":"value" format. - -COMPACT: The response includes only the value of the columns. - -## Enumeration - -`FormatTypeEnum` - -## Fields - -| Name | -| --- | -| `COMPACT` | -| `FULL` | - diff --git a/Java/doc/models/from-user-name-and-id-input.md b/Java/doc/models/from-user-name-and-id-input.md deleted file mode 100644 index 3d2d97330..000000000 --- a/Java/doc/models/from-user-name-and-id-input.md +++ /dev/null @@ -1,29 +0,0 @@ - -# From User Name and ID Input - -A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. - -If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. - -Provide either name or id as input. When both are given user id will be considered. - -## Structure - -`FromUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Username of the user | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the user | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/group-name-and-id-input.md b/Java/doc/models/group-name-and-id-input.md deleted file mode 100644 index 8a0bc14e5..000000000 --- a/Java/doc/models/group-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID Input - -## Structure - -`GroupNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the group | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/group-name-and-id.md b/Java/doc/models/group-name-and-id.md deleted file mode 100644 index cfc92f6b4..000000000 --- a/Java/doc/models/group-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID - -## Structure - -`GroupNameAndID` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the group | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/group-permission.md b/Java/doc/models/group-permission.md deleted file mode 100644 index f0268bcb5..000000000 --- a/Java/doc/models/group-permission.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Group Permission - -## Structure - -`GroupPermission` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | GUID of the user group | String getId() | setId(String id) | -| `Name` | `String` | Optional | Name of the user group | String getName() | setName(String name) | -| `Permission` | `String` | Optional | Indicates the permission which user group has on the object | String getPermission() | setPermission(String permission) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "permission": null -} -``` - diff --git a/Java/doc/models/group-response.md b/Java/doc/models/group-response.md deleted file mode 100644 index 0f4c77347..000000000 --- a/Java/doc/models/group-response.md +++ /dev/null @@ -1,79 +0,0 @@ - -# Group Response - -## Structure - -`GroupResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `DisplayName` | `String` | Optional | A unique display name string for the user group | String getDisplayName() | setDisplayName(String displayName) | -| `Id` | `String` | Optional | GUID of the group | String getId() | setId(String id) | -| `Visibility` | `String` | Optional | Visibility of the group | String getVisibility() | setVisibility(String visibility) | -| `Description` | `String` | Optional | Description of the group | String getDescription() | setDescription(String description) | -| `Privileges` | `List` | Optional | Privileges assigned to the group | List getPrivileges() | setPrivileges(List privileges) | -| `Orgs` | [`List`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | List getOrgs() | setOrgs(List orgs) | -| `Groups` | [`List`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which is added | List getGroups() | setGroups(List groups) | -| `Users` | [`List`](../../doc/models/user-name-and-id.md) | Optional | User Group Information by Id or Name. | List getUsers() | setUsers(List users) | -| `AssignedLiveboards` | [`List`](../../doc/models/liveboard-name-and-id.md) | Optional | Liveboards assigned to the group | List getAssignedLiveboards() | setAssignedLiveboards(List assignedLiveboards) | -| `UserGroupContent` | `Object` | Optional | - | Object getUserGroupContent() | setUserGroupContent(Object userGroupContent) | -| `Tags` | `List` | Optional | Tags assigned to the group | List getTags() | setTags(List tags) | -| `IsDeleted` | `Boolean` | Optional | Indicates if the group is deleted | Boolean getIsDeleted() | setIsDeleted(Boolean isDeleted) | -| `IsHidden` | `Boolean` | Optional | Indicates if the group is hidden | Boolean getIsHidden() | setIsHidden(Boolean isHidden) | -| `IsExternal` | `Boolean` | Optional | Indicates if the group is from external system | Boolean getIsExternal() | setIsExternal(Boolean isExternal) | -| `IsDeprecated` | `Boolean` | Optional | - | Boolean getIsDeprecated() | setIsDeprecated(Boolean isDeprecated) | -| `Complete` | `Boolean` | Optional | Indicates if the all the properties of group is provided | Boolean getComplete() | setComplete(Boolean complete) | -| `IsSystemPrincipal` | `Boolean` | Optional | Indicates if the group is system principal | Boolean getIsSystemPrincipal() | setIsSystemPrincipal(Boolean isSystemPrincipal) | -| `Type` | `String` | Optional | Indicates the type of group | String getType() | setType(String type) | -| `Parenttype` | `String` | Optional | Indicates the type of parent object | String getParenttype() | setParenttype(String parenttype) | -| `GroupIdx` | `Integer` | Optional | - | Integer getGroupIdx() | setGroupIdx(Integer groupIdx) | -| `MetadataVersion` | `Integer` | Optional | - | Integer getMetadataVersion() | setMetadataVersion(Integer metadataVersion) | -| `TenantId` | `String` | Optional | Tenant id associated with the group | String getTenantId() | setTenantId(String tenantId) | -| `IndexVersion` | `Double` | Optional | - | Double getIndexVersion() | setIndexVersion(Double indexVersion) | -| `GenerationNum` | `Double` | Optional | - | Double getGenerationNum() | setGenerationNum(Double generationNum) | -| `Created` | `Double` | Optional | Date and time when group was created | Double getCreated() | setCreated(Double created) | -| `Modified` | `Double` | Optional | Date and time of last modification of the group | Double getModified() | setModified(Double modified) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `ModifiedBy` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getModifiedBy() | setModifiedBy(UserNameAndID modifiedBy) | -| `Owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getOwner() | setOwner(UserNameAndID owner) | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "description": null, - "privileges": null, - "orgs": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "userGroupContent": null, - "tags": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "groupIdx": null, - "metadataVersion": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/Java/doc/models/home-liveboard-response.md b/Java/doc/models/home-liveboard-response.md deleted file mode 100644 index 8a59e3c87..000000000 --- a/Java/doc/models/home-liveboard-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Home Liveboard Response - -## Structure - -`HomeLiveboardResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `UserName` | `String` | Optional | Name of the user | String getUserName() | setUserName(String userName) | -| `UserId` | `String` | Optional | The GUID of the user | String getUserId() | setUserId(String userId) | -| `LiveboardName` | `String` | Optional | Name of the liveboard | String getLiveboardName() | setLiveboardName(String liveboardName) | -| `LiveboardId` | `String` | Optional | The GUID of the liveboard | String getLiveboardId() | setLiveboardId(String liveboardId) | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardName": null, - "liveboardId": null -} -``` - diff --git a/Java/doc/models/import-policy-enum.md b/Java/doc/models/import-policy-enum.md deleted file mode 100644 index fa26e3d17..000000000 --- a/Java/doc/models/import-policy-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Import Policy Enum - -Policy to follow during import - -## Enumeration - -`ImportPolicyEnum` - -## Fields - -| Name | -| --- | -| `PARTIAL` | -| `ALLORNONE` | -| `VALIDATEONLY` | - diff --git a/Java/doc/models/liveboard-name-and-id.md b/Java/doc/models/liveboard-name-and-id.md deleted file mode 100644 index da2aedde8..000000000 --- a/Java/doc/models/liveboard-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Liveboard Name and ID - -## Structure - -`LiveboardNameAndID` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the liveboard | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the liveboard | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/liveboard-query-response.md b/Java/doc/models/liveboard-query-response.md deleted file mode 100644 index 5d8d5b5ad..000000000 --- a/Java/doc/models/liveboard-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Liveboard Query Response - -## Structure - -`LiveboardQueryResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | The name of the Liveboard | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the Liveboard | String getId() | setId(String id) | -| `Viz` | [`List`](../../doc/models/viz-type.md) | Optional | SQL query associated with the saved Answer | List getViz() | setViz(List viz) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "viz": null -} -``` - diff --git a/Java/doc/models/logical-table-header.md b/Java/doc/models/logical-table-header.md deleted file mode 100644 index 6829f12f4..000000000 --- a/Java/doc/models/logical-table-header.md +++ /dev/null @@ -1,51 +0,0 @@ - -# Logical Table Header - -## Structure - -`LogicalTableHeader` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | - | String getId() | setId(String id) | -| `Name` | `String` | Optional | - | String getName() | setName(String name) | -| `Author` | `String` | Optional | - | String getAuthor() | setAuthor(String author) | -| `AuthorName` | `String` | Optional | - | String getAuthorName() | setAuthorName(String authorName) | -| `AuthorDisplayName` | `String` | Optional | - | String getAuthorDisplayName() | setAuthorDisplayName(String authorDisplayName) | -| `Created` | `Double` | Optional | - | Double getCreated() | setCreated(Double created) | -| `Modified` | `Double` | Optional | - | Double getModified() | setModified(Double modified) | -| `ModifiedBy` | `String` | Optional | - | String getModifiedBy() | setModifiedBy(String modifiedBy) | -| `GenerationNum` | `Integer` | Optional | - | Integer getGenerationNum() | setGenerationNum(Integer generationNum) | -| `Owner` | `String` | Optional | - | String getOwner() | setOwner(String owner) | -| `Deleted` | `Boolean` | Optional | - | Boolean getDeleted() | setDeleted(Boolean deleted) | -| `Hidden` | `Boolean` | Optional | - | Boolean getHidden() | setHidden(Boolean hidden) | -| `Database` | `String` | Optional | - | String getDatabase() | setDatabase(String database) | -| `Schema` | `String` | Optional | - | String getSchema() | setSchema(String schema) | -| `Type` | `String` | Optional | - | String getType() | setType(String type) | -| `SubType` | `String` | Optional | - | String getSubType() | setSubType(String subType) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "author": null, - "authorName": null, - "authorDisplayName": null, - "created": null, - "modified": null, - "modifiedBy": null, - "generationNum": null, - "owner": null, - "deleted": null, - "hidden": null, - "database": null, - "schema": null, - "type": null, - "subType": null -} -``` - diff --git a/Java/doc/models/logs-response.md b/Java/doc/models/logs-response.md deleted file mode 100644 index f13aa7153..000000000 --- a/Java/doc/models/logs-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Logs Response - -## Structure - -`LogsResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Date` | `String` | Optional | Date and time for the event in the log | String getDate() | setDate(String date) | -| `Log` | `String` | Optional | Logged event at the time specified in JSON format. This includes, Event ID, A unique description of the event, for example, User login failed, Timestamp, User ID of the person initiating the event and IP address of the ThoughtSpot instance. | String getLog() | setLog(String log) | - -## Example (as JSON) - -```json -{ - "date": null, - "log": null -} -``` - diff --git a/Java/doc/models/metadata-tag-response.md b/Java/doc/models/metadata-tag-response.md deleted file mode 100644 index b53793939..000000000 --- a/Java/doc/models/metadata-tag-response.md +++ /dev/null @@ -1,47 +0,0 @@ - -# Metadata Tag Response - -## Structure - -`MetadataTagResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the tag | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the tag | String getId() | setId(String id) | -| `ClientState` | [`ClientState`](../../doc/models/client-state.md) | Optional | - | ClientState getClientState() | setClientState(ClientState clientState) | -| `IndexVersion` | `Double` | Optional | - | Double getIndexVersion() | setIndexVersion(Double indexVersion) | -| `GenerationNum` | `Double` | Optional | - | Double getGenerationNum() | setGenerationNum(Double generationNum) | -| `IsDeleted` | `Boolean` | Optional | Indicates if the tag is deleted | Boolean getIsDeleted() | setIsDeleted(Boolean isDeleted) | -| `IsHidden` | `Boolean` | Optional | Indicates if the tag is hidden | Boolean getIsHidden() | setIsHidden(Boolean isHidden) | -| `IsExternal` | `Boolean` | Optional | Indicates if the tag is from external system | Boolean getIsExternal() | setIsExternal(Boolean isExternal) | -| `IsDeprecated` | `Boolean` | Optional | - | Boolean getIsDeprecated() | setIsDeprecated(Boolean isDeprecated) | -| `Created` | `Double` | Optional | Date and time when group was created | Double getCreated() | setCreated(Double created) | -| `Modified` | `Double` | Optional | Date and time of last modification of the group | Double getModified() | setModified(Double modified) | -| `ModifiedBy` | [`TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | TagNameAndID getModifiedBy() | setModifiedBy(TagNameAndID modifiedBy) | -| `Author` | [`TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | TagNameAndID getAuthor() | setAuthor(TagNameAndID author) | -| `Owner` | [`TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | TagNameAndID getOwner() | setOwner(TagNameAndID owner) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "clientState": null, - "indexVersion": null, - "generationNum": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "created": null, - "modified": null, - "modifiedBy": null, - "author": null, - "owner": null -} -``` - diff --git a/Java/doc/models/name-and-id-input.md b/Java/doc/models/name-and-id-input.md deleted file mode 100644 index 8ffc5b16f..000000000 --- a/Java/doc/models/name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Name and Id Input - -## Structure - -`NameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the user | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the user | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/org-type.md b/Java/doc/models/org-type.md deleted file mode 100644 index 5e5cd8e15..000000000 --- a/Java/doc/models/org-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Org Type - -## Structure - -`OrgType` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the organization | String getName() | setName(String name) | -| `Id` | `Integer` | Optional | Id of the organization | Integer getId() | setId(Integer id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/orgs-response.md b/Java/doc/models/orgs-response.md deleted file mode 100644 index ebfc1c65e..000000000 --- a/Java/doc/models/orgs-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Orgs Response - -## Structure - -`OrgsResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `OrgId` | `Integer` | Optional | ID of the organization searched for | Integer getOrgId() | setOrgId(Integer orgId) | -| `OrgName` | `String` | Optional | Name of the organization searched for | String getOrgName() | setOrgName(String orgName) | -| `Description` | `String` | Optional | Description associated with the organization | String getDescription() | setDescription(String description) | -| `AllGroupUserId` | `String` | Optional | GUID of the ALL group in the organization | String getAllGroupUserId() | setAllGroupUserId(String allGroupUserId) | -| `DefaultAdminUserGroupId` | `String` | Optional | GUID of the admin group in the organization | String getDefaultAdminUserGroupId() | setDefaultAdminUserGroupId(String defaultAdminUserGroupId) | -| `Active` | `Boolean` | Optional | Indicates if the organization is active or not | Boolean getActive() | setActive(Boolean active) | - -## Example (as JSON) - -```json -{ - "orgId": null, - "orgName": null, - "description": null, - "allGroupUserId": null, - "defaultAdminUserGroupId": null, - "active": null -} -``` - diff --git a/Java/doc/models/orientation-enum.md b/Java/doc/models/orientation-enum.md deleted file mode 100644 index 361feb0ee..000000000 --- a/Java/doc/models/orientation-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Orientation Enum - -Page orientation for the PDF. Default: PORTRAIT - -## Enumeration - -`OrientationEnum` - -## Fields - -| Name | -| --- | -| `PORTRAIT` | -| `LANDSCAPE` | - diff --git a/Java/doc/models/pdf-options-input.md b/Java/doc/models/pdf-options-input.md deleted file mode 100644 index 5a1352760..000000000 --- a/Java/doc/models/pdf-options-input.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Pdf Options Input - -## Structure - -`PdfOptionsInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Orientation` | [`OrientationEnum`](../../doc/models/orientation-enum.md) | Optional | Page orientation for the PDF. Default: PORTRAIT | OrientationEnum getOrientation() | setOrientation(OrientationEnum orientation) | -| `TruncateTables` | `Boolean` | Optional | When set to true, only the first page of the tables is displayed in the file.

This setting is applicable only when generating report for specific visualization ids. Default: false | Boolean getTruncateTables() | setTruncateTables(Boolean truncateTables) | -| `IncludeLogo` | `Boolean` | Optional | Include customized wide logo if available in the footer. Default: true | Boolean getIncludeLogo() | setIncludeLogo(Boolean includeLogo) | -| `FooterText` | `String` | Optional | Footer text to include in the footer of each page of the PDF. | String getFooterText() | setFooterText(String footerText) | -| `IncludePageNumber` | `Boolean` | Optional | When set to true, the page number is included in the footer of each page. Default: true | Boolean getIncludePageNumber() | setIncludePageNumber(Boolean includePageNumber) | -| `IncludeCoverPage` | `Boolean` | Optional | When set to true, a cover page with the Liveboard title is added in the PDF. Default: true | Boolean getIncludeCoverPage() | setIncludeCoverPage(Boolean includeCoverPage) | -| `IncludeFilterPage` | `Boolean` | Optional | When set to true, a second page with a list of all applied filters is added in the PDF. Default: true | Boolean getIncludeFilterPage() | setIncludeFilterPage(Boolean includeFilterPage) | - -## Example (as JSON) - -```json -{ - "orientation": null, - "truncateTables": null, - "includeLogo": null, - "footerText": null, - "includePageNumber": null, - "includeCoverPage": null, - "includeFilterPage": null -} -``` - diff --git a/Java/doc/models/permissions-type-search.md b/Java/doc/models/permissions-type-search.md deleted file mode 100644 index 1ceb431f9..000000000 --- a/Java/doc/models/permissions-type-search.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Permissions Type Search - -## Structure - -`PermissionsTypeSearch` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Type` | `String` | Optional | Indicates the type of the object | String getType() | setType(String type) | -| `TsObject` | [`List`](../../doc/models/ts-object-type-serach.md) | Optional | An array of objects of type mentioned in type field | List getTsObject() | setTsObject(List tsObject) | - -## Example (as JSON) - -```json -{ - "type": null, - "tsObject": null -} -``` - diff --git a/Java/doc/models/pinboard-details.md b/Java/doc/models/pinboard-details.md deleted file mode 100644 index 75258657c..000000000 --- a/Java/doc/models/pinboard-details.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Pinboard Details - -## Structure - -`PinboardDetails` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `PinboardId` | `String` | Optional | pinboard id of recently pinned pinboard | String getPinboardId() | setPinboardId(String pinboardId) | -| `PinboardName` | `String` | Optional | pinboard name of recently pinned pinboard | String getPinboardName() | setPinboardName(String pinboardName) | -| `TabId` | `String` | Optional | tab id of recently pinned tab | String getTabId() | setTabId(String tabId) | -| `TabName` | `String` | Optional | tab name of recently pinned tab | String getTabName() | setTabName(String tabName) | - -## Example (as JSON) - -```json -{ - "pinboardId": null, - "pinboardName": null, - "tabId": null, - "tabName": null -} -``` - diff --git a/Java/doc/models/principal-search-response.md b/Java/doc/models/principal-search-response.md deleted file mode 100644 index 447f767b8..000000000 --- a/Java/doc/models/principal-search-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Principal Search Response - -## Structure - -`PrincipalSearchResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | GUID of the user or user group | String getId() | setId(String id) | -| `Name` | `String` | Optional | Name of the user or user group | String getName() | setName(String name) | -| `Type` | `String` | Optional | Indicates the type of principal | String getType() | setType(String type) | -| `Permissions` | [`List`](../../doc/models/permissions-type-search.md) | Optional | Indicates the permission which user or user group has on the object | List getPermissions() | setPermissions(List permissions) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permissions": null -} -``` - diff --git a/Java/doc/models/privilege-enum.md b/Java/doc/models/privilege-enum.md deleted file mode 100644 index 7fc258dd8..000000000 --- a/Java/doc/models/privilege-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Privilege Enum - -## Enumeration - -`PrivilegeEnum` - -## Fields - -| Name | -| --- | -| `RANALYSIS` | -| `DATAMANAGEMENT` | -| `APPLICATIONADMINISTRATION` | -| `USERADMINISTRATION` | -| `SYSTEMMANAGEMENT` | -| `SYSTEMINFOADMINISTRATION` | -| `AUTHORING` | -| `BACKUPADMINISTRATION` | -| `SHAREWITHALL` | -| `DEVELOPER` | -| `JOBSCHEDULING` | -| `GROUPADMINISTRATION` | -| `BYPASSRLS` | -| `EXPERIMENTALFEATUREPRIVILEGE` | -| `A3ANALYSIS` | -| `USERDATAUPLOADING` | -| `DATADOWNLOADING` | -| `DISABLEPINBOARDCREATION` | -| `ADMINISTRATION` | - diff --git a/Java/doc/models/secuirity-dependents.md b/Java/doc/models/secuirity-dependents.md deleted file mode 100644 index e8a7b8db8..000000000 --- a/Java/doc/models/secuirity-dependents.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Secuirity Dependents - -## Structure - -`SecuirityDependents` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | GUID of the object | String getId() | setId(String id) | -| `Name` | `String` | Optional | Name of the object | String getName() | setName(String name) | -| `Type` | `String` | Optional | Indicates the type of the object | String getType() | setType(String type) | -| `Owner` | `String` | Optional | Owner of the object | String getOwner() | setOwner(String owner) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `Permissions` | [`List`](../../doc/models/dependent-permission.md) | Optional | - | List getPermissions() | setPermissions(List permissions) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null -} -``` - diff --git a/Java/doc/models/security-permission-response.md b/Java/doc/models/security-permission-response.md deleted file mode 100644 index b19323f11..000000000 --- a/Java/doc/models/security-permission-response.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Security Permission Response - -## Structure - -`SecurityPermissionResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | GUID of the object | String getId() | setId(String id) | -| `Name` | `String` | Optional | Name of the object | String getName() | setName(String name) | -| `Type` | `String` | Optional | Indicates the type of the object | String getType() | setType(String type) | -| `Owner` | `String` | Optional | GUID of the owner of the object | String getOwner() | setOwner(String owner) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `Permissions` | [`List`](../../doc/models/security-permission.md) | Optional | An array of object with details of permission on users and user groups | List getPermissions() | setPermissions(List permissions) | -| `Dependents` | [`List`](../../doc/models/secuirity-dependents.md) | Optional | The objects on which the primary object is dependent on | List getDependents() | setDependents(List dependents) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null, - "dependents": null -} -``` - diff --git a/Java/doc/models/security-permission.md b/Java/doc/models/security-permission.md deleted file mode 100644 index 5a24a8715..000000000 --- a/Java/doc/models/security-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Security Permission - -## Structure - -`SecurityPermission` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | GUID of the user or user group | String getId() | setId(String id) | -| `Name` | `String` | Optional | Name of the user or user group | String getName() | setName(String name) | -| `Type` | `String` | Optional | Indicates the type of principal | String getType() | setType(String type) | -| `Permission` | `String` | Optional | Indicates the permission which user or user group has on the object | String getPermission() | setPermission(String permission) | -| `SharedPermission` | `String` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | String getSharedPermission() | setSharedPermission(String sharedPermission) | -| `GroupPermission` | [`List`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | List getGroupPermission() | setGroupPermission(List groupPermission) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Java/doc/models/session-login-response.md b/Java/doc/models/session-login-response.md deleted file mode 100644 index 8f3e3a705..000000000 --- a/Java/doc/models/session-login-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Session Login Response - -Login response - -## Structure - -`SessionLoginResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `UserName` | `String` | Optional | Username of the user account for which token is generated | String getUserName() | setUserName(String userName) | -| `Token` | `String` | Optional | Bearer token generated. This will be blank when token type is Cookie | String getToken() | setToken(String token) | -| `TokenCreatedTime` | `String` | Optional | Date and time at which the token is generated | String getTokenCreatedTime() | setTokenCreatedTime(String tokenCreatedTime) | -| `TokenExpiryDuration` | `String` | Optional | Duration in seconds after which the token expires | String getTokenExpiryDuration() | setTokenExpiryDuration(String tokenExpiryDuration) | -| `TokenType` | `String` | Optional | Type of token generated | String getTokenType() | setTokenType(String tokenType) | - -## Example (as JSON) - -```json -{ - "userName": null, - "token": null, - "tokenCreatedTime": null, - "tokenExpiryDuration": null, - "tokenType": null -} -``` - diff --git a/Java/doc/models/sort-by-1-enum.md b/Java/doc/models/sort-by-1-enum.md deleted file mode 100644 index 2e494455d..000000000 --- a/Java/doc/models/sort-by-1-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by 1 Enum - -Field based on which the re.sponse needs to be ordered. Valid values - -## Enumeration - -`SortBy1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NAME` | -| `DISPLAYNAME` | -| `AUTHOR` | -| `CREATED` | -| `MODIFIED` | -| `LASTACCESSED` | -| `SYNCED` | -| `VIEWS` | -| `NONE` | -| `USERSTATE` | -| `ROWCOUNT` | - diff --git a/Java/doc/models/sort-by-enum.md b/Java/doc/models/sort-by-enum.md deleted file mode 100644 index bb7335051..000000000 --- a/Java/doc/models/sort-by-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by Enum - -Field based on which the response needs to be ordered. - -## Enumeration - -`SortByEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NAME` | -| `DISPLAYNAME` | -| `AUTHOR` | -| `CREATED` | -| `MODIFIED` | -| `LASTACCESSED` | -| `SYNCED` | -| `VIEWS` | -| `NONE` | -| `USERSTATE` | -| `ROWCOUNT` | - diff --git a/Java/doc/models/sort-order-1-enum.md b/Java/doc/models/sort-order-1-enum.md deleted file mode 100644 index 123cd4b67..000000000 --- a/Java/doc/models/sort-order-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order 1 Enum - -Order in which sortBy should be applied. Valid values - -## Enumeration - -`SortOrder1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `ASC` | -| `DESC` | - diff --git a/Java/doc/models/sort-order-enum.md b/Java/doc/models/sort-order-enum.md deleted file mode 100644 index 2e3885d85..000000000 --- a/Java/doc/models/sort-order-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order Enum - -Order in which sortBy should be applied. - -## Enumeration - -`SortOrderEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `ASC` | -| `DESC` | - diff --git a/Java/doc/models/state-1-enum.md b/Java/doc/models/state-1-enum.md deleted file mode 100644 index 33cec645b..000000000 --- a/Java/doc/models/state-1-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# State 1 Enum - -Status of user account. acitve or inactive. - -## Enumeration - -`State1Enum` - -## Fields - -| Name | -| --- | -| `ACTIVE` | -| `INACTIVE` | -| `EXPIRED` | -| `LOCKED` | -| `PENDING` | - diff --git a/Java/doc/models/state-enum.md b/Java/doc/models/state-enum.md deleted file mode 100644 index 8448d4860..000000000 --- a/Java/doc/models/state-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# State Enum - -## Enumeration - -`StateEnum` - -## Fields - -| Name | -| --- | -| `ACTIVE` | -| `INACTIVE` | -| `EXPIRED` | -| `LOCKED` | -| `PENDING` | - diff --git a/Java/doc/models/table-columns.md b/Java/doc/models/table-columns.md deleted file mode 100644 index 8a87d8ec2..000000000 --- a/Java/doc/models/table-columns.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Columns - -## Structure - -`TableColumns` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the column | String getName() | setName(String name) | -| `DataType` | `String` | Optional | Datatype of the column | String getDataType() | setDataType(String dataType) | - -## Example (as JSON) - -```json -{ - "name": null, - "dataType": null -} -``` - diff --git a/Java/doc/models/table-input.md b/Java/doc/models/table-input.md deleted file mode 100644 index 8b2c334b0..000000000 --- a/Java/doc/models/table-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Input - -## Structure - -`TableInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the table | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the Table | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/table-list.md b/Java/doc/models/table-list.md deleted file mode 100644 index 17881382d..000000000 --- a/Java/doc/models/table-list.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Table List - -## Structure - -`TableList` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the table | String getName() | setName(String name) | -| `Type` | `String` | Optional | Type of the table | String getType() | setType(String type) | -| `Id` | `String` | Optional | GUID of the table | String getId() | setId(String id) | -| `DatabaseStripe` | `String` | Optional | Name of the database to which the table belongs | String getDatabaseStripe() | setDatabaseStripe(String databaseStripe) | -| `SchemaStripe` | `String` | Optional | Name of the schema to which the table belongs | String getSchemaStripe() | setSchemaStripe(String schemaStripe) | -| `IsExternal` | `Boolean` | Optional | - | Boolean getIsExternal() | setIsExternal(Boolean isExternal) | -| `IsDeprecated` | `Boolean` | Optional | Indicates if the table is deprecated | Boolean getIsDeprecated() | setIsDeprecated(Boolean isDeprecated) | -| `IsDeleted` | `Boolean` | Optional | Indicates if the table is deleted | Boolean getIsDeleted() | setIsDeleted(Boolean isDeleted) | -| `IsHidden` | `Boolean` | Optional | Indicates if the table is hideen | Boolean getIsHidden() | setIsHidden(Boolean isHidden) | -| `IndexVersion` | `Double` | Optional | - | Double getIndexVersion() | setIndexVersion(Double indexVersion) | -| `GenerationNum` | `Double` | Optional | - | Double getGenerationNum() | setGenerationNum(Double generationNum) | -| `Created` | `String` | Optional | Date and time when the table was created | String getCreated() | setCreated(String created) | -| `Modified` | `String` | Optional | Date and time of last modification of the table | String getModified() | setModified(String modified) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `ModifiedBy` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getModifiedBy() | setModifiedBy(UserNameAndID modifiedBy) | -| `Owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getOwner() | setOwner(UserNameAndID owner) | -| `Tags` | `List` | Optional | List of tags assigned to the table | List getTags() | setTags(List tags) | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "id": null, - "databaseStripe": null, - "schemaStripe": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null -} -``` - diff --git a/Java/doc/models/tag-name-and-id-input.md b/Java/doc/models/tag-name-and-id-input.md deleted file mode 100644 index f03c5a425..000000000 --- a/Java/doc/models/tag-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and Id Input - -## Structure - -`TagNameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the tags | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the tags | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/tag-name-and-id.md b/Java/doc/models/tag-name-and-id.md deleted file mode 100644 index cc63ad223..000000000 --- a/Java/doc/models/tag-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and ID - -## Structure - -`TagNameAndID` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group to which group is added | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the group to which group is added | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/to-user-name-and-id-input.md b/Java/doc/models/to-user-name-and-id-input.md deleted file mode 100644 index b88cb9c2a..000000000 --- a/Java/doc/models/to-user-name-and-id-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# To User Name and ID Input - -A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. - -## Structure - -`ToUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Username of the user | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the user | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/topic-enum.md b/Java/doc/models/topic-enum.md deleted file mode 100644 index 660921349..000000000 --- a/Java/doc/models/topic-enum.md +++ /dev/null @@ -1,13 +0,0 @@ - -# Topic Enum - -## Enumeration - -`TopicEnum` - -## Fields - -| Name | -| --- | -| `SecurityLogs` | - diff --git a/Java/doc/models/ts-object-input.md b/Java/doc/models/ts-object-input.md deleted file mode 100644 index 3275aff34..000000000 --- a/Java/doc/models/ts-object-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Ts Object Input - -## Structure - -`TsObjectInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | GUID of the metadata object | String getId() | setId(String id) | -| `Type` | [`TypeEnum`](../../doc/models/type-enum.md) | Required | Type of the metadata object | TypeEnum getType() | setType(TypeEnum type) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "type": "DATAOBJECT" -} -``` - diff --git a/Java/doc/models/ts-object-search-input.md b/Java/doc/models/ts-object-search-input.md deleted file mode 100644 index 405a030f0..000000000 --- a/Java/doc/models/ts-object-search-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Ts Object Search Input - -## Structure - -`TsObjectSearchInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Type` | [`Type2Enum`](../../doc/models/type-2-enum.md) | Required | Type of the metadata objec | Type2Enum getType() | setType(Type2Enum type) | -| `Id` | `List` | Required | A JSON Array of GUIDs of the metadata object | List getId() | setId(List id) | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ] -} -``` - diff --git a/Java/doc/models/ts-object-type-serach.md b/Java/doc/models/ts-object-type-serach.md deleted file mode 100644 index 970d7cddd..000000000 --- a/Java/doc/models/ts-object-type-serach.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Ts Object Type Serach - -## Structure - -`TsObjectTypeSerach` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Optional | GUID of the object | String getId() | setId(String id) | -| `Name` | `String` | Optional | Name of the object | String getName() | setName(String name) | -| `Owner` | `String` | Optional | Owner of the object | String getOwner() | setOwner(String owner) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `Permission` | `String` | Optional | Indicates the permission which user or user group has on the object | String getPermission() | setPermission(String permission) | -| `SharedPermission` | `String` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with the user or user group | String getSharedPermission() | setSharedPermission(String sharedPermission) | -| `GroupPermission` | [`List`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | List getGroupPermission() | setGroupPermission(List groupPermission) | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "owner": null, - "author": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-admin-assignauthor-request.md b/Java/doc/models/tspublic-rest-v2-admin-assignauthor-request.md deleted file mode 100644 index 8974bd6e2..000000000 --- a/Java/doc/models/tspublic-rest-v2-admin-assignauthor-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Admin Assignauthor Request - -## Structure - -`TspublicRestV2AdminAssignauthorRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `TsObjectId` | `List` | Required | A JSON array of GUIDs of the metadata objects. | List getTsObjectId() | setTsObjectId(List tsObjectId) | -| `Name` | `String` | Optional | User name of the user account | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the user account | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-admin-changeauthor-request.md b/Java/doc/models/tspublic-rest-v2-admin-changeauthor-request.md deleted file mode 100644 index c96b63ced..000000000 --- a/Java/doc/models/tspublic-rest-v2-admin-changeauthor-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Admin Changeauthor Request - -## Structure - -`TspublicRestV2AdminChangeauthorRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `TsObjectId` | `List` | Required | A JSON array of GUIDs of the metadata objects.

To change owner of all the objects owned by a user, provide single input as ALL.

If multiple object ids along with ALL is provided as input, then ALL will be considered. | List getTsObjectId() | setTsObjectId(List tsObjectId) | -| `FromUser` | [`FromUserNameAndIDInput`](../../doc/models/from-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered.

If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed.

Provide either name or id as input. When both are given user id will be considered. | FromUserNameAndIDInput getFromUser() | setFromUser(FromUserNameAndIDInput fromUser) | -| `ToUser` | [`ToUserNameAndIDInput`](../../doc/models/to-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. | ToUserNameAndIDInput getToUser() | setToUser(ToUserNameAndIDInput toUser) | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "fromUser": { - "name": null, - "id": null - }, - "toUser": { - "name": null, - "id": null - } -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-admin-configuration-update-request.md b/Java/doc/models/tspublic-rest-v2-admin-configuration-update-request.md deleted file mode 100644 index cf149c718..000000000 --- a/Java/doc/models/tspublic-rest-v2-admin-configuration-update-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Configuration Update Request - -## Structure - -`TspublicRestV2AdminConfigurationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Configuration` | `String` | Optional | A JSON file with the key-value pair of configuration attributes to be updated.

Example: {"defaultChartDataSize": 5000} | String getConfiguration() | setConfiguration(String configuration) | - -## Example (as JSON) - -```json -{ - "configuration": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-admin-forcelogout-request.md b/Java/doc/models/tspublic-rest-v2-admin-forcelogout-request.md deleted file mode 100644 index 8c40fea0e..000000000 --- a/Java/doc/models/tspublic-rest-v2-admin-forcelogout-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Forcelogout Request - -## Structure - -`TspublicRestV2AdminForcelogoutRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `User` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name of users or GUIDs of groups or both. When both are given then id is considered. | List getUser() | setUser(List user) | - -## Example (as JSON) - -```json -{ - "user": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-admin-resetpassword-request.md b/Java/doc/models/tspublic-rest-v2-admin-resetpassword-request.md deleted file mode 100644 index 4e6dc883c..000000000 --- a/Java/doc/models/tspublic-rest-v2-admin-resetpassword-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Admin Resetpassword Request - -## Structure - -`TspublicRestV2AdminResetpasswordRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | User name of the user account | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the user account to query. | String getId() | setId(String id) | -| `NewPassword` | `String` | Required | A new password for the user. | String getNewPassword() | setNewPassword(String newPassword) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "newPassword": "newPassword6" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md b/Java/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md deleted file mode 100644 index f665f54d6..000000000 --- a/Java/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md +++ /dev/null @@ -1,40 +0,0 @@ - -# Tspublic Rest V2 Admin Syncprincipal Request - -## Structure - -`TspublicRestV2AdminSyncprincipalRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `PrincipalObject` | `List` | Required | A JSON array of principal objects containing all users and groups present in the external system.

Example:

{

"name": "Customer Success",

"displayName": "Customer Success",

"description": "CS",

"created": 1568926267025,

"modified": 1568926982242,

"principalTypeEnum": "LOCAL_GROUP",

"groupNames": [],

"visibility": "DEFAULT"

},

{

"name": "test",

"displayName": "test one",

"created": 1587573621279,

"modified": 1587573621674,

"mail": "test2@test.com",

"principalTypeEnum": "LOCAL_USER",

"groupNames": [ "Administrator", "All" ],

"visibility": "DEFAULT"

}

You can leave the created and modified dates blank for new users.

You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum keyword.

Set visibility to NON_SHARABLE, if you do not want the user to be able to share ThoughtSpot objects with other users in this group. | List getPrincipalObject() | setPrincipalObject(List principalObject) | -| `UpdateModified` | `Boolean` | Optional | Specifies whether to apply the changes to users and groups already in the cluster based on the principal object list input.
**Default**: `false` | Boolean getUpdateModified() | setUpdateModified(Boolean updateModified) | -| `DeleteRemoved` | `Boolean` | Optional | Specifies whether to delete the users and groups already in the cluster if not present in the principal object list input.
**Default**: `false` | Boolean getDeleteRemoved() | setDeleteRemoved(Boolean deleteRemoved) | -| `NewUserPassword` | `String` | Optional | Assign a password for new users added during the sync operation.

All new users added will have this password. It is mandatory to provide value for this field if new users are included in the input list. | String getNewUserPassword() | setNewUserPassword(String newUserPassword) | - -## Example (as JSON) - -```json -{ - "principalObject": [ - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - } - ], - "updateModified": null, - "deleteRemoved": null, - "newUserPassword": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-connection-addtable-request.md b/Java/doc/models/tspublic-rest-v2-connection-addtable-request.md deleted file mode 100644 index f5635b6bb..000000000 --- a/Java/doc/models/tspublic-rest-v2-connection-addtable-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Connection Addtable Request - -## Structure - -`TspublicRestV2ConnectionAddtableRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | GUID of the connection | String getId() | setId(String id) | -| `Table` | [`List`](../../doc/models/add-table-input.md) | Required | A JSON array of table details | List getTable() | setTable(List table) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": "name6", - "dbName": "dbName4", - "schemaName": "schemaName0", - "columns": [ - { - "name": "name6", - "dataType": "dataType8" - } - ] - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-connection-create-request.md b/Java/doc/models/tspublic-rest-v2-connection-create-request.md deleted file mode 100644 index d39d7d5b0..000000000 --- a/Java/doc/models/tspublic-rest-v2-connection-create-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Create Request - -## Structure - -`TspublicRestV2ConnectionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Type` | [`Type14Enum`](../../doc/models/type-14-enum.md) | Required | Type of the data connection. | Type14Enum getType() | setType(Type14Enum type) | -| `Name` | `String` | Required | Name of the connection | String getName() | setName(String name) | -| `Description` | `String` | Optional | A short description of the connection. | String getDescription() | setDescription(String description) | -| `Configuration` | `String` | Required | A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. | String getConfiguration() | setConfiguration(String configuration) | - -## Example (as JSON) - -```json -{ - "type": "DENODO", - "name": "name0", - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-connection-removetable-request.md b/Java/doc/models/tspublic-rest-v2-connection-removetable-request.md deleted file mode 100644 index f64f3ddaf..000000000 --- a/Java/doc/models/tspublic-rest-v2-connection-removetable-request.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Tspublic Rest V2 Connection Removetable Request - -## Structure - -`TspublicRestV2ConnectionRemovetableRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | GUID of the connection | String getId() | setId(String id) | -| `Table` | [`List`](../../doc/models/table-input.md) | Required | A JSON array of name or GUIDs of the table or both. At least one input is required. Provide either table name or id. When both are given then id is considered | List getTable() | setTable(List table) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-connection-search-request.md b/Java/doc/models/tspublic-rest-v2-connection-search-request.md deleted file mode 100644 index 651c135f5..000000000 --- a/Java/doc/models/tspublic-rest-v2-connection-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Connection Search Request - -## Structure - -`TspublicRestV2ConnectionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Offset` | `Integer` | Optional | The offset point, starting from where the records should be included in the response. If no input is provided then offset starts from 0
**Default**: `0` | Integer getOffset() | setOffset(Integer offset) | -| `BatchNumber` | `Integer` | Optional | An alternate way to set offset for the starting point of the response. Offset field should be kept blank to use the value from this field. Offset value will be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | Integer getBatchNumber() | setBatchNumber(Integer batchNumber) | -| `BatchSize` | `Integer` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided, then all records starting from the value provided in offset is included in the response.
**Default**: `-1` | Integer getBatchSize() | setBatchSize(Integer batchSize) | -| `SortBy` | [`SortBy1Enum`](../../doc/models/sort-by-1-enum.md) | Optional | Field based on which the re.sponse needs to be ordered. Valid values
**Default**: `SortBy1Enum.DEFAULT` | SortBy1Enum getSortBy() | setSortBy(SortBy1Enum sortBy) | -| `SortOrder` | [`SortOrder1Enum`](../../doc/models/sort-order-1-enum.md) | Optional | Order in which sortBy should be applied. Valid values | SortOrder1Enum getSortOrder() | setSortOrder(SortOrder1Enum sortOrder) | -| `Type` | [`Type15Enum`](../../doc/models/type-15-enum.md) | Required | Type of the connect being searched. Valid values: SNOWFLAKE\|AMAZON_REDSHIFT\|GOOGLE_BIGQUERY\|AZURE_SYNAPSE\|TERADATA\|STARBURST\|SAP_HANA\|ORACLE_ADW\|DATABRICKS\|DENODO | Type15Enum getType() | setType(Type15Enum type) | -| `NamePattern` | `String` | Optional | A pattern to match the name of the connection. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | String getNamePattern() | setNamePattern(String namePattern) | -| `FetchId` | `List` | Optional | A JSON array containing the GUIDs of the connections that you want to fetch. | List getFetchId() | setFetchId(List fetchId) | -| `SkipId` | `List` | Optional | A JSON array containing the GUIDs of the connections that you want to skip. | List getSkipId() | setSkipId(List skipId) | -| `Tag` | [`List`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered | List getTag() | setTag(List tag) | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "DENODO", - "namePattern": null, - "fetchId": null, - "skipId": null, - "tag": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-connection-table-request.md b/Java/doc/models/tspublic-rest-v2-connection-table-request.md deleted file mode 100644 index 587b08716..000000000 --- a/Java/doc/models/tspublic-rest-v2-connection-table-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Connection Table Request - -## Structure - -`TspublicRestV2ConnectionTableRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | The GUID of the connection | String getId() | setId(String id) | -| `Configuration` | `String` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | String getConfiguration() | setConfiguration(String configuration) | -| `IncludeColumn` | `Boolean` | Optional | When set to true, the response will include column level details as well
**Default**: `true` | Boolean getIncludeColumn() | setIncludeColumn(Boolean includeColumn) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "includeColumn": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md b/Java/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md deleted file mode 100644 index a704449b2..000000000 --- a/Java/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Connection Tablecoloumn Request - -## Structure - -`TspublicRestV2ConnectionTablecoloumnRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | The GUID of the connection | String getId() | setId(String id) | -| `Configuration` | `String` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | String getConfiguration() | setConfiguration(String configuration) | -| `Table` | [`List`](../../doc/models/connection-table-columns-input.md) | Required | List of table details | List getTable() | setTable(List table) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "table": [ - { - "dbName": "dbName4", - "schemaName": "schemaName0", - "name": "name6" - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-connection-update-request.md b/Java/doc/models/tspublic-rest-v2-connection-update-request.md deleted file mode 100644 index 6c5d725ee..000000000 --- a/Java/doc/models/tspublic-rest-v2-connection-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Update Request - -## Structure - -`TspublicRestV2ConnectionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | GUID of the connection | String getId() | setId(String id) | -| `Name` | `String` | Optional | The text to update the name of the connection. | String getName() | setName(String name) | -| `Description` | `String` | Optional | The text to update the description of the connection. | String getDescription() | setDescription(String description) | -| `Configuration` | `String` | Required | A JSON object of the connection metadata. Include all the configuration attributes with original value along with the changes required to any attribute. | String getConfiguration() | setConfiguration(String configuration) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "name": null, - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-customaction-association-update-request.md b/Java/doc/models/tspublic-rest-v2-customaction-association-update-request.md deleted file mode 100644 index 657039d56..000000000 --- a/Java/doc/models/tspublic-rest-v2-customaction-association-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Association Update Request - -## Structure - -`TspublicRestV2CustomactionAssociationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | GUID of the custom action | String getId() | setId(String id) | -| `Association` | `String` | Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | String getAssociation() | setAssociation(String association) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "association": "association0" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-customaction-create-request.md b/Java/doc/models/tspublic-rest-v2-customaction-create-request.md deleted file mode 100644 index acb3a7e7b..000000000 --- a/Java/doc/models/tspublic-rest-v2-customaction-create-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Create Request - -## Structure - -`TspublicRestV2CustomactionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Configuration` | `String` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | String getConfiguration() | setConfiguration(String configuration) | - -## Example (as JSON) - -```json -{ - "configuration": "configuration6" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-customaction-search-request.md b/Java/doc/models/tspublic-rest-v2-customaction-search-request.md deleted file mode 100644 index f5eead22d..000000000 --- a/Java/doc/models/tspublic-rest-v2-customaction-search-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Search Request - -## Structure - -`TspublicRestV2CustomactionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Tag` | `List` | Optional | A JSON array of tag GUIDs.

If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags. | List getTag() | setTag(List tag) | - -## Example (as JSON) - -```json -{ - "tag": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-customaction-update-request.md b/Java/doc/models/tspublic-rest-v2-customaction-update-request.md deleted file mode 100644 index d99f136c1..000000000 --- a/Java/doc/models/tspublic-rest-v2-customaction-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Update Request - -## Structure - -`TspublicRestV2CustomactionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | GUID of the custom action | String getId() | setId(String id) | -| `Configuration` | `String` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | String getConfiguration() | setConfiguration(String configuration) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": "configuration6" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-data-answer-request.md b/Java/doc/models/tspublic-rest-v2-data-answer-request.md deleted file mode 100644 index 63254f0c5..000000000 --- a/Java/doc/models/tspublic-rest-v2-data-answer-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Data Answer Request - -## Structure - -`TspublicRestV2DataAnswerRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Offset` | `Integer` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | Integer getOffset() | setOffset(Integer offset) | -| `BatchNumber` | `Integer` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | Integer getBatchNumber() | setBatchNumber(Integer batchNumber) | -| `BatchSize` | `Integer` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | Integer getBatchSize() | setBatchSize(Integer batchSize) | -| `Id` | `String` | Required | The GUID of the Answer | String getId() | setId(String id) | -| `FormatType` | [`FormatTypeEnum`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | FormatTypeEnum getFormatType() | setFormatType(FormatTypeEnum formatType) | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": "id0", - "formatType": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-data-liveboard-request.md b/Java/doc/models/tspublic-rest-v2-data-liveboard-request.md deleted file mode 100644 index a15f617f6..000000000 --- a/Java/doc/models/tspublic-rest-v2-data-liveboard-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Data Liveboard Request - -## Structure - -`TspublicRestV2DataLiveboardRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Offset` | `Integer` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | Integer getOffset() | setOffset(Integer offset) | -| `BatchNumber` | `Integer` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | Integer getBatchNumber() | setBatchNumber(Integer batchNumber) | -| `BatchSize` | `Integer` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | Integer getBatchSize() | setBatchSize(Integer batchSize) | -| `Id` | `String` | Optional | The GUID of the Liveboard | String getId() | setId(String id) | -| `TransientContent` | `String` | Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboard data with unsaved changes then, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If value for this field is provided, then id will not be considered. | String getTransientContent() | setTransientContent(String transientContent) | -| `VizId` | `List` | Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | List getVizId() | setVizId(List vizId) | -| `RuntimeFilter` | `String` | Optional | JSON object which contains filter condition to filter the data at the time of data retrieval.

Example: {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | String getRuntimeFilter() | setRuntimeFilter(String runtimeFilter) | -| `RuntimeSort` | `String` | Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. | String getRuntimeSort() | setRuntimeSort(String runtimeSort) | -| `FormatType` | [`FormatTypeEnum`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | FormatTypeEnum getFormatType() | setFormatType(FormatTypeEnum formatType) | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": null, - "transientContent": null, - "vizId": null, - "runtimeFilter": null, - "runtimeSort": null, - "formatType": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-data-search-request.md b/Java/doc/models/tspublic-rest-v2-data-search-request.md deleted file mode 100644 index 15b37f828..000000000 --- a/Java/doc/models/tspublic-rest-v2-data-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Data Search Request - -## Structure - -`TspublicRestV2DataSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Offset` | `Integer` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `-1` | Integer getOffset() | setOffset(Integer offset) | -| `BatchNumber` | `Integer` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | Integer getBatchNumber() | setBatchNumber(Integer batchNumber) | -| `BatchSize` | `Integer` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | Integer getBatchSize() | setBatchSize(Integer batchSize) | -| `QueryString` | `String` | Required | The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' | String getQueryString() | setQueryString(String queryString) | -| `DataObjectId` | `String` | Required | The GUID of the data object, either a worksheet, a view, or a table. | String getDataObjectId() | setDataObjectId(String dataObjectId) | -| `FormatType` | [`FormatTypeEnum`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | FormatTypeEnum getFormatType() | setFormatType(FormatTypeEnum formatType) | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "queryString": "queryString4", - "dataObjectId": "dataObjectId2", - "formatType": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-database-table-create-request.md b/Java/doc/models/tspublic-rest-v2-database-table-create-request.md deleted file mode 100644 index d28183b6d..000000000 --- a/Java/doc/models/tspublic-rest-v2-database-table-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Create Request - -## Structure - -`TspublicRestV2DatabaseTableCreateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `CreateDatabase` | `Boolean` | Optional | Flag to indicate if the database and schema should be created if they do not exist in Falcon. (Valid values: True/False)
**Default**: `true` | Boolean getCreateDatabase() | setCreateDatabase(Boolean createDatabase) | -| `Schema` | `String` | Optional | DDL of the table to be created. Example: {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} | String getSchema() | setSchema(String schema) | - -## Example (as JSON) - -```json -{ - "createDatabase": null, - "schema": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-database-table-runquery-request.md b/Java/doc/models/tspublic-rest-v2-database-table-runquery-request.md deleted file mode 100644 index b3e8b892e..000000000 --- a/Java/doc/models/tspublic-rest-v2-database-table-runquery-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Runquery Request - -## Structure - -`TspublicRestV2DatabaseTableRunqueryRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Statement` | `List` | Required | A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end with semi-colon (;). The TQL operations that can be run through this API are restricted to create database and schema, alter table, delete and update table rows. If a TQL statement fails, then the subsequent statements in the array are not run. Example: ["alter table test_db.test_schema.test_table drop contraint primary key;";"alter table test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] | List getStatement() | setStatement(List statement) | - -## Example (as JSON) - -```json -{ - "statement": [ - "statement0" - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-addgroup-request.md b/Java/doc/models/tspublic-rest-v2-group-addgroup-request.md deleted file mode 100644 index 753a92f3b..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Addgroup Request - -## Structure - -`TspublicRestV2GroupAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the group to query. | String getId() | setId(String id) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-addprivilege-request.md b/Java/doc/models/tspublic-rest-v2-group-addprivilege-request.md deleted file mode 100644 index bab39b3ee..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-addprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Addprivilege Request - -## Structure - -`TspublicRestV2GroupAddprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the group to query. | String getId() | setId(String id) | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | List getPrivileges() | setPrivileges(List privileges) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-adduser-request.md b/Java/doc/models/tspublic-rest-v2-group-adduser-request.md deleted file mode 100644 index faa4924a8..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-adduser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Adduser Request - -## Structure - -`TspublicRestV2GroupAdduserRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the group to query. | String getId() | setId(String id) | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to update in user group. | List getUsers() | setUsers(List users) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-create-request.md b/Java/doc/models/tspublic-rest-v2-group-create-request.md deleted file mode 100644 index 4fd4aca00..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-create-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Group Create Request - -## Structure - -`TspublicRestV2GroupCreateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Required | Name of the user group. The group name string must be unique. | String getName() | setName(String name) | -| `DisplayName` | `String` | Required | A unique display name string for the user group, for example, Developer group. | String getDisplayName() | setDisplayName(String displayName) | -| `Visibility` | [`Visibility2Enum`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `Visibility2Enum.DEFAULT` | Visibility2Enum getVisibility() | setVisibility(Visibility2Enum visibility) | -| `Description` | `String` | Optional | Description text for the group. | String getDescription() | setDescription(String description) | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | List getPrivileges() | setPrivileges(List privileges) | -| `OrgId` | `Integer` | Optional | Unique identifier of the organization. If no value is provided then group will be created in the organization associated with the login session. | Integer getOrgId() | setOrgId(Integer orgId) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the group belong to. | List getGroups() | setGroups(List groups) | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | Array of names of user names that the group belong to. | List getUsers() | setUsers(List users) | -| `Type` | [`Type10Enum`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type10Enum.LOCAL_GROUP` | Type10Enum getType() | setType(Type10Enum type) | - -## Example (as JSON) - -```json -{ - "name": "name0", - "displayName": "displayName2", - "visibility": null, - "description": null, - "privileges": null, - "orgId": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-removegroup-request.md b/Java/doc/models/tspublic-rest-v2-group-removegroup-request.md deleted file mode 100644 index 9e8329469..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Removegroup Request - -## Structure - -`TspublicRestV2GroupRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the group to query. | String getId() | setId(String id) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-removeprivilege-request.md b/Java/doc/models/tspublic-rest-v2-group-removeprivilege-request.md deleted file mode 100644 index 40152112b..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-removeprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Removeprivilege Request - -## Structure - -`TspublicRestV2GroupRemoveprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the group to query. | String getId() | setId(String id) | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | List getPrivileges() | setPrivileges(List privileges) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-removeuser-request.md b/Java/doc/models/tspublic-rest-v2-group-removeuser-request.md deleted file mode 100644 index c2298c45c..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-removeuser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Removeuser Request - -## Structure - -`TspublicRestV2GroupRemoveuserRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the group | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the group to query. | String getId() | setId(String id) | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to delete from user group. | List getUsers() | setUsers(List users) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-search-request.md b/Java/doc/models/tspublic-rest-v2-group-search-request.md deleted file mode 100644 index cc18f48db..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Search Request - -## Structure - -`TspublicRestV2GroupSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `OutputFields` | `List` | Optional | Array of field names that need to be included in the response | List getOutputFields() | setOutputFields(List outputFields) | -| `Name` | `String` | Optional | Name of the user group | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the group to update | String getId() | setId(String id) | -| `DisplayName` | `String` | Optional | A unique display name string for the user group, for example, Developer group. | String getDisplayName() | setDisplayName(String displayName) | -| `Visibility` | `String` | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. | String getVisibility() | setVisibility(String visibility) | -| `Description` | `String` | Optional | Description text for the group. | String getDescription() | setDescription(String description) | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | List getPrivileges() | setPrivileges(List privileges) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | Array of user name that associated with group. | List getUsers() | setUsers(List users) | -| `Type` | `String` | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. | String getType() | setType(String type) | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-group-update-request.md b/Java/doc/models/tspublic-rest-v2-group-update-request.md deleted file mode 100644 index 1326b86b1..000000000 --- a/Java/doc/models/tspublic-rest-v2-group-update-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Update Request - -## Structure - -`TspublicRestV2GroupUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the user group. The group name string must be unique. | String getName() | setName(String name) | -| `Id` | `String` | Optional | he GUID of the user account to query. | String getId() | setId(String id) | -| `DisplayName` | `String` | Optional | A unique display name string for the user group, for example, Developer group. | String getDisplayName() | setDisplayName(String displayName) | -| `Visibility` | [`Visibility2Enum`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `Visibility2Enum.DEFAULT` | Visibility2Enum getVisibility() | setVisibility(Visibility2Enum visibility) | -| `Description` | `String` | Optional | Description text for the group. | String getDescription() | setDescription(String description) | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | List getPrivileges() | setPrivileges(List privileges) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | Array of object, A JSON array of name of users of users. | List getUsers() | setUsers(List users) | -| `AssignedLiveboards` | `List` | Optional | Array of string. An array of liveboard ids to be assigned to the group. | List getAssignedLiveboards() | setAssignedLiveboards(List assignedLiveboards) | -| `Type` | [`Type10Enum`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type10Enum.LOCAL_GROUP` | Type10Enum getType() | setType(Type10Enum type) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "type": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-materialization-refreshview-request.md b/Java/doc/models/tspublic-rest-v2-materialization-refreshview-request.md deleted file mode 100644 index cf89b8c06..000000000 --- a/Java/doc/models/tspublic-rest-v2-materialization-refreshview-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Materialization Refreshview Request - -## Structure - -`TspublicRestV2MaterializationRefreshviewRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | GUID of metadata object | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "id": "id0" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-dependency-request.md b/Java/doc/models/tspublic-rest-v2-metadata-dependency-request.md deleted file mode 100644 index e8fe03619..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-dependency-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Dependency Request - -## Structure - -`TspublicRestV2MetadataDependencyRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Type` | [`Type13Enum`](../../doc/models/type-13-enum.md) | Required | Type of the data object | Type13Enum getType() | setType(Type13Enum type) | -| `Id` | `List` | Required | A JSON array of GUIDs of the objects | List getId() | setId(List id) | -| `BatchSize` | `Integer` | Optional | The maximum number of batches to fetch in a query. If this attribute is not defined, the value specified in the cluster configuration is used. To get the list of all dependent objects in a single query, define the batch size attribute as -1
**Default**: `-1` | Integer getBatchSize() | setBatchSize(Integer batchSize) | - -## Example (as JSON) - -```json -{ - "type": "COLUMN", - "id": [ - "id0" - ], - "batchSize": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-detail-search-request.md b/Java/doc/models/tspublic-rest-v2-metadata-detail-search-request.md deleted file mode 100644 index 4f04c1384..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-detail-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Metadata Detail Search Request - -## Structure - -`TspublicRestV2MetadataDetailSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Type` | [`Type6Enum`](../../doc/models/type-6-enum.md) | Required | Type of the metadata object being searched. | Type6Enum getType() | setType(Type6Enum type) | -| `Id` | `List` | Required | A JSON array of GUIDs of the objects. | List getId() | setId(List id) | -| `ShowHidden` | `Boolean` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `false` | Boolean getShowHidden() | setShowHidden(Boolean showHidden) | -| `DropQuestionDetails` | `Boolean` | Optional | When set to true, the search assist data associated with a worksheet is not included in the API response. This attribute is applicable only for DATAOBJECT data type.
**Default**: `false` | Boolean getDropQuestionDetails() | setDropQuestionDetails(Boolean dropQuestionDetails) | -| `Version` | `String` | Optional | Specify the version to retrieve the objects from. By default, the API returns metadata for all versions of the object. | String getVersion() | setVersion(String version) | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "showHidden": null, - "dropQuestionDetails": null, - "version": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md b/Java/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md deleted file mode 100644 index 240411891..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Assign Request - -## Structure - -`TspublicRestV2MetadataFavoriteAssignRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `UserName` | `String` | Optional | Name of the user | String getUserName() | setUserName(String userName) | -| `UserId` | `String` | Optional | The GUID of the user | String getUserId() | setUserId(String userId) | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | List getTsObject() | setTsObject(List tsObject) | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md b/Java/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md deleted file mode 100644 index 7b0524d32..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Unassign Request - -## Structure - -`TspublicRestV2MetadataFavoriteUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `UserName` | `String` | Optional | Name of the user | String getUserName() | setUserName(String userName) | -| `UserId` | `String` | Optional | The GUID of the user | String getUserId() | setUserId(String userId) | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | List getTsObject() | setTsObject(List tsObject) | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-header-search-request.md b/Java/doc/models/tspublic-rest-v2-metadata-header-search-request.md deleted file mode 100644 index d2eedc2e3..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-header-search-request.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Tspublic Rest V2 Metadata Header Search Request - -## Structure - -`TspublicRestV2MetadataHeaderSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `OutputFields` | `List` | Optional | Array of header field names that need to be included in the header response | List getOutputFields() | setOutputFields(List outputFields) | -| `Offset` | `Integer` | Optional | The batch offset, starting from where the records should be included in the response. If no input is provided then offset starts from 0. Default: 0
**Default**: `0` | Integer getOffset() | setOffset(Integer offset) | -| `BatchNumber` | `Integer` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. | Integer getBatchNumber() | setBatchNumber(Integer batchNumber) | -| `BatchSize` | `Integer` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided then first page is included in the response.
**Default**: `-1` | Integer getBatchSize() | setBatchSize(Integer batchSize) | -| `SortBy` | [`SortByEnum`](../../doc/models/sort-by-enum.md) | Optional | Field based on which the response needs to be ordered.
**Default**: `SortByEnum.DEFAULT` | SortByEnum getSortBy() | setSortBy(SortByEnum sortBy) | -| `SortOrder` | [`SortOrderEnum`](../../doc/models/sort-order-enum.md) | Optional | Order in which sortBy should be applied.
**Default**: `SortOrderEnum.DEFAULT` | SortOrderEnum getSortOrder() | setSortOrder(SortOrderEnum sortOrder) | -| `Type` | [`Type3Enum`](../../doc/models/type-3-enum.md) | Required | Type of the metadata object being searched. | Type3Enum getType() | setType(Type3Enum type) | -| `NamePattern` | `String` | Optional | A pattern to match the name of the metadata object. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | String getNamePattern() | setNamePattern(String namePattern) | -| `FetchId` | `List` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to fetch. | List getFetchId() | setFetchId(List fetchId) | -| `SkipId` | `List` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to skip. | List getSkipId() | setSkipId(List skipId) | -| `ShowHidden` | `Boolean` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `false` | Boolean getShowHidden() | setShowHidden(Boolean showHidden) | -| `AutoCreated` | `Boolean` | Optional | A flag to indicate whether to list only the auto created objects. When no value is provided as input then all objects are returned. | Boolean getAutoCreated() | setAutoCreated(Boolean autoCreated) | -| `AccessLevel` | [`List`](../../doc/models/access-level-input.md) | Optional | A JSON array of objects with user details for which the metadata objects should be considered from the repository
If you specify ID or name of user and set the type parameter to USER, the API returns metadata objects associated with the user
If you specify ID or name of user group and set the type parameter to USER_GROUP, the API returns metadata objects for all the users mapped to the specified user group.
If the id or name parameter is not defined, but the type attribute is set to USER or USER_GROUP, then the API will not return and response.
If no input is provided for any field for this object, then the API returns headers for all users.
If both name and id is provided, then id will be considered. | List getAccessLevel() | setAccessLevel(List accessLevel) | -| `Tag` | [`List`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered. | List getTag() | setTag(List tag) | -| `FavoriteFor` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. When both are given then id is considered. | List getFavoriteFor() | setFavoriteFor(List favoriteFor) | -| `Author` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who created the object. When both are given then id is considered | List getAuthor() | setAuthor(List author) | -| `LastModifiedBy` | [`List`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who last modified the object. When both are given then id is considered. | List getLastModifiedBy() | setLastModifiedBy(List lastModifiedBy) | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "COLUMN_ALL", - "namePattern": null, - "fetchId": null, - "skipId": null, - "showHidden": null, - "autoCreated": null, - "accessLevel": null, - "tag": null, - "favoriteFor": null, - "author": null, - "lastModifiedBy": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md b/Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md deleted file mode 100644 index 6edb8c37b..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Assign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardAssignRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `UserName` | `String` | Optional | Name of the user | String getUserName() | setUserName(String userName) | -| `UserId` | `String` | Optional | The GUID of the user | String getUserId() | setUserId(String userId) | -| `LiveboardId` | `String` | Optional | The GUID of the liveboard | String getLiveboardId() | setLiveboardId(String liveboardId) | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardId": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md b/Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md deleted file mode 100644 index f7e93d3c6..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Unassign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `UserName` | `String` | Optional | Name of the user | String getUserName() | setUserName(String userName) | -| `UserId` | `String` | Optional | The GUID of the user | String getUserId() | setUserId(String userId) | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md b/Java/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md deleted file mode 100644 index 859695831..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Assign Request - -## Structure - -`TspublicRestV2MetadataTagAssignRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the tag | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the tag | String getId() | setId(String id) | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | List getTsObject() | setTsObject(List tsObject) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-tag-create-request.md b/Java/doc/models/tspublic-rest-v2-metadata-tag-create-request.md deleted file mode 100644 index 2c20532cf..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-tag-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Create Request - -## Structure - -`TspublicRestV2MetadataTagCreateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Required | Name of the tag | String getName() | setName(String name) | -| `Color` | `String` | Optional | Hex color code to be assigned to the tag | String getColor() | setColor(String color) | - -## Example (as JSON) - -```json -{ - "name": "name0", - "color": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md b/Java/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md deleted file mode 100644 index b1c1552d1..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Unassign Request - -## Structure - -`TspublicRestV2MetadataTagUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the tag | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the tag | String getId() | setId(String id) | -| `TsObject` | [`List`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | List getTsObject() | setTsObject(List tsObject) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-tag-update-request.md b/Java/doc/models/tspublic-rest-v2-metadata-tag-update-request.md deleted file mode 100644 index 7532d78b4..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-tag-update-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Update Request - -## Structure - -`TspublicRestV2MetadataTagUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the tag | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the tag | String getId() | setId(String id) | -| `Color` | `String` | Optional | Hex color code to be assigned to the tag | String getColor() | setColor(String color) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "color": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-tml-export-request.md b/Java/doc/models/tspublic-rest-v2-metadata-tml-export-request.md deleted file mode 100644 index 9fd965eab..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-tml-export-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Export Request - -## Structure - -`TspublicRestV2MetadataTmlExportRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `List` | Required | A JSON array of GUIDs of the objects. | List getId() | setId(List id) | -| `FormatType` | [`FormatType3Enum`](../../doc/models/format-type-3-enum.md) | Optional | The format in which to export the objects
**Default**: `FormatType3Enum.YAML` | FormatType3Enum getFormatType() | setFormatType(FormatType3Enum formatType) | -| `ExportAssociated` | `Boolean` | Optional | Specifies if you would like to export the associated objects. To export the objects associated with the objects specified in id, set the value to true. When set to true, the API exports any underlying worksheets, tables, or views for a given object. By default, the API does not export these underlying objects
**Default**: `false` | Boolean getExportAssociated() | setExportAssociated(Boolean exportAssociated) | - -## Example (as JSON) - -```json -{ - "id": [ - "id0" - ], - "formatType": null, - "exportAssociated": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-metadata-tml-import-request.md b/Java/doc/models/tspublic-rest-v2-metadata-tml-import-request.md deleted file mode 100644 index 9a82c3ba1..000000000 --- a/Java/doc/models/tspublic-rest-v2-metadata-tml-import-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Import Request - -## Structure - -`TspublicRestV2MetadataTmlImportRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `ObjectTML` | `List` | Required | A string array of TML objects to upload, in YAML or JSON format.

If TML is in YAML format, then use escape characters for quotes and new line characters.

Example TML:

guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: DONT_INDEX\n db_column_properties:\n data_type: INT64\n

If TML is in JSON format, then use escape characters for quotes.

Example TML:

{\\"guid\\": \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', | List getObjectTML() | setObjectTML(List objectTML) | -| `ImportPolicy` | [`ImportPolicyEnum`](../../doc/models/import-policy-enum.md) | Optional | Policy to follow during import
**Default**: `ImportPolicyEnum.PARTIAL` | ImportPolicyEnum getImportPolicy() | setImportPolicy(ImportPolicyEnum importPolicy) | -| `ForceCreate` | `Boolean` | Optional | Specifies if you are updating or creating objects. To create new objects, specify true. By default, ThoughtSpot updates existing objects that have the same GUID as the objects you are importing. When set to true, the GUID property in the imported TML is replaced on the server, and the response headers will include the id_guid property with the GUID of the new object. The new object will be assigned a new GUID, even if the imported TML file included a guid value. Thus, there is no need to include the guid in the TML file if you are using forceCreate=true.
**Default**: `false` | Boolean getForceCreate() | setForceCreate(Boolean forceCreate) | - -## Example (as JSON) - -```json -{ - "objectTML": [ - "objectTML7" - ], - "importPolicy": null, - "forceCreate": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-org-create-request.md b/Java/doc/models/tspublic-rest-v2-org-create-request.md deleted file mode 100644 index e170aa331..000000000 --- a/Java/doc/models/tspublic-rest-v2-org-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Org Create Request - -## Structure - -`TspublicRestV2OrgCreateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Required | Name of the organization. | String getName() | setName(String name) | -| `Description` | `String` | Optional | Description text for the organization. | String getDescription() | setDescription(String description) | - -## Example (as JSON) - -```json -{ - "name": "name0", - "description": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-org-search-request.md b/Java/doc/models/tspublic-rest-v2-org-search-request.md deleted file mode 100644 index a60d64492..000000000 --- a/Java/doc/models/tspublic-rest-v2-org-search-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Org Search Request - -## Structure - -`TspublicRestV2OrgSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the organization. | String getName() | setName(String name) | -| `Id` | `Integer` | Optional | The ID of the organization. | Integer getId() | setId(Integer id) | -| `ShowDeleted` | `Boolean` | Optional | When set to true, the response will include the details of deleted organization also.
**Default**: `false` | Boolean getShowDeleted() | setShowDeleted(Boolean showDeleted) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "showDeleted": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-org-update-request.md b/Java/doc/models/tspublic-rest-v2-org-update-request.md deleted file mode 100644 index 2b7cc3464..000000000 --- a/Java/doc/models/tspublic-rest-v2-org-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Org Update Request - -## Structure - -`TspublicRestV2OrgUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the organization. | String getName() | setName(String name) | -| `Id` | `Integer` | Optional | The ID of the organization. | Integer getId() | setId(Integer id) | -| `Description` | `String` | Optional | Description text for the organization. | String getDescription() | setDescription(String description) | -| `Active` | `Boolean` | Optional | Status of the organization. | Boolean getActive() | setActive(Boolean active) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "description": null, - "active": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md b/Java/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md deleted file mode 100644 index f7a38c760..000000000 --- a/Java/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 Security Permission Principal Search Request - -## Structure - -`TspublicRestV2SecurityPermissionPrincipalSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Principal` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | A JSON array of principal names or GUIDs to be included in the request. When both are given then id is considered. | List getPrincipal() | setPrincipal(List principal) | -| `TsObject` | [`List`](../../doc/models/ts-object-search-input.md) | Optional | A JSON Array of GUIDs and type of metadata object. | List getTsObject() | setTsObject(List tsObject) | - -## Example (as JSON) - -```json -{ - "principal": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ], - "tsObject": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md b/Java/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md deleted file mode 100644 index 15912f72f..000000000 --- a/Java/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Security Permission Tsobject Search Request - -## Structure - -`TspublicRestV2SecurityPermissionTsobjectSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `TsObject` | [`List`](../../doc/models/ts-object-search-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | List getTsObject() | setTsObject(List tsObject) | -| `Principal` | [`List`](../../doc/models/user-name-and-id-input.md) | Optional | A JSON array of principal names or GUIDs. When both are given then id is considered. | List getPrincipal() | setPrincipal(List principal) | -| `IncludeDependent` | `Boolean` | Optional | When this field is set to true, the API response includes the permission details for the dependent objects.
**Default**: `false` | Boolean getIncludeDependent() | setIncludeDependent(Boolean includeDependent) | - -## Example (as JSON) - -```json -{ - "tsObject": [ - { - "type": "DATAOBJECT", - "id": [ - "id2" - ] - }, - { - "type": "COLUMN", - "id": [ - "id3", - "id4" - ] - } - ], - "principal": null, - "includeDependent": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-security-share-tsobject-request.md b/Java/doc/models/tspublic-rest-v2-security-share-tsobject-request.md deleted file mode 100644 index 370d254f8..000000000 --- a/Java/doc/models/tspublic-rest-v2-security-share-tsobject-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Security Share Tsobject Request - -## Structure - -`TspublicRestV2SecurityShareTsobjectRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Type` | [`Type18Enum`](../../doc/models/type-18-enum.md) | Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | Type18Enum getType() | setType(Type18Enum type) | -| `Id` | `List` | Required | A JSON array of the GUIDs of the objects to be shared | List getId() | setId(List id) | -| `Permission` | `String` | Required | A JSON object with GUIDs of user and user group, and the type of access privilge.

You can provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user group can view the shared object, whereas MODIFY access enables users to modify the object.

To remove access to a shared object, you can set the shareMode in the permission string to NO_ACCESS. Example:

{"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} | String getPermission() | setPermission(String permission) | -| `EmailId` | `List` | Optional | The email addresses that should ne notified when the objects are shared. | List getEmailId() | setEmailId(List emailId) | -| `Notify` | `Boolean` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `true` | Boolean getNotify() | setNotify(Boolean notify) | -| `Message` | `String` | Optional | The message text to send in the notification email. | String getMessage() | setMessage(String message) | -| `IncludeCustomEmbedUrl` | `Boolean` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `false` | Boolean getIncludeCustomEmbedUrl() | setIncludeCustomEmbedUrl(Boolean includeCustomEmbedUrl) | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "permission": "permission2", - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-security-share-visualization-request.md b/Java/doc/models/tspublic-rest-v2-security-share-visualization-request.md deleted file mode 100644 index c64f2411b..000000000 --- a/Java/doc/models/tspublic-rest-v2-security-share-visualization-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Security Share Visualization Request - -## Structure - -`TspublicRestV2SecurityShareVisualizationRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Id` | `String` | Required | A JSON array of the GUIDs of the objects to be shared | String getId() | setId(String id) | -| `VizId` | `String` | Required | The GUID of visualization | String getVizId() | setVizId(String vizId) | -| `PrincipalId` | `List` | Required | The GUID of the users and user groups with which you want to share the visualization | List getPrincipalId() | setPrincipalId(List principalId) | -| `EmailId` | `List` | Optional | The email addresses that should ne notified when the objects are shared | List getEmailId() | setEmailId(List emailId) | -| `Notify` | `Boolean` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `true` | Boolean getNotify() | setNotify(Boolean notify) | -| `Message` | `String` | Optional | The message text to send in the notification email. | String getMessage() | setMessage(String message) | -| `IncludeCustomEmbedUrl` | `Boolean` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `false` | Boolean getIncludeCustomEmbedUrl() | setIncludeCustomEmbedUrl(Boolean includeCustomEmbedUrl) | - -## Example (as JSON) - -```json -{ - "id": "id0", - "vizId": "vizId2", - "principalId": [ - "principalId8", - "principalId9", - "principalId0" - ], - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-user-addgroup-request.md b/Java/doc/models/tspublic-rest-v2-user-addgroup-request.md deleted file mode 100644 index c0a9ed9f1..000000000 --- a/Java/doc/models/tspublic-rest-v2-user-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Addgroup Request - -## Structure - -`TspublicRestV2UserAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | User name of the user account | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the user account | String getId() | setId(String id) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-user-addorg-request.md b/Java/doc/models/tspublic-rest-v2-user-addorg-request.md deleted file mode 100644 index ba3bd6843..000000000 --- a/Java/doc/models/tspublic-rest-v2-user-addorg-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 User Addorg Request - -## Structure - -`TspublicRestV2UserAddorgRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `OrgId` | `Integer` | Optional | The ID of the organization. | Integer getOrgId() | setOrgId(Integer orgId) | -| `Users` | [`List`](../../doc/models/user-name-and-id-input.md) | Required | Array of objects. A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | List getUsers() | setUsers(List users) | - -## Example (as JSON) - -```json -{ - "orgId": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-user-changepassword-request.md b/Java/doc/models/tspublic-rest-v2-user-changepassword-request.md deleted file mode 100644 index 2d125de38..000000000 --- a/Java/doc/models/tspublic-rest-v2-user-changepassword-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 User Changepassword Request - -## Structure - -`TspublicRestV2UserChangepasswordRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | User name of the user account. | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the user account to query. | String getId() | setId(String id) | -| `CurrentPassword` | `String` | Required | The current password of the user. | String getCurrentPassword() | setCurrentPassword(String currentPassword) | -| `NewPassword` | `String` | Required | A new password for the user. | String getNewPassword() | setNewPassword(String newPassword) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "currentPassword": "currentPassword6", - "newPassword": "newPassword6" -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-user-removegroup-request.md b/Java/doc/models/tspublic-rest-v2-user-removegroup-request.md deleted file mode 100644 index 52aa9be54..000000000 --- a/Java/doc/models/tspublic-rest-v2-user-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Removegroup Request - -## Structure - -`TspublicRestV2UserRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | User name of the user account | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the user account | String getId() | setId(String id) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-user-search-request.md b/Java/doc/models/tspublic-rest-v2-user-search-request.md deleted file mode 100644 index f8970b2f7..000000000 --- a/Java/doc/models/tspublic-rest-v2-user-search-request.md +++ /dev/null @@ -1,45 +0,0 @@ - -# Tspublic Rest V2 User Search Request - -## Structure - -`TspublicRestV2UserSearchRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `OutputFields` | `List` | Optional | Array of field names that need to be included in the response | List getOutputFields() | setOutputFields(List outputFields) | -| `Name` | `String` | Optional | User name of the user account | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the user account | String getId() | setId(String id) | -| `DisplayName` | `String` | Optional | A unique display name string for the user, usually their first and last name. | String getDisplayName() | setDisplayName(String displayName) | -| `Visibility` | `String` | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. | String getVisibility() | setVisibility(String visibility) | -| `Mail` | `String` | Optional | email of the user. | String getMail() | setMail(String mail) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | -| `Privileges` | [`List`](../../doc/models/privilege-enum.md) | Optional | Privileges assigned to user account | List getPrivileges() | setPrivileges(List privileges) | -| `State` | `String` | Optional | Status of user account. acitve or inactive. | String getState() | setState(String state) | -| `NotifyOnShare` | `Boolean` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | Boolean getNotifyOnShare() | setNotifyOnShare(Boolean notifyOnShare) | -| `ShowWalkMe` | `Boolean` | Optional | The user preference for revisiting the onboarding experience. | Boolean getShowWalkMe() | setShowWalkMe(Boolean showWalkMe) | -| `AnalystOnboardingComplete` | `Boolean` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | Boolean getAnalystOnboardingComplete() | setAnalystOnboardingComplete(Boolean analystOnboardingComplete) | -| `Type` | `String` | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | String getType() | setType(String type) | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null -} -``` - diff --git a/Java/doc/models/tspublic-rest-v2-user-update-request.md b/Java/doc/models/tspublic-rest-v2-user-update-request.md deleted file mode 100644 index 274bcd978..000000000 --- a/Java/doc/models/tspublic-rest-v2-user-update-request.md +++ /dev/null @@ -1,41 +0,0 @@ - -# Tspublic Rest V2 User Update Request - -## Structure - -`TspublicRestV2UserUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Name of the user. The username string must be unique. | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the user account to query | String getId() | setId(String id) | -| `DisplayName` | `String` | Optional | A unique display name string for the user, usually their first and last name. | String getDisplayName() | setDisplayName(String displayName) | -| `Visibility` | [`Visibility1Enum`](../../doc/models/visibility-1-enum.md) | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects.
**Default**: `Visibility1Enum.DEFAULT` | Visibility1Enum getVisibility() | setVisibility(Visibility1Enum visibility) | -| `Mail` | `String` | Optional | email of the user. | String getMail() | setMail(String mail) | -| `State` | [`State1Enum`](../../doc/models/state-1-enum.md) | Optional | Status of user account. acitve or inactive.
**Default**: `State1Enum.ACTIVE` | State1Enum getState() | setState(State1Enum state) | -| `NotifyOnShare` | `Boolean` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards.
**Default**: `true` | Boolean getNotifyOnShare() | setNotifyOnShare(Boolean notifyOnShare) | -| `ShowWalkMe` | `Boolean` | Optional | The user preference for revisiting the onboarding experience.
**Default**: `true` | Boolean getShowWalkMe() | setShowWalkMe(Boolean showWalkMe) | -| `AnalystOnboardingComplete` | `Boolean` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI.
**Default**: `false` | Boolean getAnalystOnboardingComplete() | setAnalystOnboardingComplete(Boolean analystOnboardingComplete) | -| `Type` | [`Type9Enum`](../../doc/models/type-9-enum.md) | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type9Enum.LOCAL_USER` | Type9Enum getType() | setType(Type9Enum type) | -| `Groups` | [`List`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | List getGroups() | setGroups(List groups) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null, - "groups": null -} -``` - diff --git a/Java/doc/models/type-1-enum.md b/Java/doc/models/type-1-enum.md deleted file mode 100644 index f471cbce5..000000000 --- a/Java/doc/models/type-1-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 1 Enum - -Type of access detail provided - -## Enumeration - -`Type1Enum` - -## Fields - -| Name | -| --- | -| `USER` | -| `USERGROUP` | - diff --git a/Java/doc/models/type-10-enum.md b/Java/doc/models/type-10-enum.md deleted file mode 100644 index cbf707b80..000000000 --- a/Java/doc/models/type-10-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 10 Enum - -Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type10Enum` - -## Fields - -| Name | -| --- | -| `LOCALGROUP` | -| `TENANTGROUP` | - diff --git a/Java/doc/models/type-13-enum.md b/Java/doc/models/type-13-enum.md deleted file mode 100644 index 1912ab366..000000000 --- a/Java/doc/models/type-13-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 13 Enum - -Type of the data object - -## Enumeration - -`Type13Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | - diff --git a/Java/doc/models/type-14-enum.md b/Java/doc/models/type-14-enum.md deleted file mode 100644 index 61db9fbcc..000000000 --- a/Java/doc/models/type-14-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 14 Enum - -Type of the data connection. - -## Enumeration - -`Type14Enum` - -## Fields - -| Name | -| --- | -| `SNOWFLAKE` | -| `AMAZONREDSHIFT` | -| `GOOGLEBIGQUERY` | -| `AZURESYNAPSE` | -| `TERADATA` | -| `STARBURST` | -| `SAPHANA` | -| `ORACLEADW` | -| `DATABRICKS` | -| `DENODO` | -| `DREMIO` | - diff --git a/Java/doc/models/type-15-enum.md b/Java/doc/models/type-15-enum.md deleted file mode 100644 index 9c461e414..000000000 --- a/Java/doc/models/type-15-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 15 Enum - -Type of the connect being searched. Valid values: SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - -## Enumeration - -`Type15Enum` - -## Fields - -| Name | -| --- | -| `SNOWFLAKE` | -| `AMAZONREDSHIFT` | -| `GOOGLEBIGQUERY` | -| `AZURESYNAPSE` | -| `TERADATA` | -| `STARBURST` | -| `SAPHANA` | -| `ORACLEADW` | -| `DATABRICKS` | -| `DENODO` | -| `DREMIO` | - diff --git a/Java/doc/models/type-16-enum.md b/Java/doc/models/type-16-enum.md deleted file mode 100644 index 136de4cf8..000000000 --- a/Java/doc/models/type-16-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 16 Enum - -## Enumeration - -`Type16Enum` - -## Fields - -| Name | -| --- | -| `CSV` | -| `XLSX` | -| `PDF` | -| `PNG` | - diff --git a/Java/doc/models/type-18-enum.md b/Java/doc/models/type-18-enum.md deleted file mode 100644 index aa9d5da11..000000000 --- a/Java/doc/models/type-18-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 18 Enum - -Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - -## Enumeration - -`Type18Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/Java/doc/models/type-2-enum.md b/Java/doc/models/type-2-enum.md deleted file mode 100644 index b541e8352..000000000 --- a/Java/doc/models/type-2-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 2 Enum - -Type of the metadata objec - -## Enumeration - -`Type2Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/Java/doc/models/type-3-enum.md b/Java/doc/models/type-3-enum.md deleted file mode 100644 index 6d0e8ed43..000000000 --- a/Java/doc/models/type-3-enum.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Type 3 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type3Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECTALL` | -| `DATAOBJECTWORKSHEET` | -| `DATAOBJECTTABLE` | -| `DATAOBJECTUSERDEFINED` | -| `DATAOBJECTVIEW` | -| `DATAOBJECTCALENDARTABLE` | -| `COLUMNALL` | -| `COLUMNWORKSHEET` | -| `COLUMNTABLE` | -| `COLUMNUSERDEFINED` | -| `COLUMNVIEW` | -| `COLUMNCALENDARTABLE` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/Java/doc/models/type-4-enum.md b/Java/doc/models/type-4-enum.md deleted file mode 100644 index bc1bc7d2a..000000000 --- a/Java/doc/models/type-4-enum.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Type 4 Enum - -## Enumeration - -`Type4Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/Java/doc/models/type-5-enum.md b/Java/doc/models/type-5-enum.md deleted file mode 100644 index 3cfcf3935..000000000 --- a/Java/doc/models/type-5-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Type 5 Enum - -## Enumeration - -`Type5Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECTALL` | -| `DATAOBJECTWORKSHEET` | -| `DATAOBJECTTABLE` | -| `DATAOBJECTUSERDEFINED` | -| `DATAOBJECTVIEW` | -| `DATAOBJECTCALENDARTABLE` | -| `COLUMNALL` | -| `COLUMNWORKSHEET` | -| `COLUMNTABLE` | -| `COLUMNUSERDEFINED` | -| `COLUMNVIEW` | -| `COLUMNCALENDARTABLE` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/Java/doc/models/type-6-enum.md b/Java/doc/models/type-6-enum.md deleted file mode 100644 index ba06eecc3..000000000 --- a/Java/doc/models/type-6-enum.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Type 6 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type6Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USERGROUP` | - diff --git a/Java/doc/models/type-7-enum.md b/Java/doc/models/type-7-enum.md deleted file mode 100644 index 6faa098f0..000000000 --- a/Java/doc/models/type-7-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 7 Enum - -## Enumeration - -`Type7Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/Java/doc/models/type-8-enum.md b/Java/doc/models/type-8-enum.md deleted file mode 100644 index 8587164cd..000000000 --- a/Java/doc/models/type-8-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Type 8 Enum - -## Enumeration - -`Type8Enum` - -## Fields - -| Name | -| --- | -| `UNKNOWN` | -| `LDAPUSER` | -| `SAMLUSER` | -| `OIDCUSER` | -| `LOCALUSER` | - diff --git a/Java/doc/models/type-9-enum.md b/Java/doc/models/type-9-enum.md deleted file mode 100644 index 64cc8e53d..000000000 --- a/Java/doc/models/type-9-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# Type 9 Enum - -Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type9Enum` - -## Fields - -| Name | -| --- | -| `UNKNOWN` | -| `LDAPUSER` | -| `SAMLUSER` | -| `OIDCUSER` | -| `LOCALUSER` | - diff --git a/Java/doc/models/type-enum.md b/Java/doc/models/type-enum.md deleted file mode 100644 index ecf2ffb92..000000000 --- a/Java/doc/models/type-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type Enum - -Type of the metadata object - -## Enumeration - -`TypeEnum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `CONNECTION` | - diff --git a/Java/doc/models/user-name-and-id-input.md b/Java/doc/models/user-name-and-id-input.md deleted file mode 100644 index 15e4b9a11..000000000 --- a/Java/doc/models/user-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID Input - -## Structure - -`UserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Username of the user | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the user | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/user-name-and-id.md b/Java/doc/models/user-name-and-id.md deleted file mode 100644 index 25aa07d35..000000000 --- a/Java/doc/models/user-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID - -## Structure - -`UserNameAndID` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Username of the user | String getName() | setName(String name) | -| `Id` | `String` | Optional | GUID of the user | String getId() | setId(String id) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Java/doc/models/user-response.md b/Java/doc/models/user-response.md deleted file mode 100644 index 76c3c6476..000000000 --- a/Java/doc/models/user-response.md +++ /dev/null @@ -1,83 +0,0 @@ - -# User Response - -## Structure - -`UserResponse` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | Username of the user account | String getName() | setName(String name) | -| `DisplayName` | `String` | Optional | Display name of the user account | String getDisplayName() | setDisplayName(String displayName) | -| `Id` | `String` | Optional | GUID of the user account | String getId() | setId(String id) | -| `Visibility` | `String` | Optional | Visibility of the user account | String getVisibility() | setVisibility(String visibility) | -| `Mail` | `String` | Optional | Email of the user account | String getMail() | setMail(String mail) | -| `Groups` | [`List`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which user account is added | List getGroups() | setGroups(List groups) | -| `Privileges` | `List` | Optional | Privileges assigned to user account | List getPrivileges() | setPrivileges(List privileges) | -| `Orgs` | [`List`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | List getOrgs() | setOrgs(List orgs) | -| `Tags` | `List` | Optional | Tags assigned to the user | List getTags() | setTags(List tags) | -| `State` | `String` | Optional | Indicates if the user account is active or inactive | String getState() | setState(String state) | -| `NotifyOnShare` | `Boolean` | Optional | Indicates if the email should be sent when object is shared with the user | Boolean getNotifyOnShare() | setNotifyOnShare(Boolean notifyOnShare) | -| `ShowWalkMe` | `Boolean` | Optional | Indicates if the walk me should be shown when logging in | Boolean getShowWalkMe() | setShowWalkMe(Boolean showWalkMe) | -| `AnalystOnboardingComplete` | `Boolean` | Optional | Indicates if the onboarding is completed for the user | Boolean getAnalystOnboardingComplete() | setAnalystOnboardingComplete(Boolean analystOnboardingComplete) | -| `FirstLogin` | `Integer` | Optional | Indicates if the use is logging in for the first time | Integer getFirstLogin() | setFirstLogin(Integer firstLogin) | -| `WelcomeEmailSent` | `Boolean` | Optional | Indicates if the welcome email is sent to email associated with the user account | Boolean getWelcomeEmailSent() | setWelcomeEmailSent(Boolean welcomeEmailSent) | -| `IsDeleted` | `Boolean` | Optional | Indicates if the user account is deleted | Boolean getIsDeleted() | setIsDeleted(Boolean isDeleted) | -| `IsHidden` | `Boolean` | Optional | Indicates if the user account is hidden | Boolean getIsHidden() | setIsHidden(Boolean isHidden) | -| `IsExternal` | `Boolean` | Optional | Indicates if the user account is from external system
isDeprecated | Boolean getIsExternal() | setIsExternal(Boolean isExternal) | -| `IsDeprecated` | `Boolean` | Optional | - | Boolean getIsDeprecated() | setIsDeprecated(Boolean isDeprecated) | -| `Complete` | `Boolean` | Optional | Indicates if the all the properties of user account is provided | Boolean getComplete() | setComplete(Boolean complete) | -| `IsSuperUser` | `Boolean` | Optional | Indicates if the user account is super user | Boolean getIsSuperUser() | setIsSuperUser(Boolean isSuperUser) | -| `IsSystemPrincipal` | `Boolean` | Optional | Indicates if the user account is system principal | Boolean getIsSystemPrincipal() | setIsSystemPrincipal(Boolean isSystemPrincipal) | -| `Type` | `String` | Optional | Indicates the type of user account | String getType() | setType(String type) | -| `Parenttype` | `String` | Optional | Indicates the type of parent object | String getParenttype() | setParenttype(String parenttype) | -| `TenantId` | `String` | Optional | Tenant id associated with the user account | String getTenantId() | setTenantId(String tenantId) | -| `IndexVersion` | `Double` | Optional | - | Double getIndexVersion() | setIndexVersion(Double indexVersion) | -| `GenerationNum` | `Double` | Optional | - | Double getGenerationNum() | setGenerationNum(Double generationNum) | -| `Created` | `Double` | Optional | Date and time when user account was created | Double getCreated() | setCreated(Double created) | -| `Modified` | `Double` | Optional | Date and time of last modification of user account | Double getModified() | setModified(Double modified) | -| `Author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getAuthor() | setAuthor(UserNameAndID author) | -| `ModifiedBy` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getModifiedBy() | setModifiedBy(UserNameAndID modifiedBy) | -| `Owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | UserNameAndID getOwner() | setOwner(UserNameAndID owner) | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "orgs": null, - "tags": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "firstLogin": null, - "welcomeEmailSent": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSuperUser": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/Java/doc/models/visibility-1-enum.md b/Java/doc/models/visibility-1-enum.md deleted file mode 100644 index eed90ca3f..000000000 --- a/Java/doc/models/visibility-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 1 Enum - -Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. - -## Enumeration - -`Visibility1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NONSHARABLE` | -| `SHARABLE` | - diff --git a/Java/doc/models/visibility-2-enum.md b/Java/doc/models/visibility-2-enum.md deleted file mode 100644 index 07580f89c..000000000 --- a/Java/doc/models/visibility-2-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 2 Enum - -Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. - -## Enumeration - -`Visibility2Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NONSHARABLE` | -| `SHARABLE` | - diff --git a/Java/doc/models/visibility-enum.md b/Java/doc/models/visibility-enum.md deleted file mode 100644 index 41cfe88e3..000000000 --- a/Java/doc/models/visibility-enum.md +++ /dev/null @@ -1,15 +0,0 @@ - -# Visibility Enum - -## Enumeration - -`VisibilityEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NONSHARABLE` | -| `SHARABLE` | - diff --git a/Java/doc/models/viz-type.md b/Java/doc/models/viz-type.md deleted file mode 100644 index d7bf67231..000000000 --- a/Java/doc/models/viz-type.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Viz Type - -## Structure - -`VizType` - -## Fields - -| Name | Type | Tags | Description | Getter | Setter | -| --- | --- | --- | --- | --- | --- | -| `Name` | `String` | Optional | The name of the visualization | String getName() | setName(String name) | -| `Id` | `String` | Optional | The GUID of the visualization | String getId() | setId(String id) | -| `QuerySql` | `String` | Optional | SQL query associated with the visualization | String getQuerySql() | setQuerySql(String querySql) | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/Java/doc/utility-classes.md b/Java/doc/utility-classes.md deleted file mode 100644 index 773736b45..000000000 --- a/Java/doc/utility-classes.md +++ /dev/null @@ -1,42 +0,0 @@ - -# Utility Classes Documentation - -## ApiHelper Class - -This is a Helper class with commonly used utilities for the SDK. - -### Fields - -| Name | Description | Type | -| --- | --- | --- | -| mapper | Deserialization of Json data. | `ObjectMapper` | - -### Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `serialize(Object obj)` | Json Serialization of a given object. | `String` | -| `deserialize(String json)` | Json deserialization of the given Json string. | `LinkedHashMap` | -| `deserialize(String json, Class clazz)` | Json deserialization of the given Json string. | ` T` | -| `deserialize(String json, TypeReference typeReference)` | JSON Deserialization of the given json string. | ` T` | -| `deserializeArray(String json, Class classArray)` | JSON Deserialization of the given json string. | ` List` | - -## FileWrapper Class - -Class to wrap file and contentType to be sent as part of a HTTP request. - -### Constructors - -| Name | Description | -| --- | --- | -| `FileWrapper(File file)` | Initialization constructor. | -| `FileWrapper(File file, String contentType)` | Initialization constructor. | - -### Methods - -| Name | Description | Return Type | -| --- | --- | --- | -| `getFile()` | File instance. | `File` | -| `getContentType()` | Content type of the file. | `String` | - - diff --git a/Java/pom.xml b/Java/pom.xml deleted file mode 100644 index 3ab6d8ef5..000000000 --- a/Java/pom.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - 4.0.0 - - io.github.thoughtspot - rest-api-sdk-lib - 1.13.1 - jar - - ThoughtSpotPublicRESTAPILib - - - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - org.apache.maven.plugins - maven-enforcer-plugin - [2.0.0,) - - enforce - - - - - true - - - - - - - - - - - - org.codehaus.mojo - versions-maven-plugin - 2.5 - - file://${project.basedir}/version-rules.xml - - - - org.apache.maven.plugins - maven-enforcer-plugin - 3.0.0-M2 - - - enforce-versions - - enforce - - - true - - - 1.8 - - - - - - - - maven-assembly-plugin - - - jar-with-dependencies - - false - - - - - - - 1.8 - 1.8 - UTF-8 - - - - - io.apimatic - core-interfaces - [0.1, 0.2) - - - io.apimatic - core - [0.2, 0.3) - - - io.apimatic - okhttp-client-adapter - [0.1, 0.2) - - - junit - junit - 4.13.1 - test - - - \ No newline at end of file diff --git a/Java/src/main/java/localhost/ApiHelper.java b/Java/src/main/java/localhost/ApiHelper.java deleted file mode 100644 index f2b984e2a..000000000 --- a/Java/src/main/java/localhost/ApiHelper.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -import io.apimatic.core.utilities.CoreHelper; - -/** - * This is a Helper class with commonly used utilities for the SDK. - */ -public class ApiHelper extends CoreHelper { - -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/BearerAuthCredentials.java b/Java/src/main/java/localhost/BearerAuthCredentials.java deleted file mode 100644 index 5a0195a8f..000000000 --- a/Java/src/main/java/localhost/BearerAuthCredentials.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -/** - * Interface to access authentication credentials. - */ -public interface BearerAuthCredentials { - - /** - * String value for accessToken. - * @return accessToken - */ - String getAccessToken(); - - /** - * Checks if provided credentials matched with existing ones. - * @param accessToken String value for credentials. - * @return true if credentials matched. - */ - boolean equals(String accessToken); -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/BearerAuthManager.java b/Java/src/main/java/localhost/BearerAuthManager.java deleted file mode 100644 index 4f92c6ec2..000000000 --- a/Java/src/main/java/localhost/BearerAuthManager.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -import io.apimatic.core.authentication.HeaderAuth; -import java.util.Collections; - -/** - * Utility class for authorization and token management. - */ -public class BearerAuthManager extends HeaderAuth implements BearerAuthCredentials { - - private String accessToken; - - /** - * Constructor. - * @param accessToken String value for accessToken. - */ - public BearerAuthManager(String accessToken) { - super(Collections.singletonMap("Authorization", - "Bearer " + accessToken)); - this.accessToken = accessToken; - } - - /** - * String value for accessToken. - * @return accessToken - */ - public String getAccessToken() { - return accessToken; - } - - /** - * Checks if provided credentials matched with existing ones. - * @param accessToken String value for credentials. - * @return true if credentials matched. - */ - public boolean equals(String accessToken) { - return accessToken.equals(getAccessToken()); - } - - /** - * Converts this BearerAuthManager into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "BearerAuthManager [" + "accessToken=" + accessToken + "]"; - } - -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/CompatibilityFactoryImpl.java b/Java/src/main/java/localhost/CompatibilityFactoryImpl.java deleted file mode 100644 index 01716263b..000000000 --- a/Java/src/main/java/localhost/CompatibilityFactoryImpl.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -import io.apimatic.coreinterfaces.compatibility.CompatibilityFactory; -import io.apimatic.coreinterfaces.http.Context; -import io.apimatic.coreinterfaces.http.HttpHeaders; -import io.apimatic.coreinterfaces.http.Method; -import io.apimatic.coreinterfaces.http.request.Request; -import io.apimatic.coreinterfaces.http.response.ApiResponseType; -import io.apimatic.coreinterfaces.http.response.DynamicType; -import io.apimatic.coreinterfaces.http.response.Response; -import java.io.InputStream; -import java.util.AbstractMap.SimpleEntry; -import java.util.List; -import java.util.Map; -import localhost.http.Headers; -import localhost.http.client.HttpContext; -import localhost.http.request.HttpBodyRequest; -import localhost.http.request.HttpMethod; -import localhost.http.request.HttpRequest; -import localhost.http.response.HttpResponse; -import localhost.http.response.HttpStringResponse; - -public class CompatibilityFactoryImpl implements CompatibilityFactory { - - @Override - public Context createHttpContext(Request request, Response response) { - return new HttpContext((HttpRequest) request, (HttpResponse) response); - } - - @Override - public Request createHttpRequest(Method httpMethod, - StringBuilder queryUrlBuilder, HttpHeaders headers, Map queryParameters, - List> formParameters) { - return new HttpRequest(HttpMethod.valueOf(httpMethod.toString()), queryUrlBuilder, - (Headers) headers, queryParameters, formParameters); - } - - @Override - public Request createHttpRequest(Method httpMethod, - StringBuilder queryUrlBuilder, HttpHeaders headers, Map queryParameters, - Object body) { - return new HttpBodyRequest(HttpMethod.valueOf(httpMethod.toString()), queryUrlBuilder, - (Headers) headers, queryParameters, body); - } - - @Override - public Response createHttpResponse(int code, HttpHeaders headers, InputStream rawBody) { - return new HttpResponse(code, (Headers) headers, rawBody); - } - - @Override - public Response createHttpResponse(int code, HttpHeaders headers, InputStream rawBody, - String body) { - return new HttpStringResponse(code, (Headers) headers, rawBody, body); - } - - @Override - public HttpHeaders createHttpHeaders(Map> headers) { - return new Headers(headers); - } - - @Override - public HttpHeaders createHttpHeaders(HttpHeaders headers) { - return new Headers((Headers) headers); - } - - @Override - public HttpHeaders createHttpHeaders() { - return new Headers(); - } - - @Override - public DynamicType createDynamicResponse(Response httpResponse) { - return null; - } - - @Override - public ApiResponseType createApiResponse(int statusCode, HttpHeaders headers, T result) { - return null; - } - -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/Configuration.java b/Java/src/main/java/localhost/Configuration.java deleted file mode 100644 index 84f46dab6..000000000 --- a/Java/src/main/java/localhost/Configuration.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -import localhost.http.client.ReadonlyHttpClientConfiguration; - -/** - * Configuration Interface for the library. - */ -public interface Configuration { - - /** - * Current API environment. - * @return a copy of environment - */ - Environment getEnvironment(); - - /** - * baseUrl value. - * @return a copy of baseUrl - */ - String getBaseUrl(); - - /** - * Http Client Configuration instance. - * @return a copy of httpClientConfig - */ - ReadonlyHttpClientConfiguration getHttpClientConfig(); - - /** - * The timeout to use for making HTTP requests. The timeout to use for making HTTP requests. - * @return a copy of timeout - */ - long timeout(); - - /** - * OAuth 2.0 Access Token. - * @return accessToken - */ - String getAccessToken(); - - /** - * Get base URI by current environment. - * @param server Server for which to get the base URI - * @return Processed base URI - */ - String getBaseUri(Server server); - - /** - * Get base URI by current environment. - * @return Processed base URI - */ - String getBaseUri(); -} diff --git a/Java/src/main/java/localhost/Environment.java b/Java/src/main/java/localhost/Environment.java deleted file mode 100644 index d6f2fce0a..000000000 --- a/Java/src/main/java/localhost/Environment.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Environment to be used. - */ -public enum Environment { - PRODUCTION; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - PRODUCTION.value = "production"; - - valueMap.put("production", PRODUCTION); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Environment fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Environment values to list of string values. - * @param toConvert The list of Environment values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Environment enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/Server.java b/Java/src/main/java/localhost/Server.java deleted file mode 100644 index b9541eb4b..000000000 --- a/Java/src/main/java/localhost/Server.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Server to be used. - */ -public enum Server { - ENUM_DEFAULT; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ENUM_DEFAULT.value = "default"; - - valueMap.put("default", ENUM_DEFAULT); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Server fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Server values to list of string values. - * @param toConvert The list of Server values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Server enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/ThoughtSpotPublicRESTAPIClient.java b/Java/src/main/java/localhost/ThoughtSpotPublicRESTAPIClient.java deleted file mode 100644 index 3f551aff3..000000000 --- a/Java/src/main/java/localhost/ThoughtSpotPublicRESTAPIClient.java +++ /dev/null @@ -1,495 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost; - -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.authentication.Authentication; -import io.apimatic.coreinterfaces.compatibility.CompatibilityFactory; -import io.apimatic.coreinterfaces.http.HttpClient; -import io.apimatic.okhttpclient.adapter.OkClient; -import java.util.AbstractMap.SimpleEntry; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Consumer; -import localhost.controllers.AdminController; -import localhost.controllers.ConnectionController; -import localhost.controllers.CustomActionsController; -import localhost.controllers.DataController; -import localhost.controllers.DatabaseController; -import localhost.controllers.GroupController; -import localhost.controllers.LogsController; -import localhost.controllers.MaterializationController; -import localhost.controllers.MetadataController; -import localhost.controllers.OrgController; -import localhost.controllers.ReportController; -import localhost.controllers.SecurityController; -import localhost.controllers.SessionController; -import localhost.controllers.UserController; -import localhost.http.client.HttpCallback; -import localhost.http.client.HttpClientConfiguration; -import localhost.http.client.ReadonlyHttpClientConfiguration; - -/** - * Gateway class for the library. - * This class acts as a factory for Controllers. - * It holds the state of the SDK. - */ -public final class ThoughtSpotPublicRESTAPIClient implements Configuration { - - /** - * Private store for controllers. - */ - private UserController user; - private GroupController group; - private MetadataController metadata; - private DatabaseController database; - private ConnectionController connection; - private DataController data; - private LogsController logs; - private CustomActionsController customActions; - private SecurityController security; - private OrgController org; - private SessionController session; - private AdminController admin; - private ReportController report; - private MaterializationController materialization; - - private static final CompatibilityFactory compatibilityFactory = new CompatibilityFactoryImpl(); - - private static String userAgent = "RestAPI V2 SDK"; - - /** - * Current API environment. - */ - private final Environment environment; - - /** - * baseUrl value. - */ - private final String baseUrl; - - /** - * The HTTP Client instance to use for making HTTP requests. - */ - private final HttpClient httpClient; - - /** - * Http Client Configuration instance. - */ - private final ReadonlyHttpClientConfiguration httpClientConfig; - - /** - * BearerAuthManager. - */ - private BearerAuthManager bearerAuthManager; - - /** - * Map of authentication Managers. - */ - private Map authentications; - - - /** - * Callback to be called before and after the HTTP call for an endpoint is made. - */ - private final HttpCallback httpCallback; - - private ThoughtSpotPublicRESTAPIClient(Environment environment, String baseUrl, - HttpClient httpClient, ReadonlyHttpClientConfiguration httpClientConfig, - String accessToken, Map authentications, - HttpCallback httpCallback) { - this.environment = environment; - this.baseUrl = baseUrl; - this.httpClient = httpClient; - this.httpClientConfig = httpClientConfig; - this.httpCallback = httpCallback; - this.authentications = - (authentications == null) ? new HashMap<>() : new HashMap<>(authentications); - if (this.authentications.containsKey("global")) { - this.bearerAuthManager = (BearerAuthManager) this.authentications.get("global"); - } - - if (!this.authentications.containsKey("global") - || !getBearerAuthCredentials().equals(accessToken)) { - this.bearerAuthManager = new BearerAuthManager(accessToken); - this.authentications.put("global", bearerAuthManager); - } - - GlobalConfiguration globalConfig = new GlobalConfiguration.Builder() - .authentication(this.authentications).compatibilityFactory(compatibilityFactory) - .httpClient(httpClient).baseUri(server -> getBaseUri(server)) - .callback(httpCallback) - .userAgent(userAgent) - .build(); - user = new UserController(globalConfig); - group = new GroupController(globalConfig); - metadata = new MetadataController(globalConfig); - database = new DatabaseController(globalConfig); - connection = new ConnectionController(globalConfig); - data = new DataController(globalConfig); - logs = new LogsController(globalConfig); - customActions = new CustomActionsController(globalConfig); - security = new SecurityController(globalConfig); - org = new OrgController(globalConfig); - session = new SessionController(globalConfig); - admin = new AdminController(globalConfig); - report = new ReportController(globalConfig); - materialization = new MaterializationController(globalConfig); - } - - /** - * Shutdown the underlying HttpClient instance. - */ - public static void shutdown() { - OkClient.shutdown(); - } - - /** - * Get the instance of UserController. - * @return user - */ - public UserController getUserController() { - return user; - } - - /** - * Get the instance of GroupController. - * @return group - */ - public GroupController getGroupController() { - return group; - } - - /** - * Get the instance of MetadataController. - * @return metadata - */ - public MetadataController getMetadataController() { - return metadata; - } - - /** - * Get the instance of DatabaseController. - * @return database - */ - public DatabaseController getDatabaseController() { - return database; - } - - /** - * Get the instance of ConnectionController. - * @return connection - */ - public ConnectionController getConnectionController() { - return connection; - } - - /** - * Get the instance of DataController. - * @return data - */ - public DataController getDataController() { - return data; - } - - /** - * Get the instance of LogsController. - * @return logs - */ - public LogsController getLogsController() { - return logs; - } - - /** - * Get the instance of CustomActionsController. - * @return customActions - */ - public CustomActionsController getCustomActionsController() { - return customActions; - } - - /** - * Get the instance of SecurityController. - * @return security - */ - public SecurityController getSecurityController() { - return security; - } - - /** - * Get the instance of OrgController. - * @return org - */ - public OrgController getOrgController() { - return org; - } - - /** - * Get the instance of SessionController. - * @return session - */ - public SessionController getSessionController() { - return session; - } - - /** - * Get the instance of AdminController. - * @return admin - */ - public AdminController getAdminController() { - return admin; - } - - /** - * Get the instance of ReportController. - * @return report - */ - public ReportController getReportController() { - return report; - } - - /** - * Get the instance of MaterializationController. - * @return materialization - */ - public MaterializationController getMaterializationController() { - return materialization; - } - - /** - * Current API environment. - * @return environment - */ - public Environment getEnvironment() { - return environment; - } - - /** - * baseUrl value. - * @return baseUrl - */ - public String getBaseUrl() { - return baseUrl; - } - - /** - * The HTTP Client instance to use for making HTTP requests. - * @return httpClient - */ - private HttpClient getHttpClient() { - return httpClient; - } - - /** - * Http Client Configuration instance. - * @return httpClientConfig - */ - public ReadonlyHttpClientConfiguration getHttpClientConfig() { - return httpClientConfig; - } - - /** - * The credentials to use with BearerAuth. - * @return bearerAuthCredentials - */ - private BearerAuthCredentials getBearerAuthCredentials() { - return bearerAuthManager; - } - - /** - * OAuth 2.0 Access Token. - * @return accessToken - */ - public String getAccessToken() { - return getBearerAuthCredentials().getAccessToken(); - } - /** - * The timeout to use for making HTTP requests. - * @deprecated This method will be removed in a future version. Use - * {@link #getHttpClientConfig()} instead. - * - * @return timeout - */ - @Deprecated - public long timeout() { - return httpClientConfig.getTimeout(); - } - - /** - * Get base URI by current environment. - * @param server Server for which to get the base URI - * @return Processed base URI - */ - public String getBaseUri(Server server) { - Map> parameters = new HashMap<>(); - parameters.put("base-url", - new SimpleEntry(this.baseUrl, false)); - StringBuilder baseUrl = new StringBuilder(environmentMapper(environment, server)); - ApiHelper.appendUrlWithTemplateParameters(baseUrl, parameters); - return baseUrl.toString(); - } - - /** - * Get base URI by current environment. - * @return Processed base URI - */ - public String getBaseUri() { - return getBaseUri(Server.ENUM_DEFAULT); - } - - - /** - * Get base URI by current environment. - * - * @param server string for which to get the base URI - * @return Processed base URI - */ - public String getBaseUri(String server) { - return getBaseUri(Server.fromString(server)); - } - - - /** - * Base URLs by environment and server aliases. - * @param environment Environment for which to get the base URI - * @param server Server for which to get the base URI - * @return base URL - */ - private static String environmentMapper(Environment environment, Server server) { - if (environment.equals(Environment.PRODUCTION)) { - if (server.equals(Server.ENUM_DEFAULT)) { - return "{base-url}"; - } - } - return "{base-url}"; - } - - /** - * Converts this ThoughtSpotPublicRESTAPIClient into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ThoughtSpotPublicRESTAPIClient [" + "environment=" + environment + ", baseUrl=" - + baseUrl + ", httpClientConfig=" + httpClientConfig + ", authentications=" - + authentications + "]"; - } - - /** - * Builds a new {@link ThoughtSpotPublicRESTAPIClient.Builder} object. - * Creates the instance with the state of the current client. - * @return a new {@link ThoughtSpotPublicRESTAPIClient.Builder} object - */ - public Builder newBuilder() { - Builder builder = new Builder(); - builder.environment = getEnvironment(); - builder.baseUrl = getBaseUrl(); - builder.httpClient = getHttpClient(); - builder.accessToken = getBearerAuthCredentials().getAccessToken(); - builder.authentications = authentications; - builder.httpCallback = httpCallback; - builder.httpClientConfig(configBldr -> configBldr = - ((HttpClientConfiguration) httpClientConfig).newBuilder()); - return builder; - } - - /** - * Class to build instances of {@link ThoughtSpotPublicRESTAPIClient}. - */ - public static class Builder { - - private Environment environment = Environment.PRODUCTION; - private String baseUrl = "https://localhost:443"; - private HttpClient httpClient; - private String accessToken = ""; - private Map authentications = null; - private HttpCallback httpCallback = null; - private HttpClientConfiguration.Builder httpClientConfigBuilder = - new HttpClientConfiguration.Builder(); - - - /** - * Credentials setter for BearerAuth. - * @param accessToken String value for accessToken. - * @return Builder - */ - public Builder accessToken(String accessToken) { - if (accessToken == null) { - throw new NullPointerException("AccessToken cannot be null."); - } - this.accessToken = accessToken; - return this; - } - - /** - * Current API environment. - * @param environment The environment for client. - * @return Builder - */ - public Builder environment(Environment environment) { - this.environment = environment; - return this; - } - - /** - * baseUrl value. - * @param baseUrl The baseUrl for client. - * @return Builder - */ - public Builder baseUrl(String baseUrl) { - this.baseUrl = baseUrl; - return this; - } - - /** - * The timeout to use for making HTTP requests. - * @deprecated This method will be removed in a future version. Use - * {@link #httpClientConfig(Consumer) httpClientConfig} instead. - * @param timeout must be greater then 0. - * @return Builder - */ - @Deprecated - public Builder timeout(long timeout) { - this.httpClientConfigBuilder.timeout(timeout); - return this; - } - - /** - * HttpCallback. - * @param httpCallback Callback to be called before and after the HTTP call. - * @return Builder - */ - public Builder httpCallback(HttpCallback httpCallback) { - this.httpCallback = httpCallback; - return this; - } - - /** - * Setter for the Builder of httpClientConfiguration, takes in an operation to be performed - * on the builder instance of HTTP client configuration. - * - * @param action Consumer for the builder of httpClientConfiguration. - * @return Builder - */ - public Builder httpClientConfig(Consumer action) { - action.accept(httpClientConfigBuilder); - return this; - } - - /** - * Builds a new ThoughtSpotPublicRESTAPIClient object using the set fields. - * @return ThoughtSpotPublicRESTAPIClient - */ - public ThoughtSpotPublicRESTAPIClient build() { - HttpClientConfiguration httpClientConfig = httpClientConfigBuilder.build(); - httpClient = new OkClient(httpClientConfig.getConfiguration(), compatibilityFactory); - - return new ThoughtSpotPublicRESTAPIClient(environment, baseUrl, httpClient, - httpClientConfig, accessToken, authentications, httpCallback); - } - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/AdminController.java b/Java/src/main/java/localhost/controllers/AdminController.java deleted file mode 100644 index cc26fe5da..000000000 --- a/Java/src/main/java/localhost/controllers/AdminController.java +++ /dev/null @@ -1,405 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.AdminsyncPrincipalResponse; -import localhost.models.TspublicRestV2AdminAssignauthorRequest; -import localhost.models.TspublicRestV2AdminChangeauthorRequest; -import localhost.models.TspublicRestV2AdminConfigurationUpdateRequest; -import localhost.models.TspublicRestV2AdminForcelogoutRequest; -import localhost.models.TspublicRestV2AdminResetpasswordRequest; -import localhost.models.TspublicRestV2AdminSyncprincipalRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class AdminController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public AdminController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To update the Thoughtspot cluster configuration, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UpdateClusterConfig( - final TspublicRestV2AdminConfigurationUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateClusterConfigRequest(body).execute(); - } - - /** - * To update the Thoughtspot cluster configuration, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UpdateClusterConfigAsync( - final TspublicRestV2AdminConfigurationUpdateRequest body) { - try { - return prepareRestapiV2UpdateClusterConfigRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateClusterConfig. - */ - private ApiCall prepareRestapiV2UpdateClusterConfigRequest( - final TspublicRestV2AdminConfigurationUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/admin/configuration/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To reset the password of a ThoughtSpot user account, use this endpoint. It is mandatory to - * use Authorization header with token of a user with admin access to successfully run this - * endpoint. At least one of User Id or username is mandatory. When both are given, then user id - * will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2ResetUserPassword( - final TspublicRestV2AdminResetpasswordRequest body) throws ApiException, IOException { - return prepareRestapiV2ResetUserPasswordRequest(body).execute(); - } - - /** - * To reset the password of a ThoughtSpot user account, use this endpoint. It is mandatory to - * use Authorization header with token of a user with admin access to successfully run this - * endpoint. At least one of User Id or username is mandatory. When both are given, then user id - * will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2ResetUserPasswordAsync( - final TspublicRestV2AdminResetpasswordRequest body) { - try { - return prepareRestapiV2ResetUserPasswordRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ResetUserPassword. - */ - private ApiCall prepareRestapiV2ResetUserPasswordRequest( - final TspublicRestV2AdminResetpasswordRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/admin/resetpassword") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically synchronize user accounts and user groups from external system with - * ThoughtSpot, use this endpoint. The payload takes principals containing all users and groups - * present in the external system. The users and user groups in Thoughtspot get updated for any - * matching inputs. Any user and user group present in the input, but not present in the - * cluster, gets created in cluster. n You can optionally choose to delete the user and groups - * from the cluster, that are not present in the input. - * @param body Required parameter: Example: - * @return Returns the AdminsyncPrincipalResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public AdminsyncPrincipalResponse restapiV2SyncPrincipal( - final TspublicRestV2AdminSyncprincipalRequest body) throws ApiException, IOException { - return prepareRestapiV2SyncPrincipalRequest(body).execute(); - } - - /** - * To programmatically synchronize user accounts and user groups from external system with - * ThoughtSpot, use this endpoint. The payload takes principals containing all users and groups - * present in the external system. The users and user groups in Thoughtspot get updated for any - * matching inputs. Any user and user group present in the input, but not present in the - * cluster, gets created in cluster. n You can optionally choose to delete the user and groups - * from the cluster, that are not present in the input. - * @param body Required parameter: Example: - * @return Returns the AdminsyncPrincipalResponse response from the API call - */ - public CompletableFuture restapiV2SyncPrincipalAsync( - final TspublicRestV2AdminSyncprincipalRequest body) { - try { - return prepareRestapiV2SyncPrincipalRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SyncPrincipal. - */ - private ApiCall prepareRestapiV2SyncPrincipalRequest( - final TspublicRestV2AdminSyncprincipalRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/admin/syncprincipal") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, AdminsyncPrincipalResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically change the owner of one or several objects from one user account to - * another, use this endpoint. You might want to transfer ownership of objects owned by a user - * to another active user, when the account is removed from the ThoughtSpot application. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2ChangeAuthorOfObjects( - final TspublicRestV2AdminChangeauthorRequest body) throws ApiException, IOException { - return prepareRestapiV2ChangeAuthorOfObjectsRequest(body).execute(); - } - - /** - * To programmatically change the owner of one or several objects from one user account to - * another, use this endpoint. You might want to transfer ownership of objects owned by a user - * to another active user, when the account is removed from the ThoughtSpot application. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2ChangeAuthorOfObjectsAsync( - final TspublicRestV2AdminChangeauthorRequest body) { - try { - return prepareRestapiV2ChangeAuthorOfObjectsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ChangeAuthorOfObjects. - */ - private ApiCall prepareRestapiV2ChangeAuthorOfObjectsRequest( - final TspublicRestV2AdminChangeauthorRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/admin/changeauthor") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically assign an author to one or several objects, use this endpoint. Provide - * either user name or id as input. When both are given user id will be considered. Requires - * administration privilege. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AssignAuthorToObjects( - final TspublicRestV2AdminAssignauthorRequest body) throws ApiException, IOException { - return prepareRestapiV2AssignAuthorToObjectsRequest(body).execute(); - } - - /** - * To programmatically assign an author to one or several objects, use this endpoint. Provide - * either user name or id as input. When both are given user id will be considered. Requires - * administration privilege. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AssignAuthorToObjectsAsync( - final TspublicRestV2AdminAssignauthorRequest body) { - try { - return prepareRestapiV2AssignAuthorToObjectsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AssignAuthorToObjects. - */ - private ApiCall prepareRestapiV2AssignAuthorToObjectsRequest( - final TspublicRestV2AdminAssignauthorRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/admin/assignauthor") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To logout one or more users from logged in session, use this endpoint. If no input is - * provided then all logged in users are force logged out. Requires administration privilege. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2ForceLogoutUsers( - final TspublicRestV2AdminForcelogoutRequest body) throws ApiException, IOException { - return prepareRestapiV2ForceLogoutUsersRequest(body).execute(); - } - - /** - * To logout one or more users from logged in session, use this endpoint. If no input is - * provided then all logged in users are force logged out. Requires administration privilege. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2ForceLogoutUsersAsync( - final TspublicRestV2AdminForcelogoutRequest body) { - try { - return prepareRestapiV2ForceLogoutUsersRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ForceLogoutUsers. - */ - private ApiCall prepareRestapiV2ForceLogoutUsersRequest( - final TspublicRestV2AdminForcelogoutRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/admin/forcelogout") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/BaseController.java b/Java/src/main/java/localhost/controllers/BaseController.java deleted file mode 100644 index ecda9472f..000000000 --- a/Java/src/main/java/localhost/controllers/BaseController.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.HttpClient; -import java.util.HashMap; -import java.util.Map; -import localhost.exceptions.ApiException; -import localhost.http.client.HttpCallback; - -/** - * Base class for all Controllers. - */ -public abstract class BaseController { - protected final static String AUTHENTICATION_KEY = "global"; - protected static final Map> GLOBAL_ERROR_CASES = - new HashMap>(); - private GlobalConfiguration globalConfig; - static { - GLOBAL_ERROR_CASES.put(ErrorCase.DEFAULT, ErrorCase.create("HTTP Response Not OK", - (reason, context) -> new ApiException(reason, context))); - } - - protected BaseController(GlobalConfiguration globalConfig) { - this.globalConfig = globalConfig; - } - - /** - * Get httpCallback associated with this controller. - * @return HttpCallback - */ - public HttpCallback getHttpCallback() { - return (HttpCallback) globalConfig.getHttpCallback(); - } - - /** - * Shared instance of the Http client. - * @return The shared instance of the http client - */ - public HttpClient getClientInstance() { - return globalConfig.getHttpClient(); - } - - /** - * Instance of the Global Configuration - * @return The instance of the global configuration - */ - protected GlobalConfiguration getGlobalConfiguration() { - return globalConfig; - } -} diff --git a/Java/src/main/java/localhost/controllers/ConnectionController.java b/Java/src/main/java/localhost/controllers/ConnectionController.java deleted file mode 100644 index 4748eb850..000000000 --- a/Java/src/main/java/localhost/controllers/ConnectionController.java +++ /dev/null @@ -1,643 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.ConnectionResponse; -import localhost.models.ConnectionTableColumnsResponse; -import localhost.models.ConnectionTableResponse; -import localhost.models.CreateConnectionResponse; -import localhost.models.TspublicRestV2ConnectionAddtableRequest; -import localhost.models.TspublicRestV2ConnectionCreateRequest; -import localhost.models.TspublicRestV2ConnectionRemovetableRequest; -import localhost.models.TspublicRestV2ConnectionSearchRequest; -import localhost.models.TspublicRestV2ConnectionTableRequest; -import localhost.models.TspublicRestV2ConnectionTablecoloumnRequest; -import localhost.models.TspublicRestV2ConnectionUpdateRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class ConnectionController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public ConnectionController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To get the details of a specific connection use this endpoint. - * @param id Required parameter: The GUID of the connection to query - * @return Returns the ConnectionResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public ConnectionResponse restapiV2GetConnection( - final String id) throws ApiException, IOException { - return prepareRestapiV2GetConnectionRequest(id).execute(); - } - - /** - * To get the details of a specific connection use this endpoint. - * @param id Required parameter: The GUID of the connection to query - * @return Returns the ConnectionResponse response from the API call - */ - public CompletableFuture restapiV2GetConnectionAsync( - final String id) { - try { - return prepareRestapiV2GetConnectionRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetConnection. - */ - private ApiCall prepareRestapiV2GetConnectionRequest( - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection") - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, ConnectionResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the list of databases for a connection, use this endpoint. The response will include - * databases from the data platform corresponding to the connection id provided. - * @param id Required parameter: The GUID of the connection - * @return Returns the List of String response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2GetConnectionDatabase( - final String id) throws ApiException, IOException { - return prepareRestapiV2GetConnectionDatabaseRequest(id).execute(); - } - - /** - * To get the list of databases for a connection, use this endpoint. The response will include - * databases from the data platform corresponding to the connection id provided. - * @param id Required parameter: The GUID of the connection - * @return Returns the List of String response from the API call - */ - public CompletableFuture> restapiV2GetConnectionDatabaseAsync( - final String id) { - try { - return prepareRestapiV2GetConnectionDatabaseRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetConnectionDatabase. - */ - private ApiCall, ApiException> prepareRestapiV2GetConnectionDatabaseRequest( - final String id) throws IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/database") - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - String[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically create a connection in the ThoughtSpot system use this API endpoint. - * Using this API, you can create a connection and assign groups. To create a connection, you - * require admin connection privileges. All connections created in the ThoughtSpot system are - * added to ALL_GROUP. - * @param body Required parameter: Example: - * @return Returns the CreateConnectionResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public CreateConnectionResponse restapiV2CreateConnection( - final TspublicRestV2ConnectionCreateRequest body) throws ApiException, IOException { - return prepareRestapiV2CreateConnectionRequest(body).execute(); - } - - /** - * To programmatically create a connection in the ThoughtSpot system use this API endpoint. - * Using this API, you can create a connection and assign groups. To create a connection, you - * require admin connection privileges. All connections created in the ThoughtSpot system are - * added to ALL_GROUP. - * @param body Required parameter: Example: - * @return Returns the CreateConnectionResponse response from the API call - */ - public CompletableFuture restapiV2CreateConnectionAsync( - final TspublicRestV2ConnectionCreateRequest body) { - try { - return prepareRestapiV2CreateConnectionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2CreateConnection. - */ - private ApiCall prepareRestapiV2CreateConnectionRequest( - final TspublicRestV2ConnectionCreateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/create") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, CreateConnectionResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * You can use this endpoint to programmatically modify an existing connection To modify a - * connection, you require admin connection privileges. At least one of Connection Id or - * connectionname is mandatory. When both are given, then connection id will be considered and - * connectionname will be updated. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UpdateConnection( - final TspublicRestV2ConnectionUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateConnectionRequest(body).execute(); - } - - /** - * You can use this endpoint to programmatically modify an existing connection To modify a - * connection, you require admin connection privileges. At least one of Connection Id or - * connectionname is mandatory. When both are given, then connection id will be considered and - * connectionname will be updated. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UpdateConnectionAsync( - final TspublicRestV2ConnectionUpdateRequest body) { - try { - return prepareRestapiV2UpdateConnectionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateConnection. - */ - private ApiCall prepareRestapiV2UpdateConnectionRequest( - final TspublicRestV2ConnectionUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To remove a connection from the ThoughtSpot system, use this endpoint. - * @param id Required parameter: A JSON array of GUIDs of the connection - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2DeleteConnection( - final List id) throws ApiException, IOException { - return prepareRestapiV2DeleteConnectionRequest(id).execute(); - } - - /** - * To remove a connection from the ThoughtSpot system, use this endpoint. - * @param id Required parameter: A JSON array of GUIDs of the connection - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2DeleteConnectionAsync( - final List id) { - try { - return prepareRestapiV2DeleteConnectionRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteConnection. - */ - private ApiCall prepareRestapiV2DeleteConnectionRequest( - final List id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/delete") - .queryParam(param -> param.key("id") - .value(id)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically add table to an existing connection use this endpoint. When you assign - * groups to a connection, the connection inherits the privileges assigned to those groups. At - * least one of Connection Id or connectionname is mandatory. When both are given, then - * connection id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AddTableToConnection( - final TspublicRestV2ConnectionAddtableRequest body) throws ApiException, IOException { - return prepareRestapiV2AddTableToConnectionRequest(body).execute(); - } - - /** - * To programmatically add table to an existing connection use this endpoint. When you assign - * groups to a connection, the connection inherits the privileges assigned to those groups. At - * least one of Connection Id or connectionname is mandatory. When both are given, then - * connection id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AddTableToConnectionAsync( - final TspublicRestV2ConnectionAddtableRequest body) { - try { - return prepareRestapiV2AddTableToConnectionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AddTableToConnection. - */ - private ApiCall prepareRestapiV2AddTableToConnectionRequest( - final TspublicRestV2ConnectionAddtableRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/addtable") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically remove a table from a connection use API endpoint. The API removes only - * the connection association. It does not delete the connection or group from the Thoughtspot - * system. At least one of id or name of connection is required. When both are given connection - * id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2RemoveTableFromConnection( - final TspublicRestV2ConnectionRemovetableRequest body) throws ApiException, IOException { - return prepareRestapiV2RemoveTableFromConnectionRequest(body).execute(); - } - - /** - * To programmatically remove a table from a connection use API endpoint. The API removes only - * the connection association. It does not delete the connection or group from the Thoughtspot - * system. At least one of id or name of connection is required. When both are given connection - * id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2RemoveTableFromConnectionAsync( - final TspublicRestV2ConnectionRemovetableRequest body) { - try { - return prepareRestapiV2RemoveTableFromConnectionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2RemoveTableFromConnection. - */ - private ApiCall prepareRestapiV2RemoveTableFromConnectionRequest( - final TspublicRestV2ConnectionRemovetableRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/removetable") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the details of a specific connection or all connections in the ThoughtSpot system use - * this end point. - * @param body Required parameter: Example: - * @return Returns the List of ConnectionResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2SearchConnection( - final TspublicRestV2ConnectionSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchConnectionRequest(body).execute(); - } - - /** - * To get the details of a specific connection or all connections in the ThoughtSpot system use - * this end point. - * @param body Required parameter: Example: - * @return Returns the List of ConnectionResponse response from the API call - */ - public CompletableFuture> restapiV2SearchConnectionAsync( - final TspublicRestV2ConnectionSearchRequest body) { - try { - return prepareRestapiV2SearchConnectionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchConnection. - */ - private ApiCall, ApiException> prepareRestapiV2SearchConnectionRequest( - final TspublicRestV2ConnectionSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - ConnectionResponse[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the details of tables from a connection, use this endpoint. You can get the details of - * tables in the data platform for the connection id provided. - * @param body Required parameter: Example: - * @return Returns the ConnectionTableResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public ConnectionTableResponse restapiV2GetConnectionTables( - final TspublicRestV2ConnectionTableRequest body) throws ApiException, IOException { - return prepareRestapiV2GetConnectionTablesRequest(body).execute(); - } - - /** - * To get the details of tables from a connection, use this endpoint. You can get the details of - * tables in the data platform for the connection id provided. - * @param body Required parameter: Example: - * @return Returns the ConnectionTableResponse response from the API call - */ - public CompletableFuture restapiV2GetConnectionTablesAsync( - final TspublicRestV2ConnectionTableRequest body) { - try { - return prepareRestapiV2GetConnectionTablesRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetConnectionTables. - */ - private ApiCall prepareRestapiV2GetConnectionTablesRequest( - final TspublicRestV2ConnectionTableRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/table") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, ConnectionTableResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the details of columns in a table associated to a connection, use this endpoint. You - * can get the columns of any table available in the data platform for the connection id - * provided. - * @param body Required parameter: Example: - * @return Returns the ConnectionTableColumnsResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public ConnectionTableColumnsResponse restapiV2GetConnectionTableColumns( - final TspublicRestV2ConnectionTablecoloumnRequest body) throws ApiException, IOException { - return prepareRestapiV2GetConnectionTableColumnsRequest(body).execute(); - } - - /** - * To get the details of columns in a table associated to a connection, use this endpoint. You - * can get the columns of any table available in the data platform for the connection id - * provided. - * @param body Required parameter: Example: - * @return Returns the ConnectionTableColumnsResponse response from the API call - */ - public CompletableFuture restapiV2GetConnectionTableColumnsAsync( - final TspublicRestV2ConnectionTablecoloumnRequest body) { - try { - return prepareRestapiV2GetConnectionTableColumnsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetConnectionTableColumns. - */ - private ApiCall prepareRestapiV2GetConnectionTableColumnsRequest( - final TspublicRestV2ConnectionTablecoloumnRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/connection/tablecoloumn") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, ConnectionTableColumnsResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/CustomActionsController.java b/Java/src/main/java/localhost/controllers/CustomActionsController.java deleted file mode 100644 index 29d7612e0..000000000 --- a/Java/src/main/java/localhost/controllers/CustomActionsController.java +++ /dev/null @@ -1,510 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.TspublicRestV2CustomactionAssociationUpdateRequest; -import localhost.models.TspublicRestV2CustomactionCreateRequest; -import localhost.models.TspublicRestV2CustomactionSearchRequest; -import localhost.models.TspublicRestV2CustomactionUpdateRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class CustomActionsController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public CustomActionsController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To get details of a specific custom action configured in the ThoughtSpot system, use this - * endpoint. - * @param id Required parameter: GUID of the custom action - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2GetCustomAction( - final String id) throws ApiException, IOException { - return prepareRestapiV2GetCustomActionRequest(id).execute(); - } - - /** - * To get details of a specific custom action configured in the ThoughtSpot system, use this - * endpoint. - * @param id Required parameter: GUID of the custom action - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2GetCustomActionAsync( - final String id) { - try { - return prepareRestapiV2GetCustomActionRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetCustomAction. - */ - private ApiCall prepareRestapiV2GetCustomActionRequest( - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customaction") - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To search custom actions available on a ThoughtSpot instance, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2SearchCustomAction( - final TspublicRestV2CustomactionSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchCustomActionRequest(body).execute(); - } - - /** - * To search custom actions available on a ThoughtSpot instance, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2SearchCustomActionAsync( - final TspublicRestV2CustomactionSearchRequest body) { - try { - return prepareRestapiV2SearchCustomActionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchCustomAction. - */ - private ApiCall prepareRestapiV2SearchCustomActionRequest( - final TspublicRestV2CustomactionSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customaction/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To - * get the details of the ThoughtSpot objects associated with a custom action, use this - * endpoint. - * @param id Required parameter: GUID of the custom action - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2GetCustomActionAssociation( - final String id) throws ApiException, IOException { - return prepareRestapiV2GetCustomActionAssociationRequest(id).execute(); - } - - /** - * ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To - * get the details of the ThoughtSpot objects associated with a custom action, use this - * endpoint. - * @param id Required parameter: GUID of the custom action - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2GetCustomActionAssociationAsync( - final String id) { - try { - return prepareRestapiV2GetCustomActionAssociationRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetCustomActionAssociation. - */ - private ApiCall prepareRestapiV2GetCustomActionAssociationRequest( - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customaction/association") - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically create custom actions on ThoughtSpot clusters that support embedding - * configuration, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2CreateCustomAction( - final TspublicRestV2CustomactionCreateRequest body) throws ApiException, IOException { - return prepareRestapiV2CreateCustomActionRequest(body).execute(); - } - - /** - * To programmatically create custom actions on ThoughtSpot clusters that support embedding - * configuration, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2CreateCustomActionAsync( - final TspublicRestV2CustomactionCreateRequest body) { - try { - return prepareRestapiV2CreateCustomActionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2CreateCustomAction. - */ - private ApiCall prepareRestapiV2CreateCustomActionRequest( - final TspublicRestV2CustomactionCreateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customaction/create") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically edit an existing custom action, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2UpdateCustomAction( - final TspublicRestV2CustomactionUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateCustomActionRequest(body).execute(); - } - - /** - * To programmatically edit an existing custom action, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2UpdateCustomActionAsync( - final TspublicRestV2CustomactionUpdateRequest body) { - try { - return prepareRestapiV2UpdateCustomActionRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateCustomAction. - */ - private ApiCall prepareRestapiV2UpdateCustomActionRequest( - final TspublicRestV2CustomactionUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customaction/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically delete a custom action, use this endpoint. - * @param id Required parameter: GUID of the custom action - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2DeleteCustomAction( - final String id) throws ApiException, IOException { - return prepareRestapiV2DeleteCustomActionRequest(id).execute(); - } - - /** - * To programmatically delete a custom action, use this endpoint. - * @param id Required parameter: GUID of the custom action - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2DeleteCustomActionAsync( - final String id) { - try { - return prepareRestapiV2DeleteCustomActionRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteCustomAction. - */ - private ApiCall prepareRestapiV2DeleteCustomActionRequest( - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customaction/delete") - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically associate a custom action to a ThoughtSpot object, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2UpdateCustomActionAssociation( - final TspublicRestV2CustomactionAssociationUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateCustomActionAssociationRequest(body).execute(); - } - - /** - * To programmatically associate a custom action to a ThoughtSpot object, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2UpdateCustomActionAssociationAsync( - final TspublicRestV2CustomactionAssociationUpdateRequest body) { - try { - return prepareRestapiV2UpdateCustomActionAssociationRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateCustomActionAssociation. - */ - private ApiCall prepareRestapiV2UpdateCustomActionAssociationRequest( - final TspublicRestV2CustomactionAssociationUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customaction/association/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To remove custom action associations to ThoughtSpot objects, use this endpoint. - * @param id Required parameter: GUID of the custom action - * @param association Required parameter: A JSON map of the attributes with association of the - * action to ThoughtSpot object ID Example: - * {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet - * action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ - * ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2DeleteCustomActionAssociation( - final String id, - final String association) throws ApiException, IOException { - return prepareRestapiV2DeleteCustomActionAssociationRequest(id, association).execute(); - } - - /** - * To remove custom action associations to ThoughtSpot objects, use this endpoint. - * @param id Required parameter: GUID of the custom action - * @param association Required parameter: A JSON map of the attributes with association of the - * action to ThoughtSpot object ID Example: - * {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet - * action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ - * ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2DeleteCustomActionAssociationAsync( - final String id, - final String association) { - try { - return prepareRestapiV2DeleteCustomActionAssociationRequest(id, association).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteCustomActionAssociation. - */ - private ApiCall prepareRestapiV2DeleteCustomActionAssociationRequest( - final String id, - final String association) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/customactions/association/delete") - .queryParam(param -> param.key("id") - .value(id)) - .queryParam(param -> param.key("association") - .value(association)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/DataController.java b/Java/src/main/java/localhost/controllers/DataController.java deleted file mode 100644 index 1f84ba43d..000000000 --- a/Java/src/main/java/localhost/controllers/DataController.java +++ /dev/null @@ -1,339 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.AnswerQueryResponse; -import localhost.models.LiveboardQueryResponse; -import localhost.models.TspublicRestV2DataAnswerRequest; -import localhost.models.TspublicRestV2DataLiveboardRequest; -import localhost.models.TspublicRestV2DataSearchRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class DataController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public DataController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To programmatically retrieve data from ThoughtSpot using search query string, use this - * endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2SearchQueryData( - final TspublicRestV2DataSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchQueryDataRequest(body).execute(); - } - - /** - * To programmatically retrieve data from ThoughtSpot using search query string, use this - * endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2SearchQueryDataAsync( - final TspublicRestV2DataSearchRequest body) { - try { - return prepareRestapiV2SearchQueryDataRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchQueryData. - */ - private ApiCall prepareRestapiV2SearchQueryDataRequest( - final TspublicRestV2DataSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/data/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can - * use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2LiveboardData( - final TspublicRestV2DataLiveboardRequest body) throws ApiException, IOException { - return prepareRestapiV2LiveboardDataRequest(body).execute(); - } - - /** - * To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can - * use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2LiveboardDataAsync( - final TspublicRestV2DataLiveboardRequest body) { - try { - return prepareRestapiV2LiveboardDataRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2LiveboardData. - */ - private ApiCall prepareRestapiV2LiveboardDataRequest( - final TspublicRestV2DataLiveboardRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/data/liveboard") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2AnswerData( - final TspublicRestV2DataAnswerRequest body) throws ApiException, IOException { - return prepareRestapiV2AnswerDataRequest(body).execute(); - } - - /** - * To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2AnswerDataAsync( - final TspublicRestV2DataAnswerRequest body) { - try { - return prepareRestapiV2AnswerDataRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AnswerData. - */ - private ApiCall prepareRestapiV2AnswerDataRequest( - final TspublicRestV2DataAnswerRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/data/answer") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To retrieve the query SQL related to an Answer that is run on the data platform, you can use - * this endpoint. - * @param id Required parameter: The GUID of the Answer - * @return Returns the AnswerQueryResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public AnswerQueryResponse restapiV2AnswerQuerySql( - final String id) throws ApiException, IOException { - return prepareRestapiV2AnswerQuerySqlRequest(id).execute(); - } - - /** - * To retrieve the query SQL related to an Answer that is run on the data platform, you can use - * this endpoint. - * @param id Required parameter: The GUID of the Answer - * @return Returns the AnswerQueryResponse response from the API call - */ - public CompletableFuture restapiV2AnswerQuerySqlAsync( - final String id) { - try { - return prepareRestapiV2AnswerQuerySqlRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AnswerQuerySql. - */ - private ApiCall prepareRestapiV2AnswerQuerySqlRequest( - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/data/answer/querysql") - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, AnswerQueryResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data - * platform, you can use this endpoint. - * @param id Required parameter: The GUID of the Answer - * @param vizId Optional parameter: A JSON array of GUIDs of the visualizations in the - * Liveboard. - * @return Returns the LiveboardQueryResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public LiveboardQueryResponse restapiV2LiveboardQuerySql( - final String id, - final List vizId) throws ApiException, IOException { - return prepareRestapiV2LiveboardQuerySqlRequest(id, vizId).execute(); - } - - /** - * To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data - * platform, you can use this endpoint. - * @param id Required parameter: The GUID of the Answer - * @param vizId Optional parameter: A JSON array of GUIDs of the visualizations in the - * Liveboard. - * @return Returns the LiveboardQueryResponse response from the API call - */ - public CompletableFuture restapiV2LiveboardQuerySqlAsync( - final String id, - final List vizId) { - try { - return prepareRestapiV2LiveboardQuerySqlRequest(id, vizId).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2LiveboardQuerySql. - */ - private ApiCall prepareRestapiV2LiveboardQuerySqlRequest( - final String id, - final List vizId) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/data/liveboard/querysql") - .queryParam(param -> param.key("id") - .value(id)) - .queryParam(param -> param.key("vizId") - .value(vizId).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, LiveboardQueryResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/DatabaseController.java b/Java/src/main/java/localhost/controllers/DatabaseController.java deleted file mode 100644 index 2d55dbf07..000000000 --- a/Java/src/main/java/localhost/controllers/DatabaseController.java +++ /dev/null @@ -1,346 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.CreateTableResponse; -import localhost.models.TspublicRestV2DatabaseTableCreateRequest; -import localhost.models.TspublicRestV2DatabaseTableRunqueryRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class DatabaseController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public DatabaseController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To list all the schemas in a database in Falcon, use this endpoint. - * @param database Required parameter: Name of the Falcon database - * @return Returns the List of String response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2GetSchemas( - final String database) throws ApiException, IOException { - return prepareRestapiV2GetSchemasRequest(database).execute(); - } - - /** - * To list all the schemas in a database in Falcon, use this endpoint. - * @param database Required parameter: Name of the Falcon database - * @return Returns the List of String response from the API call - */ - public CompletableFuture> restapiV2GetSchemasAsync( - final String database) { - try { - return prepareRestapiV2GetSchemasRequest(database).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetSchemas. - */ - private ApiCall, ApiException> prepareRestapiV2GetSchemasRequest( - final String database) throws IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/database/schema") - .queryParam(param -> param.key("database") - .value(database)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - String[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To list all the tables in a schema of a database in Falcon, use this endpoint. - * @param database Required parameter: Name of the Falcon database - * @param schema Required parameter: Name of the schema in Falcon database - * @return Returns the List of String response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2GetTables( - final String database, - final String schema) throws ApiException, IOException { - return prepareRestapiV2GetTablesRequest(database, schema).execute(); - } - - /** - * To list all the tables in a schema of a database in Falcon, use this endpoint. - * @param database Required parameter: Name of the Falcon database - * @param schema Required parameter: Name of the schema in Falcon database - * @return Returns the List of String response from the API call - */ - public CompletableFuture> restapiV2GetTablesAsync( - final String database, - final String schema) { - try { - return prepareRestapiV2GetTablesRequest(database, schema).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetTables. - */ - private ApiCall, ApiException> prepareRestapiV2GetTablesRequest( - final String database, - final String schema) throws IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/database/table") - .queryParam(param -> param.key("database") - .value(database)) - .queryParam(param -> param.key("schema") - .value(schema)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - String[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * Note: This endpoint is applicable only for on-prem deployments. To provide details of a table - * in a schema of a database in Falcon, use this endpoint. - * @param database Required parameter: Name of the Falcon database - * @param table Required parameter: Name of the table in Falcon database - * @param schema Optional parameter: Name of the schema in Falcon database - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2GetTableDetails( - final String database, - final String table, - final String schema) throws ApiException, IOException { - return prepareRestapiV2GetTableDetailsRequest(database, table, schema).execute(); - } - - /** - * Note: This endpoint is applicable only for on-prem deployments. To provide details of a table - * in a schema of a database in Falcon, use this endpoint. - * @param database Required parameter: Name of the Falcon database - * @param table Required parameter: Name of the table in Falcon database - * @param schema Optional parameter: Name of the schema in Falcon database - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2GetTableDetailsAsync( - final String database, - final String table, - final String schema) { - try { - return prepareRestapiV2GetTableDetailsRequest(database, table, schema).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetTableDetails. - */ - private ApiCall prepareRestapiV2GetTableDetailsRequest( - final String database, - final String table, - final String schema) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/database/table/detail") - .queryParam(param -> param.key("database") - .value(database)) - .queryParam(param -> param.key("table") - .value(table)) - .queryParam(param -> param.key("schema") - .value(schema).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To create a table in Falcon, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the CreateTableResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public CreateTableResponse restapiV2CreateTable( - final TspublicRestV2DatabaseTableCreateRequest body) throws ApiException, IOException { - return prepareRestapiV2CreateTableRequest(body).execute(); - } - - /** - * To create a table in Falcon, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the CreateTableResponse response from the API call - */ - public CompletableFuture restapiV2CreateTableAsync( - final TspublicRestV2DatabaseTableCreateRequest body) { - try { - return prepareRestapiV2CreateTableRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2CreateTable. - */ - private ApiCall prepareRestapiV2CreateTableRequest( - final TspublicRestV2DatabaseTableCreateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/database/table/create") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, CreateTableResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To run a TQL statement in Falcon, use this endpoint. You can run only following type of - * statements - Table DDL alter and Table rows update and delete. - * @param body Required parameter: Example: - * @return Returns the List of Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2RunQuery( - final TspublicRestV2DatabaseTableRunqueryRequest body) throws ApiException, IOException { - return prepareRestapiV2RunQueryRequest(body).execute(); - } - - /** - * To run a TQL statement in Falcon, use this endpoint. You can run only following type of - * statements - Table DDL alter and Table rows update and delete. - * @param body Required parameter: Example: - * @return Returns the List of Object response from the API call - */ - public CompletableFuture> restapiV2RunQueryAsync( - final TspublicRestV2DatabaseTableRunqueryRequest body) { - try { - return prepareRestapiV2RunQueryRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2RunQuery. - */ - private ApiCall, ApiException> prepareRestapiV2RunQueryRequest( - final TspublicRestV2DatabaseTableRunqueryRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/database/table/runquery") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - Object[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/GroupController.java b/Java/src/main/java/localhost/controllers/GroupController.java deleted file mode 100644 index 89d2bd88b..000000000 --- a/Java/src/main/java/localhost/controllers/GroupController.java +++ /dev/null @@ -1,728 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.GroupResponse; -import localhost.models.TspublicRestV2GroupAddgroupRequest; -import localhost.models.TspublicRestV2GroupAddprivilegeRequest; -import localhost.models.TspublicRestV2GroupAdduserRequest; -import localhost.models.TspublicRestV2GroupCreateRequest; -import localhost.models.TspublicRestV2GroupRemovegroupRequest; -import localhost.models.TspublicRestV2GroupRemoveprivilegeRequest; -import localhost.models.TspublicRestV2GroupRemoveuserRequest; -import localhost.models.TspublicRestV2GroupSearchRequest; -import localhost.models.TspublicRestV2GroupUpdateRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class GroupController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public GroupController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To get the details of a specific group by name or id, use this endpoint. At Least one value - * needed. When both are given id will be considered to fetch user information. - * @param name Optional parameter: Name of the group - * @param id Optional parameter: The GUID of the group to query. - * @return Returns the GroupResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public GroupResponse restapiV2GetGroup( - final String name, - final String id) throws ApiException, IOException { - return prepareRestapiV2GetGroupRequest(name, id).execute(); - } - - /** - * To get the details of a specific group by name or id, use this endpoint. At Least one value - * needed. When both are given id will be considered to fetch user information. - * @param name Optional parameter: Name of the group - * @param id Optional parameter: The GUID of the group to query. - * @return Returns the GroupResponse response from the API call - */ - public CompletableFuture restapiV2GetGroupAsync( - final String name, - final String id) { - try { - return prepareRestapiV2GetGroupRequest(name, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetGroup. - */ - private ApiCall prepareRestapiV2GetGroupRequest( - final String name, - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, GroupResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using - * this API, you can create a group and assign privileges and users. For ease of user management - * and access control, ThoughtSpot administrators can create groups and assign privileges to - * these groups. The privileges determine the actions that the users belonging to a group are - * allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new - * group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the - * ALL_GROUP or remove members from it. - * @param body Required parameter: Example: - * @return Returns the GroupResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public GroupResponse restapiV2CreateGroup( - final TspublicRestV2GroupCreateRequest body) throws ApiException, IOException { - return prepareRestapiV2CreateGroupRequest(body).execute(); - } - - /** - * To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using - * this API, you can create a group and assign privileges and users. For ease of user management - * and access control, ThoughtSpot administrators can create groups and assign privileges to - * these groups. The privileges determine the actions that the users belonging to a group are - * allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new - * group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the - * ALL_GROUP or remove members from it. - * @param body Required parameter: Example: - * @return Returns the GroupResponse response from the API call - */ - public CompletableFuture restapiV2CreateGroupAsync( - final TspublicRestV2GroupCreateRequest body) { - try { - return prepareRestapiV2CreateGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2CreateGroup. - */ - private ApiCall prepareRestapiV2CreateGroupRequest( - final TspublicRestV2GroupCreateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/create") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, GroupResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * You can use this endpoint to programmatically modify an existing user account. To modify a - * user, you require admin user privileges. At least one of User Id or username is mandatory. - * When both are given, then user id will be considered and username will be updated. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UpdateGroup( - final TspublicRestV2GroupUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateGroupRequest(body).execute(); - } - - /** - * You can use this endpoint to programmatically modify an existing user account. To modify a - * user, you require admin user privileges. At least one of User Id or username is mandatory. - * When both are given, then user id will be considered and username will be updated. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UpdateGroupAsync( - final TspublicRestV2GroupUpdateRequest body) { - try { - return prepareRestapiV2UpdateGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateGroup. - */ - private ApiCall prepareRestapiV2UpdateGroupRequest( - final TspublicRestV2GroupUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At - * Least one value needed. When both are given user id will be considered to fetch user - * information. - * @param name Optional parameter: Name of the group. - * @param id Optional parameter: The GUID of the group - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2DeleteGroup( - final String name, - final String id) throws ApiException, IOException { - return prepareRestapiV2DeleteGroupRequest(name, id).execute(); - } - - /** - * To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At - * Least one value needed. When both are given user id will be considered to fetch user - * information. - * @param name Optional parameter: Name of the group. - * @param id Optional parameter: The GUID of the group - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2DeleteGroupAsync( - final String name, - final String id) { - try { - return prepareRestapiV2DeleteGroupRequest(name, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteGroup. - */ - private ApiCall prepareRestapiV2DeleteGroupRequest( - final String name, - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/delete") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically add privileges to an existing group, use API endpoint. When you assign - * privileges to a group, all the users under to this group inherits the privileges assigned to - * that group. At least one of id or name of group is required. When both are given user id will - * be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AddPrivilegesToGroup( - final TspublicRestV2GroupAddprivilegeRequest body) throws ApiException, IOException { - return prepareRestapiV2AddPrivilegesToGroupRequest(body).execute(); - } - - /** - * To programmatically add privileges to an existing group, use API endpoint. When you assign - * privileges to a group, all the users under to this group inherits the privileges assigned to - * that group. At least one of id or name of group is required. When both are given user id will - * be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AddPrivilegesToGroupAsync( - final TspublicRestV2GroupAddprivilegeRequest body) { - try { - return prepareRestapiV2AddPrivilegesToGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AddPrivilegesToGroup. - */ - private ApiCall prepareRestapiV2AddPrivilegesToGroupRequest( - final TspublicRestV2GroupAddprivilegeRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/addprivilege") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically remove privileges from a group, use API endpoint. The API removes only - * the privilege association. It does not delete the privilege or group from the Thoughtspot - * system. At least one of id or name of group is required. When both are given user id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2RemovePrivilegesFromGroup( - final TspublicRestV2GroupRemoveprivilegeRequest body) throws ApiException, IOException { - return prepareRestapiV2RemovePrivilegesFromGroupRequest(body).execute(); - } - - /** - * To programmatically remove privileges from a group, use API endpoint. The API removes only - * the privilege association. It does not delete the privilege or group from the Thoughtspot - * system. At least one of id or name of group is required. When both are given user id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2RemovePrivilegesFromGroupAsync( - final TspublicRestV2GroupRemoveprivilegeRequest body) { - try { - return prepareRestapiV2RemovePrivilegesFromGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2RemovePrivilegesFromGroup. - */ - private ApiCall prepareRestapiV2RemovePrivilegesFromGroupRequest( - final TspublicRestV2GroupRemoveprivilegeRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/removeprivilege") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When - * you assign users to a group, the users inherits the privileges assigned to that group. At - * least one of id or name of the group is required. When both are given user id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AddUsersToGroup( - final TspublicRestV2GroupAdduserRequest body) throws ApiException, IOException { - return prepareRestapiV2AddUsersToGroupRequest(body).execute(); - } - - /** - * To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When - * you assign users to a group, the users inherits the privileges assigned to that group. At - * least one of id or name of the group is required. When both are given user id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AddUsersToGroupAsync( - final TspublicRestV2GroupAdduserRequest body) { - try { - return prepareRestapiV2AddUsersToGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AddUsersToGroup. - */ - private ApiCall prepareRestapiV2AddUsersToGroupRequest( - final TspublicRestV2GroupAdduserRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/adduser") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically remove users from a group, use API endpoint.The API removes only the user - * association. It does not delete the users or group from the Thoughtspot system. At least one - * of id or name of group is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2RemoveUsersFromGroup( - final TspublicRestV2GroupRemoveuserRequest body) throws ApiException, IOException { - return prepareRestapiV2RemoveUsersFromGroupRequest(body).execute(); - } - - /** - * To programmatically remove users from a group, use API endpoint.The API removes only the user - * association. It does not delete the users or group from the Thoughtspot system. At least one - * of id or name of group is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2RemoveUsersFromGroupAsync( - final TspublicRestV2GroupRemoveuserRequest body) { - try { - return prepareRestapiV2RemoveUsersFromGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2RemoveUsersFromGroup. - */ - private ApiCall prepareRestapiV2RemoveUsersFromGroupRequest( - final TspublicRestV2GroupRemoveuserRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/removeuser") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically add existing groups to a group, use API endpoint. When you assign groups - * to a group, the group inherits the privileges assigned to those groups. At least one of id or - * name of group is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AddGroupsToGroup( - final TspublicRestV2GroupAddgroupRequest body) throws ApiException, IOException { - return prepareRestapiV2AddGroupsToGroupRequest(body).execute(); - } - - /** - * To programmatically add existing groups to a group, use API endpoint. When you assign groups - * to a group, the group inherits the privileges assigned to those groups. At least one of id or - * name of group is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AddGroupsToGroupAsync( - final TspublicRestV2GroupAddgroupRequest body) { - try { - return prepareRestapiV2AddGroupsToGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AddGroupsToGroup. - */ - private ApiCall prepareRestapiV2AddGroupsToGroupRequest( - final TspublicRestV2GroupAddgroupRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/addgroup") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically remove groups from a group, use API endpoint.The API removes only the - * group association. It does not delete the group from the Thoughtspot system. At least one of - * id or name of group is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2RemoveGroupsFromGroup( - final TspublicRestV2GroupRemovegroupRequest body) throws ApiException, IOException { - return prepareRestapiV2RemoveGroupsFromGroupRequest(body).execute(); - } - - /** - * To programmatically remove groups from a group, use API endpoint.The API removes only the - * group association. It does not delete the group from the Thoughtspot system. At least one of - * id or name of group is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2RemoveGroupsFromGroupAsync( - final TspublicRestV2GroupRemovegroupRequest body) { - try { - return prepareRestapiV2RemoveGroupsFromGroupRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2RemoveGroupsFromGroup. - */ - private ApiCall prepareRestapiV2RemoveGroupsFromGroupRequest( - final TspublicRestV2GroupRemovegroupRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/removegroup") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the details of a specific group account or all groups in the ThoughtSpot system, use - * this end point. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2SearchGroups( - final TspublicRestV2GroupSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchGroupsRequest(body).execute(); - } - - /** - * To get the details of a specific group account or all groups in the ThoughtSpot system, use - * this end point. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2SearchGroupsAsync( - final TspublicRestV2GroupSearchRequest body) { - try { - return prepareRestapiV2SearchGroupsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchGroups. - */ - private ApiCall prepareRestapiV2SearchGroupsRequest( - final TspublicRestV2GroupSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/group/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/LogsController.java b/Java/src/main/java/localhost/controllers/LogsController.java deleted file mode 100644 index 95812ed4e..000000000 --- a/Java/src/main/java/localhost/controllers/LogsController.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.LogsResponse; -import localhost.models.TopicEnum; - -/** - * This class lists all the endpoints of the groups. - */ -public final class LogsController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public LogsController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * Note: This endpoint is applicable only for SAAS deployments. The ThoughtSpot log streaming - * service API allows you to programmatically get a security audit event log from the - * ThoughtSpot system. To use this API, make sure you have admin user privileges. ThoughtSpot - * cloud deployments allow you to collect security audit events and send them to your Security - * information and event management (SIEM) application in real-time. These events can help your - * security operations personnel to detect potential security threats or compromised user - * accounts in your organization. - * @param topic Required parameter: Type of the log - * @param fromEpoch Optional parameter: The EPOCH time in milliseconds to set the start time - * for streaming logs. Example: To set the timestamp as June 1, 2021 8 am, specify - * 1622534400000. - * @param toEpoch Optional parameter: The EPOCH time in milliseconds to set the end time for - * streaming logs. Example: To set the timestamp as July 1, 2021, 8 am, specify - * 1625126400000. - * @return Returns the LogsResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public LogsResponse restapiV2GetLogEvents( - final TopicEnum topic, - final String fromEpoch, - final String toEpoch) throws ApiException, IOException { - return prepareRestapiV2GetLogEventsRequest(topic, fromEpoch, toEpoch).execute(); - } - - /** - * Note: This endpoint is applicable only for SAAS deployments. The ThoughtSpot log streaming - * service API allows you to programmatically get a security audit event log from the - * ThoughtSpot system. To use this API, make sure you have admin user privileges. ThoughtSpot - * cloud deployments allow you to collect security audit events and send them to your Security - * information and event management (SIEM) application in real-time. These events can help your - * security operations personnel to detect potential security threats or compromised user - * accounts in your organization. - * @param topic Required parameter: Type of the log - * @param fromEpoch Optional parameter: The EPOCH time in milliseconds to set the start time - * for streaming logs. Example: To set the timestamp as June 1, 2021 8 am, specify - * 1622534400000. - * @param toEpoch Optional parameter: The EPOCH time in milliseconds to set the end time for - * streaming logs. Example: To set the timestamp as July 1, 2021, 8 am, specify - * 1625126400000. - * @return Returns the LogsResponse response from the API call - */ - public CompletableFuture restapiV2GetLogEventsAsync( - final TopicEnum topic, - final String fromEpoch, - final String toEpoch) { - try { - return prepareRestapiV2GetLogEventsRequest(topic, fromEpoch, toEpoch).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetLogEvents. - */ - private ApiCall prepareRestapiV2GetLogEventsRequest( - final TopicEnum topic, - final String fromEpoch, - final String toEpoch) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/logs/events") - .queryParam(param -> param.key("topic") - .value((topic != null) ? topic.value() : null)) - .queryParam(param -> param.key("fromEpoch") - .value(fromEpoch).isRequired(false)) - .queryParam(param -> param.key("toEpoch") - .value(toEpoch).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, LogsResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/MaterializationController.java b/Java/src/main/java/localhost/controllers/MaterializationController.java deleted file mode 100644 index 348375fe1..000000000 --- a/Java/src/main/java/localhost/controllers/MaterializationController.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.TspublicRestV2MaterializationRefreshviewRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class MaterializationController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public MaterializationController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * Use this endpoint to refresh data in the materialized view by running the query associated - * with it. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2RefreshMaterializedView( - final TspublicRestV2MaterializationRefreshviewRequest body) throws ApiException, IOException { - return prepareRestapiV2RefreshMaterializedViewRequest(body).execute(); - } - - /** - * Use this endpoint to refresh data in the materialized view by running the query associated - * with it. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2RefreshMaterializedViewAsync( - final TspublicRestV2MaterializationRefreshviewRequest body) { - try { - return prepareRestapiV2RefreshMaterializedViewRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2RefreshMaterializedView. - */ - private ApiCall prepareRestapiV2RefreshMaterializedViewRequest( - final TspublicRestV2MaterializationRefreshviewRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/materialization/refreshview") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/MetadataController.java b/Java/src/main/java/localhost/controllers/MetadataController.java deleted file mode 100644 index a41126fa2..000000000 --- a/Java/src/main/java/localhost/controllers/MetadataController.java +++ /dev/null @@ -1,1284 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.HomeLiveboardResponse; -import localhost.models.MetadataTagResponse; -import localhost.models.TspublicRestV2MetadataDependencyRequest; -import localhost.models.TspublicRestV2MetadataDetailSearchRequest; -import localhost.models.TspublicRestV2MetadataFavoriteAssignRequest; -import localhost.models.TspublicRestV2MetadataFavoriteUnassignRequest; -import localhost.models.TspublicRestV2MetadataHeaderSearchRequest; -import localhost.models.TspublicRestV2MetadataHomeliveboardAssignRequest; -import localhost.models.TspublicRestV2MetadataHomeliveboardUnassignRequest; -import localhost.models.TspublicRestV2MetadataTagAssignRequest; -import localhost.models.TspublicRestV2MetadataTagCreateRequest; -import localhost.models.TspublicRestV2MetadataTagUnassignRequest; -import localhost.models.TspublicRestV2MetadataTagUpdateRequest; -import localhost.models.TspublicRestV2MetadataTmlExportRequest; -import localhost.models.TspublicRestV2MetadataTmlImportRequest; -import localhost.models.Type4Enum; -import localhost.models.Type5Enum; - -/** - * This class lists all the endpoints of the groups. - */ -public final class MetadataController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public MetadataController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To get details of a specific tag, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @param name Optional parameter: Name of the tag - * @param id Optional parameter: The GUID of the tag - * @return Returns the MetadataTagResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public MetadataTagResponse restapiV2GetTag( - final String name, - final String id) throws ApiException, IOException { - return prepareRestapiV2GetTagRequest(name, id).execute(); - } - - /** - * To get details of a specific tag, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @param name Optional parameter: Name of the tag - * @param id Optional parameter: The GUID of the tag - * @return Returns the MetadataTagResponse response from the API call - */ - public CompletableFuture restapiV2GetTagAsync( - final String name, - final String id) { - try { - return prepareRestapiV2GetTagRequest(name, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetTag. - */ - private ApiCall prepareRestapiV2GetTagRequest( - final String name, - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tag") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, MetadataTagResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the name and id of liveboard that is set as a home liveboard for a user, use this - * endpoint. At least one of user id or username is required. When both are given, then id will - * be considered. - * @param userName Optional parameter: Name of the tag - * @param userId Optional parameter: The GUID of the tag - * @return Returns the HomeLiveboardResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public HomeLiveboardResponse restapiV2GetHomeLiveboard( - final String userName, - final String userId) throws ApiException, IOException { - return prepareRestapiV2GetHomeLiveboardRequest(userName, userId).execute(); - } - - /** - * To get the name and id of liveboard that is set as a home liveboard for a user, use this - * endpoint. At least one of user id or username is required. When both are given, then id will - * be considered. - * @param userName Optional parameter: Name of the tag - * @param userId Optional parameter: The GUID of the tag - * @return Returns the HomeLiveboardResponse response from the API call - */ - public CompletableFuture restapiV2GetHomeLiveboardAsync( - final String userName, - final String userId) { - try { - return prepareRestapiV2GetHomeLiveboardRequest(userName, userId).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetHomeLiveboard. - */ - private ApiCall prepareRestapiV2GetHomeLiveboardRequest( - final String userName, - final String userId) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/homeliveboard") - .queryParam(param -> param.key("userName") - .value(userName).isRequired(false)) - .queryParam(param -> param.key("userId") - .value(userId).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, HomeLiveboardResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get header details for metadata objects, use this endpoint. You can provide as input - * selective fields to get the data for. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2SearchObjectHeader( - final TspublicRestV2MetadataHeaderSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchObjectHeaderRequest(body).execute(); - } - - /** - * To get header details for metadata objects, use this endpoint. You can provide as input - * selective fields to get the data for. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2SearchObjectHeaderAsync( - final TspublicRestV2MetadataHeaderSearchRequest body) { - try { - return prepareRestapiV2SearchObjectHeaderRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchObjectHeader. - */ - private ApiCall prepareRestapiV2SearchObjectHeaderRequest( - final TspublicRestV2MetadataHeaderSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/header/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * Use this endpoint to get header details of visualization charts for a given liveboard or - * answer. At least one of id or name of liveboard or answer is required. When both are given, - * then id will be considered. - * @param id Required parameter: The GUID of the liveboard or answer - * @return Returns the List of Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2GetObjectVisualizationHeader( - final String id) throws ApiException, IOException { - return prepareRestapiV2GetObjectVisualizationHeaderRequest(id).execute(); - } - - /** - * Use this endpoint to get header details of visualization charts for a given liveboard or - * answer. At least one of id or name of liveboard or answer is required. When both are given, - * then id will be considered. - * @param id Required parameter: The GUID of the liveboard or answer - * @return Returns the List of Object response from the API call - */ - public CompletableFuture> restapiV2GetObjectVisualizationHeaderAsync( - final String id) { - try { - return prepareRestapiV2GetObjectVisualizationHeaderRequest(id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetObjectVisualizationHeader. - */ - private ApiCall, ApiException> prepareRestapiV2GetObjectVisualizationHeaderRequest( - final String id) throws IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/vizheader") - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - Object[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * Use this endpoint to get full details of metadata objects. - * @param type Required parameter: Type of the metadata object being searched. - * @param id Required parameter: A JSON array of GUIDs of the objects. - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2GetObjectDetail( - final Type4Enum type, - final List id) throws ApiException, IOException { - return prepareRestapiV2GetObjectDetailRequest(type, id).execute(); - } - - /** - * Use this endpoint to get full details of metadata objects. - * @param type Required parameter: Type of the metadata object being searched. - * @param id Required parameter: A JSON array of GUIDs of the objects. - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2GetObjectDetailAsync( - final Type4Enum type, - final List id) { - try { - return prepareRestapiV2GetObjectDetailRequest(type, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetObjectDetail. - */ - private ApiCall prepareRestapiV2GetObjectDetailRequest( - final Type4Enum type, - final List id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/detail") - .queryParam(param -> param.key("type") - .value((type != null) ? type.value() : null)) - .queryParam(param -> param.key("id") - .value(id)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get header detail of a metadata object, use this endpoint. You can provide as input - * selective fields to get the data for. - * @param type Required parameter: Type of the metadata object being searched. - * @param id Required parameter: GUID of the metadata object - * @param outputFields Optional parameter: Array of header field names that need to be - * included in the header response - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2GetObjectHeader( - final Type5Enum type, - final String id, - final List outputFields) throws ApiException, IOException { - return prepareRestapiV2GetObjectHeaderRequest(type, id, outputFields).execute(); - } - - /** - * To get header detail of a metadata object, use this endpoint. You can provide as input - * selective fields to get the data for. - * @param type Required parameter: Type of the metadata object being searched. - * @param id Required parameter: GUID of the metadata object - * @param outputFields Optional parameter: Array of header field names that need to be - * included in the header response - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2GetObjectHeaderAsync( - final Type5Enum type, - final String id, - final List outputFields) { - try { - return prepareRestapiV2GetObjectHeaderRequest(type, id, outputFields).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetObjectHeader. - */ - private ApiCall prepareRestapiV2GetObjectHeaderRequest( - final Type5Enum type, - final String id, - final List outputFields) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/header") - .queryParam(param -> param.key("type") - .value((type != null) ? type.value() : null)) - .queryParam(param -> param.key("id") - .value(id)) - .queryParam(param -> param.key("outputFields") - .value(outputFields).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * Use this endpoint to get full details of metadata objects. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2SearchObjectDetail( - final TspublicRestV2MetadataDetailSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchObjectDetailRequest(body).execute(); - } - - /** - * Use this endpoint to get full details of metadata objects. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2SearchObjectDetailAsync( - final TspublicRestV2MetadataDetailSearchRequest body) { - try { - return prepareRestapiV2SearchObjectDetailRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchObjectDetail. - */ - private ApiCall prepareRestapiV2SearchObjectDetailRequest( - final TspublicRestV2MetadataDetailSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/detail/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically create tags, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the MetadataTagResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public MetadataTagResponse restapiV2CreateTag( - final TspublicRestV2MetadataTagCreateRequest body) throws ApiException, IOException { - return prepareRestapiV2CreateTagRequest(body).execute(); - } - - /** - * To programmatically create tags, use this endpoint. - * @param body Required parameter: Example: - * @return Returns the MetadataTagResponse response from the API call - */ - public CompletableFuture restapiV2CreateTagAsync( - final TspublicRestV2MetadataTagCreateRequest body) { - try { - return prepareRestapiV2CreateTagRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2CreateTag. - */ - private ApiCall prepareRestapiV2CreateTagRequest( - final TspublicRestV2MetadataTagCreateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tag/create") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, MetadataTagResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically update tags, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UpdateTag( - final TspublicRestV2MetadataTagUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateTagRequest(body).execute(); - } - - /** - * To programmatically update tags, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UpdateTagAsync( - final TspublicRestV2MetadataTagUpdateRequest body) { - try { - return prepareRestapiV2UpdateTagRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateTag. - */ - private ApiCall prepareRestapiV2UpdateTagRequest( - final TspublicRestV2MetadataTagUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tag/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically delete tags, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @param name Optional parameter: Name of the tag - * @param id Optional parameter: The GUID of the tag - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2DeleteTag( - final String name, - final String id) throws ApiException, IOException { - return prepareRestapiV2DeleteTagRequest(name, id).execute(); - } - - /** - * To programmatically delete tags, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @param name Optional parameter: Name of the tag - * @param id Optional parameter: The GUID of the tag - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2DeleteTagAsync( - final String name, - final String id) { - try { - return prepareRestapiV2DeleteTagRequest(name, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteTag. - */ - private ApiCall prepareRestapiV2DeleteTagRequest( - final String name, - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tag/delete") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically assign tags to a metadata object, such as a liveboard, search answer, - * table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. - * When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AssignTag( - final TspublicRestV2MetadataTagAssignRequest body) throws ApiException, IOException { - return prepareRestapiV2AssignTagRequest(body).execute(); - } - - /** - * To programmatically assign tags to a metadata object, such as a liveboard, search answer, - * table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. - * When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AssignTagAsync( - final TspublicRestV2MetadataTagAssignRequest body) { - try { - return prepareRestapiV2AssignTagRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AssignTag. - */ - private ApiCall prepareRestapiV2AssignTagRequest( - final TspublicRestV2MetadataTagAssignRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tag/assign") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically unassign tags to a metadata object, such as a liveboard, search answer, - * table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. - * When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UnassignTag( - final TspublicRestV2MetadataTagUnassignRequest body) throws ApiException, IOException { - return prepareRestapiV2UnassignTagRequest(body).execute(); - } - - /** - * To programmatically unassign tags to a metadata object, such as a liveboard, search answer, - * table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. - * When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UnassignTagAsync( - final TspublicRestV2MetadataTagUnassignRequest body) { - try { - return prepareRestapiV2UnassignTagRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UnassignTag. - */ - private ApiCall prepareRestapiV2UnassignTagRequest( - final TspublicRestV2MetadataTagUnassignRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tag/unassign") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically assign objects to favorites for a given user account, use this endpoint. - * At least one of user id or username is required. When both are given, then id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AssignFavorite( - final TspublicRestV2MetadataFavoriteAssignRequest body) throws ApiException, IOException { - return prepareRestapiV2AssignFavoriteRequest(body).execute(); - } - - /** - * To programmatically assign objects to favorites for a given user account, use this endpoint. - * At least one of user id or username is required. When both are given, then id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AssignFavoriteAsync( - final TspublicRestV2MetadataFavoriteAssignRequest body) { - try { - return prepareRestapiV2AssignFavoriteRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AssignFavorite. - */ - private ApiCall prepareRestapiV2AssignFavoriteRequest( - final TspublicRestV2MetadataFavoriteAssignRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/favorite/assign") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically unassign objects to favorites for a given user account, use this - * endpoint. At least one of user id or username is required. When both are given, then id will - * be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UnassignFavorite( - final TspublicRestV2MetadataFavoriteUnassignRequest body) throws ApiException, IOException { - return prepareRestapiV2UnassignFavoriteRequest(body).execute(); - } - - /** - * To programmatically unassign objects to favorites for a given user account, use this - * endpoint. At least one of user id or username is required. When both are given, then id will - * be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UnassignFavoriteAsync( - final TspublicRestV2MetadataFavoriteUnassignRequest body) { - try { - return prepareRestapiV2UnassignFavoriteRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UnassignFavorite. - */ - private ApiCall prepareRestapiV2UnassignFavoriteRequest( - final TspublicRestV2MetadataFavoriteUnassignRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/favorite/unassign") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least - * one of user id or username is required. When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AssignHomeLiveboard( - final TspublicRestV2MetadataHomeliveboardAssignRequest body) throws ApiException, IOException { - return prepareRestapiV2AssignHomeLiveboardRequest(body).execute(); - } - - /** - * To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least - * one of user id or username is required. When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AssignHomeLiveboardAsync( - final TspublicRestV2MetadataHomeliveboardAssignRequest body) { - try { - return prepareRestapiV2AssignHomeLiveboardRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AssignHomeLiveboard. - */ - private ApiCall prepareRestapiV2AssignHomeLiveboardRequest( - final TspublicRestV2MetadataHomeliveboardAssignRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/homeliveboard/assign") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To unassign the home liveboard set for a user, use this endpoint. At least one of user id or - * username is required. When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UnassignHomeLiveboard( - final TspublicRestV2MetadataHomeliveboardUnassignRequest body) throws ApiException, IOException { - return prepareRestapiV2UnassignHomeLiveboardRequest(body).execute(); - } - - /** - * To unassign the home liveboard set for a user, use this endpoint. At least one of user id or - * username is required. When both are given, then id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UnassignHomeLiveboardAsync( - final TspublicRestV2MetadataHomeliveboardUnassignRequest body) { - try { - return prepareRestapiV2UnassignHomeLiveboardRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UnassignHomeLiveboard. - */ - private ApiCall prepareRestapiV2UnassignHomeLiveboardRequest( - final TspublicRestV2MetadataHomeliveboardUnassignRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/homeliveboard/unassign") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this - * endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2ExportObjectTML( - final TspublicRestV2MetadataTmlExportRequest body) throws ApiException, IOException { - return prepareRestapiV2ExportObjectTMLRequest(body).execute(); - } - - /** - * To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this - * endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2ExportObjectTMLAsync( - final TspublicRestV2MetadataTmlExportRequest body) { - try { - return prepareRestapiV2ExportObjectTMLRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ExportObjectTML. - */ - private ApiCall prepareRestapiV2ExportObjectTMLRequest( - final TspublicRestV2MetadataTmlExportRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tml/export") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this - * endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2ImportObjectTML( - final TspublicRestV2MetadataTmlImportRequest body) throws ApiException, IOException { - return prepareRestapiV2ImportObjectTMLRequest(body).execute(); - } - - /** - * To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this - * endpoint. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2ImportObjectTMLAsync( - final TspublicRestV2MetadataTmlImportRequest body) { - try { - return prepareRestapiV2ImportObjectTMLRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ImportObjectTML. - */ - private ApiCall prepareRestapiV2ImportObjectTMLRequest( - final TspublicRestV2MetadataTmlImportRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/tml/import") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * Use this endpoint to delete the metadata objects. - * @param type Required parameter: Type of the metadata object being searched - * @param id Required parameter: A JSON array of GUIDs of the objects - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2DeleteObject( - final Type4Enum type, - final List id) throws ApiException, IOException { - return prepareRestapiV2DeleteObjectRequest(type, id).execute(); - } - - /** - * Use this endpoint to delete the metadata objects. - * @param type Required parameter: Type of the metadata object being searched - * @param id Required parameter: A JSON array of GUIDs of the objects - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2DeleteObjectAsync( - final Type4Enum type, - final List id) { - try { - return prepareRestapiV2DeleteObjectRequest(type, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteObject. - */ - private ApiCall prepareRestapiV2DeleteObjectRequest( - final Type4Enum type, - final List id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/delete") - .queryParam(param -> param.key("type") - .value((type != null) ? type.value() : null)) - .queryParam(param -> param.key("id") - .value(id)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To query the details of dependent objects and associate objects as dependents, you can use - * this API. Dependency is defined as relation between referenced and referencing objects. A - * referencing object is said to have a dependency on a referenced object, if the referenced - * object cannot be deleted without first deleting the referencing object. For example, consider - * a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base - * logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency - * on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to - * delete C2 without first deleting W1 because deletion of C2 will be prevented by the - * relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 - * i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete - * C2 without first deleting C1. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2GetObjectDependency( - final TspublicRestV2MetadataDependencyRequest body) throws ApiException, IOException { - return prepareRestapiV2GetObjectDependencyRequest(body).execute(); - } - - /** - * To query the details of dependent objects and associate objects as dependents, you can use - * this API. Dependency is defined as relation between referenced and referencing objects. A - * referencing object is said to have a dependency on a referenced object, if the referenced - * object cannot be deleted without first deleting the referencing object. For example, consider - * a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base - * logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency - * on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to - * delete C2 without first deleting W1 because deletion of C2 will be prevented by the - * relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 - * i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete - * C2 without first deleting C1. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2GetObjectDependencyAsync( - final TspublicRestV2MetadataDependencyRequest body) { - try { - return prepareRestapiV2GetObjectDependencyRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetObjectDependency. - */ - private ApiCall prepareRestapiV2GetObjectDependencyRequest( - final TspublicRestV2MetadataDependencyRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/metadata/dependency") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/OrgController.java b/Java/src/main/java/localhost/controllers/OrgController.java deleted file mode 100644 index c8b8af94d..000000000 --- a/Java/src/main/java/localhost/controllers/OrgController.java +++ /dev/null @@ -1,355 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.OrgsResponse; -import localhost.models.TspublicRestV2OrgCreateRequest; -import localhost.models.TspublicRestV2OrgSearchRequest; -import localhost.models.TspublicRestV2OrgUpdateRequest; - -/** - * This class lists all the endpoints of the groups. - */ -public final class OrgController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public OrgController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To get the details of a specific organization by name or id, use this endpoint. At least one - * value needed. When both are given,then id will be considered to fetch organization - * information. Requires Administration privilege for tenant. - * @param name Optional parameter: Name of the organization. - * @param id Optional parameter: The ID of the organization. - * @return Returns the OrgsResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public OrgsResponse restapiV2GetOrg( - final String name, - final Integer id) throws ApiException, IOException { - return prepareRestapiV2GetOrgRequest(name, id).execute(); - } - - /** - * To get the details of a specific organization by name or id, use this endpoint. At least one - * value needed. When both are given,then id will be considered to fetch organization - * information. Requires Administration privilege for tenant. - * @param name Optional parameter: Name of the organization. - * @param id Optional parameter: The ID of the organization. - * @return Returns the OrgsResponse response from the API call - */ - public CompletableFuture restapiV2GetOrgAsync( - final String name, - final Integer id) { - try { - return prepareRestapiV2GetOrgRequest(name, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetOrg. - */ - private ApiCall prepareRestapiV2GetOrgRequest( - final String name, - final Integer id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/org") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, OrgsResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically create an organization in the ThoughtSpot system, use this API endpoint. - * Requires Administration privilege for tenant. - * @param body Required parameter: Example: - * @return Returns the OrgsResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public OrgsResponse restapiV2CreateOrg( - final TspublicRestV2OrgCreateRequest body) throws ApiException, IOException { - return prepareRestapiV2CreateOrgRequest(body).execute(); - } - - /** - * To programmatically create an organization in the ThoughtSpot system, use this API endpoint. - * Requires Administration privilege for tenant. - * @param body Required parameter: Example: - * @return Returns the OrgsResponse response from the API call - */ - public CompletableFuture restapiV2CreateOrgAsync( - final TspublicRestV2OrgCreateRequest body) { - try { - return prepareRestapiV2CreateOrgRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2CreateOrg. - */ - private ApiCall prepareRestapiV2CreateOrgRequest( - final TspublicRestV2OrgCreateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/org/create") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, OrgsResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * You can use this endpoint to programmatically modify an existing org. Provide name or id of - * the organization to update the properties. When both id and name are given, then id will be - * considered and name of the organization will be updated. Requires Administration privilege - * for tenant. - * @param body Required parameter: Example: - * @return Returns the OrgsResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public OrgsResponse restapiV2UpdateOrg( - final TspublicRestV2OrgUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateOrgRequest(body).execute(); - } - - /** - * You can use this endpoint to programmatically modify an existing org. Provide name or id of - * the organization to update the properties. When both id and name are given, then id will be - * considered and name of the organization will be updated. Requires Administration privilege - * for tenant. - * @param body Required parameter: Example: - * @return Returns the OrgsResponse response from the API call - */ - public CompletableFuture restapiV2UpdateOrgAsync( - final TspublicRestV2OrgUpdateRequest body) { - try { - return prepareRestapiV2UpdateOrgRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateOrg. - */ - private ApiCall prepareRestapiV2UpdateOrgRequest( - final TspublicRestV2OrgUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/org/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, OrgsResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To remove an organization from the ThoughtSpot system, send a DELETE request to this - * endpoint. At least one value is needed. When both id and name are given, then id will be - * considered. Requires Administration privilege for tenant. - * @param name Optional parameter: Name of the organization. - * @param id Optional parameter: The ID of the organization. - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2DeleteOrg( - final String name, - final Integer id) throws ApiException, IOException { - return prepareRestapiV2DeleteOrgRequest(name, id).execute(); - } - - /** - * To remove an organization from the ThoughtSpot system, send a DELETE request to this - * endpoint. At least one value is needed. When both id and name are given, then id will be - * considered. Requires Administration privilege for tenant. - * @param name Optional parameter: Name of the organization. - * @param id Optional parameter: The ID of the organization. - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2DeleteOrgAsync( - final String name, - final Integer id) { - try { - return prepareRestapiV2DeleteOrgRequest(name, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteOrg. - */ - private ApiCall prepareRestapiV2DeleteOrgRequest( - final String name, - final Integer id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/org/delete") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the details of a specific organization or all organizations in the ThoughtSpot system - * use this end point. If no input is provided, then all organizations are included in the - * response. Requires Administration privilege for tenant. - * @param body Required parameter: Example: - * @return Returns the List of OrgsResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2SearchOrgs( - final TspublicRestV2OrgSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchOrgsRequest(body).execute(); - } - - /** - * To get the details of a specific organization or all organizations in the ThoughtSpot system - * use this end point. If no input is provided, then all organizations are included in the - * response. Requires Administration privilege for tenant. - * @param body Required parameter: Example: - * @return Returns the List of OrgsResponse response from the API call - */ - public CompletableFuture> restapiV2SearchOrgsAsync( - final TspublicRestV2OrgSearchRequest body) { - try { - return prepareRestapiV2SearchOrgsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchOrgs. - */ - private ApiCall, ApiException> prepareRestapiV2SearchOrgsRequest( - final TspublicRestV2OrgSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/org/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - OrgsResponse[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/ReportController.java b/Java/src/main/java/localhost/controllers/ReportController.java deleted file mode 100644 index 9c622191a..000000000 --- a/Java/src/main/java/localhost/controllers/ReportController.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.PdfOptionsInput; -import localhost.models.Type16Enum; - -/** - * This class lists all the endpoints of the groups. - */ -public final class ReportController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public ReportController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To programmatically download Answer data as a file, use this endpoint. The PDF will download - * data in the tabular format even if Answer is saved as chart. - * @param id Required parameter: GUID of the Answer to download. - * @param type Required parameter: Type of file to be generated. - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2AnswerReport( - final String id, - final Type16Enum type) throws ApiException, IOException { - return prepareRestapiV2AnswerReportRequest(id, type).execute(); - } - - /** - * To programmatically download Answer data as a file, use this endpoint. The PDF will download - * data in the tabular format even if Answer is saved as chart. - * @param id Required parameter: GUID of the Answer to download. - * @param type Required parameter: Type of file to be generated. - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2AnswerReportAsync( - final String id, - final Type16Enum type) { - try { - return prepareRestapiV2AnswerReportRequest(id, type).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AnswerReport. - */ - private ApiCall prepareRestapiV2AnswerReportRequest( - final String id, - final Type16Enum type) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/report/answer") - .queryParam(param -> param.key("id") - .value(id)) - .queryParam(param -> param.key("type") - .value((type != null) ? type.value() : null)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically download Liveboard data or specific Visualization data from Liveboard as - * a file, use this endpoint. - * @param type Required parameter: Type of file to be generated. Valid values: - * CSV/XLSX/PDF/PNG. - * @param id Optional parameter: GUID of the Liveboard to download. This field is considered - * only when no input is provided for transientContent field. - * @param vizId Optional parameter: JSON Array of GUIDs of the visualizations in the Liveboard - * to be included in the downloaded file. For CSV, XLSX and PNG file download, - * visualization id is mandatory. CSV and XLSX is valid only for visualization of type - * table and PNG is valid for charts. Only one value will be accepted for these formats. - * If multiple values are provided then first value in the array will be considered. - * @param transientContent Optional parameter: If you have embedded ThoughtSpot in your host - * application, and you want to download Liveboards with unsaved changes as a file, pass - * the transient content from the browser fetch request, using the - * getExportRequestForCurrentPinboard method. For more information, see - * https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard. - * @param runtimeFilter Optional parameter: If you have embedded ThoughtSpot in your host - * application, and you want to download Liveboards with unsaved changes as a file, pass - * the transient content from the browser fetch request, using the - * getExportRequestForCurrentPinboard method. For more information, see - * https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard - * . - * @param runtimeSort Optional parameter: JSON object which provides columns to sort the data - * at the time of data retrieval. Example: - * {"sortCol1":"region","asc1":true,"sortCol2":"date"} For more information, see - * https://developers.thoughtspot.com/docs/?pageid=runtime-filters - * @param pdfOptions Optional parameter: Additional options that are applicable for PDF type. - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2LiveboardReport( - final Type16Enum type, - final String id, - final List vizId, - final String transientContent, - final String runtimeFilter, - final String runtimeSort, - final PdfOptionsInput pdfOptions) throws ApiException, IOException { - return prepareRestapiV2LiveboardReportRequest(type, id, vizId, transientContent, - runtimeFilter, runtimeSort, pdfOptions).execute(); - } - - /** - * To programmatically download Liveboard data or specific Visualization data from Liveboard as - * a file, use this endpoint. - * @param type Required parameter: Type of file to be generated. Valid values: - * CSV/XLSX/PDF/PNG. - * @param id Optional parameter: GUID of the Liveboard to download. This field is considered - * only when no input is provided for transientContent field. - * @param vizId Optional parameter: JSON Array of GUIDs of the visualizations in the Liveboard - * to be included in the downloaded file. For CSV, XLSX and PNG file download, - * visualization id is mandatory. CSV and XLSX is valid only for visualization of type - * table and PNG is valid for charts. Only one value will be accepted for these formats. - * If multiple values are provided then first value in the array will be considered. - * @param transientContent Optional parameter: If you have embedded ThoughtSpot in your host - * application, and you want to download Liveboards with unsaved changes as a file, pass - * the transient content from the browser fetch request, using the - * getExportRequestForCurrentPinboard method. For more information, see - * https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard. - * @param runtimeFilter Optional parameter: If you have embedded ThoughtSpot in your host - * application, and you want to download Liveboards with unsaved changes as a file, pass - * the transient content from the browser fetch request, using the - * getExportRequestForCurrentPinboard method. For more information, see - * https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard - * . - * @param runtimeSort Optional parameter: JSON object which provides columns to sort the data - * at the time of data retrieval. Example: - * {"sortCol1":"region","asc1":true,"sortCol2":"date"} For more information, see - * https://developers.thoughtspot.com/docs/?pageid=runtime-filters - * @param pdfOptions Optional parameter: Additional options that are applicable for PDF type. - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2LiveboardReportAsync( - final Type16Enum type, - final String id, - final List vizId, - final String transientContent, - final String runtimeFilter, - final String runtimeSort, - final PdfOptionsInput pdfOptions) { - try { - return prepareRestapiV2LiveboardReportRequest(type, id, vizId, transientContent, runtimeFilter, - runtimeSort, pdfOptions).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2LiveboardReport. - */ - private ApiCall prepareRestapiV2LiveboardReportRequest( - final Type16Enum type, - final String id, - final List vizId, - final String transientContent, - final String runtimeFilter, - final String runtimeSort, - final PdfOptionsInput pdfOptions) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/report/liveboard") - .queryParam(param -> param.key("type") - .value((type != null) ? type.value() : null)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .queryParam(param -> param.key("vizId") - .value(vizId).isRequired(false)) - .queryParam(param -> param.key("transientContent") - .value(transientContent).isRequired(false)) - .queryParam(param -> param.key("runtimeFilter") - .value(runtimeFilter).isRequired(false)) - .queryParam(param -> param.key("runtimeSort") - .value(runtimeSort).isRequired(false)) - .queryParam(param -> param.key("pdfOptions") - .value(pdfOptions).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/SecurityController.java b/Java/src/main/java/localhost/controllers/SecurityController.java deleted file mode 100644 index 33b00aea6..000000000 --- a/Java/src/main/java/localhost/controllers/SecurityController.java +++ /dev/null @@ -1,456 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.PrincipalSearchResponse; -import localhost.models.SecurityPermissionResponse; -import localhost.models.TspublicRestV2SecurityPermissionPrincipalSearchRequest; -import localhost.models.TspublicRestV2SecurityPermissionTsobjectSearchRequest; -import localhost.models.TspublicRestV2SecurityShareTsobjectRequest; -import localhost.models.TspublicRestV2SecurityShareVisualizationRequest; -import localhost.models.Type7Enum; - -/** - * This class lists all the endpoints of the groups. - */ -public final class SecurityController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public SecurityController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To list the permissions for user and user groups on an object, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * You can optionally see the permission on the dependent objects as well by enabling - * includeDependent field. - * @param id Required parameter: GUID of the metadata object for which the permission needs to - * be obtained. - * @param type Required parameter: Type of metadata object. Valid values: - * Liveboard|Answer|DataObject|Column - * @param includeDependent Optional parameter: When this field is set to true, the API returns - * the permission details for the dependent objects for the the object included in the - * request - * @return Returns the SecurityPermissionResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public SecurityPermissionResponse restapiV2GetPermissionOnObject( - final String id, - final Type7Enum type, - final Boolean includeDependent) throws ApiException, IOException { - return prepareRestapiV2GetPermissionOnObjectRequest(id, type, includeDependent).execute(); - } - - /** - * To list the permissions for user and user groups on an object, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * You can optionally see the permission on the dependent objects as well by enabling - * includeDependent field. - * @param id Required parameter: GUID of the metadata object for which the permission needs to - * be obtained. - * @param type Required parameter: Type of metadata object. Valid values: - * Liveboard|Answer|DataObject|Column - * @param includeDependent Optional parameter: When this field is set to true, the API returns - * the permission details for the dependent objects for the the object included in the - * request - * @return Returns the SecurityPermissionResponse response from the API call - */ - public CompletableFuture restapiV2GetPermissionOnObjectAsync( - final String id, - final Type7Enum type, - final Boolean includeDependent) { - try { - return prepareRestapiV2GetPermissionOnObjectRequest(id, type, includeDependent).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetPermissionOnObject. - */ - private ApiCall prepareRestapiV2GetPermissionOnObjectRequest( - final String id, - final Type7Enum type, - final Boolean includeDependent) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/security/permission/tsobject") - .queryParam(param -> param.key("id") - .value(id)) - .queryParam(param -> param.key("type") - .value((type != null) ? type.value() : null)) - .queryParam(param -> param.key("includeDependent") - .value(includeDependent).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, SecurityPermissionResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * Use this endpoint to list the objects on which a user or user group has permission. The - * response will include only those objects on which the user or user group has either VIEW OR - * MODIFY permission. Requires administration privilege. - * @param id Optional parameter: GUID of the user or user group for which the object - * permission needs to be obtained - * @param name Optional parameter: Name of the ser or user group for which the object - * permission needs to be obtained - * @return Returns the PrincipalSearchResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public PrincipalSearchResponse restapiV2GetPermissionForPrincipal( - final String id, - final String name) throws ApiException, IOException { - return prepareRestapiV2GetPermissionForPrincipalRequest(id, name).execute(); - } - - /** - * Use this endpoint to list the objects on which a user or user group has permission. The - * response will include only those objects on which the user or user group has either VIEW OR - * MODIFY permission. Requires administration privilege. - * @param id Optional parameter: GUID of the user or user group for which the object - * permission needs to be obtained - * @param name Optional parameter: Name of the ser or user group for which the object - * permission needs to be obtained - * @return Returns the PrincipalSearchResponse response from the API call - */ - public CompletableFuture restapiV2GetPermissionForPrincipalAsync( - final String id, - final String name) { - try { - return prepareRestapiV2GetPermissionForPrincipalRequest(id, name).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetPermissionForPrincipal. - */ - private ApiCall prepareRestapiV2GetPermissionForPrincipalRequest( - final String id, - final String name) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/security/permission/principal") - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, PrincipalSearchResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically share ThoughtSpot objects with another user or user group, use this - * endpoint. When you share an object like a Liveboard or visualization, a notification with a - * live link is sent to the user. When the users access this object, they can view the last - * saved version of the object. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2ShareObject( - final TspublicRestV2SecurityShareTsobjectRequest body) throws ApiException, IOException { - return prepareRestapiV2ShareObjectRequest(body).execute(); - } - - /** - * To programmatically share ThoughtSpot objects with another user or user group, use this - * endpoint. When you share an object like a Liveboard or visualization, a notification with a - * live link is sent to the user. When the users access this object, they can view the last - * saved version of the object. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2ShareObjectAsync( - final TspublicRestV2SecurityShareTsobjectRequest body) { - try { - return prepareRestapiV2ShareObjectRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ShareObject. - */ - private ApiCall prepareRestapiV2ShareObjectRequest( - final TspublicRestV2SecurityShareTsobjectRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/security/share/tsobject") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * If you want to share a specific visualization from a Liveboard with another user or user - * group, then use this endpoint. Requires privilege to share the visualization. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2ShareVisualization( - final TspublicRestV2SecurityShareVisualizationRequest body) throws ApiException, IOException { - return prepareRestapiV2ShareVisualizationRequest(body).execute(); - } - - /** - * If you want to share a specific visualization from a Liveboard with another user or user - * group, then use this endpoint. Requires privilege to share the visualization. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2ShareVisualizationAsync( - final TspublicRestV2SecurityShareVisualizationRequest body) { - try { - return prepareRestapiV2ShareVisualizationRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ShareVisualization. - */ - private ApiCall prepareRestapiV2ShareVisualizationRequest( - final TspublicRestV2SecurityShareVisualizationRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/security/share/visualization") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To list the permissions for user and user groups on a list of objects, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * You can either provide list of object ids or type of objects to list the permissions for. One - * of these inputs is mandatory. If both are provided then only object ids will be considred. - * You can optionally provide users or user groups for which the persmission needs to be - * displayed. You can optionally see the permission on the dependent objects as well by enabling - * includeDependent field. Requires administration privilege. - * @param body Required parameter: Example: - * @return Returns the List of SecurityPermissionResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2SearchPermissionOnObjects( - final TspublicRestV2SecurityPermissionTsobjectSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchPermissionOnObjectsRequest(body).execute(); - } - - /** - * To list the permissions for user and user groups on a list of objects, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * You can either provide list of object ids or type of objects to list the permissions for. One - * of these inputs is mandatory. If both are provided then only object ids will be considred. - * You can optionally provide users or user groups for which the persmission needs to be - * displayed. You can optionally see the permission on the dependent objects as well by enabling - * includeDependent field. Requires administration privilege. - * @param body Required parameter: Example: - * @return Returns the List of SecurityPermissionResponse response from the API call - */ - public CompletableFuture> restapiV2SearchPermissionOnObjectsAsync( - final TspublicRestV2SecurityPermissionTsobjectSearchRequest body) { - try { - return prepareRestapiV2SearchPermissionOnObjectsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchPermissionOnObjects. - */ - private ApiCall, ApiException> prepareRestapiV2SearchPermissionOnObjectsRequest( - final TspublicRestV2SecurityPermissionTsobjectSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/security/permission/tsobject/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - SecurityPermissionResponse[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To list the permissions for user and user groups on a list of objects, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * You can either provide list of object ids or type of objects to list the permissions for. One - * of these inputs is mandatory. If both are provided then only object ids will be considred. - * You can optionally provide users or user groups for which the persmission needs to be - * displayed. You can optionally see the permission on the dependent objects as well by enabling - * includeDependent field. Requires administration privilege. - * @param body Required parameter: Example: - * @return Returns the List of PrincipalSearchResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public List restapiV2SearchPermissionForPrincipals( - final TspublicRestV2SecurityPermissionPrincipalSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchPermissionForPrincipalsRequest(body).execute(); - } - - /** - * To list the permissions for user and user groups on a list of objects, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * You can either provide list of object ids or type of objects to list the permissions for. One - * of these inputs is mandatory. If both are provided then only object ids will be considred. - * You can optionally provide users or user groups for which the persmission needs to be - * displayed. You can optionally see the permission on the dependent objects as well by enabling - * includeDependent field. Requires administration privilege. - * @param body Required parameter: Example: - * @return Returns the List of PrincipalSearchResponse response from the API call - */ - public CompletableFuture> restapiV2SearchPermissionForPrincipalsAsync( - final TspublicRestV2SecurityPermissionPrincipalSearchRequest body) { - try { - return prepareRestapiV2SearchPermissionForPrincipalsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchPermissionForPrincipals. - */ - private ApiCall, ApiException> prepareRestapiV2SearchPermissionForPrincipalsRequest( - final TspublicRestV2SecurityPermissionPrincipalSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder, ApiException>() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/security/permission/principal/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserializeArray(response, - PrincipalSearchResponse[].class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/SessionController.java b/Java/src/main/java/localhost/controllers/SessionController.java deleted file mode 100644 index 49a454a58..000000000 --- a/Java/src/main/java/localhost/controllers/SessionController.java +++ /dev/null @@ -1,240 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.AccessLevelEnum; -import localhost.models.SessionLoginResponse; - -/** - * This class lists all the endpoints of the groups. - */ -public final class SessionController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public SessionController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * You can programmatically create login session for a user in ThoughtSpot using this endpoint. - * You can create session by either providing userName and password as inputs in this request - * body or by including "Authorization" header with the token generated through the endpoint - * /tspublic/rest/v2/session/gettoken. userName and password input is given precedence over - * "Authorization" header, when both are included in the request. - * @param userName Optional parameter: Username of the user account - * @param password Optional parameter: The password of the user account - * @param rememberMe Optional parameter: A flag to remember the user session. When set to - * true, sets a session cookie that persists in subsequent API calls. - * @return Returns the SessionLoginResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public SessionLoginResponse restapiV2Login( - final String userName, - final String password, - final Boolean rememberMe) throws ApiException, IOException { - return prepareRestapiV2LoginRequest(userName, password, rememberMe).execute(); - } - - /** - * You can programmatically create login session for a user in ThoughtSpot using this endpoint. - * You can create session by either providing userName and password as inputs in this request - * body or by including "Authorization" header with the token generated through the endpoint - * /tspublic/rest/v2/session/gettoken. userName and password input is given precedence over - * "Authorization" header, when both are included in the request. - * @param userName Optional parameter: Username of the user account - * @param password Optional parameter: The password of the user account - * @param rememberMe Optional parameter: A flag to remember the user session. When set to - * true, sets a session cookie that persists in subsequent API calls. - * @return Returns the SessionLoginResponse response from the API call - */ - public CompletableFuture restapiV2LoginAsync( - final String userName, - final String password, - final Boolean rememberMe) { - try { - return prepareRestapiV2LoginRequest(userName, password, rememberMe).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2Login. - */ - private ApiCall prepareRestapiV2LoginRequest( - final String userName, - final String password, - final Boolean rememberMe) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/session/login") - .queryParam(param -> param.key("userName") - .value(userName).isRequired(false)) - .queryParam(param -> param.key("password") - .value(password).isRequired(false)) - .queryParam(param -> param.key("rememberMe") - .value(rememberMe).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, SessionLoginResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically create session token for a user in ThoughtSpot, use this endpoint. You - * can generate the token for a user by providing password or secret key from the cluster. You - * need to enable trusted authentication to generate secret key. To generate secret key, follow - * below steps. 1. Click the Develop tab. 2. Under Customizations, click Settings. 3. To enable - * trusted authentication, turn on the toggle. 4. A secret_key for trusted authentication is - * generated. 5. Click the clipboard icon to copy the token. Password is given precedence over - * secretKey input, when both are included in the request. - * @param userName Required parameter: Username of the user account - * @param password Optional parameter: The password of the user account - * @param secretKey Optional parameter: The secret key string provided by the ThoughtSpot - * application server. ThoughtSpot generates this secret key when you enable trusted - * authentication. - * @param accessLevel Optional parameter: User access privilege. FULL - Creates a session with - * full access. REPORT_BOOK_VIEW - Allow view access to the specified visualizations. - * @param tsObjectId Optional parameter: GUID of the ThoughtSpot object. If you have set the - * accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or - * visualization object. - * @param tokenExpiryDuration Optional parameter: Duration in seconds after which the token - * expires - * @param orgId Optional parameter: Id of the organization to be associated with the user - * login. If no input is provided then last logged in organization will be considered - * @return Returns the SessionLoginResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public SessionLoginResponse restapiV2GetToken( - final String userName, - final String password, - final String secretKey, - final AccessLevelEnum accessLevel, - final String tsObjectId, - final String tokenExpiryDuration, - final String orgId) throws ApiException, IOException { - return prepareRestapiV2GetTokenRequest(userName, password, secretKey, accessLevel, - tsObjectId, tokenExpiryDuration, orgId).execute(); - } - - /** - * To programmatically create session token for a user in ThoughtSpot, use this endpoint. You - * can generate the token for a user by providing password or secret key from the cluster. You - * need to enable trusted authentication to generate secret key. To generate secret key, follow - * below steps. 1. Click the Develop tab. 2. Under Customizations, click Settings. 3. To enable - * trusted authentication, turn on the toggle. 4. A secret_key for trusted authentication is - * generated. 5. Click the clipboard icon to copy the token. Password is given precedence over - * secretKey input, when both are included in the request. - * @param userName Required parameter: Username of the user account - * @param password Optional parameter: The password of the user account - * @param secretKey Optional parameter: The secret key string provided by the ThoughtSpot - * application server. ThoughtSpot generates this secret key when you enable trusted - * authentication. - * @param accessLevel Optional parameter: User access privilege. FULL - Creates a session with - * full access. REPORT_BOOK_VIEW - Allow view access to the specified visualizations. - * @param tsObjectId Optional parameter: GUID of the ThoughtSpot object. If you have set the - * accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or - * visualization object. - * @param tokenExpiryDuration Optional parameter: Duration in seconds after which the token - * expires - * @param orgId Optional parameter: Id of the organization to be associated with the user - * login. If no input is provided then last logged in organization will be considered - * @return Returns the SessionLoginResponse response from the API call - */ - public CompletableFuture restapiV2GetTokenAsync( - final String userName, - final String password, - final String secretKey, - final AccessLevelEnum accessLevel, - final String tsObjectId, - final String tokenExpiryDuration, - final String orgId) { - try { - return prepareRestapiV2GetTokenRequest(userName, password, secretKey, accessLevel, tsObjectId, - tokenExpiryDuration, orgId).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetToken. - */ - private ApiCall prepareRestapiV2GetTokenRequest( - final String userName, - final String password, - final String secretKey, - final AccessLevelEnum accessLevel, - final String tsObjectId, - final String tokenExpiryDuration, - final String orgId) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/session/gettoken") - .queryParam(param -> param.key("userName") - .value(userName)) - .queryParam(param -> param.key("password") - .value(password).isRequired(false)) - .queryParam(param -> param.key("secretKey") - .value(secretKey).isRequired(false)) - .queryParam(param -> param.key("accessLevel") - .value((accessLevel != null) ? accessLevel.value() : null).isRequired(false)) - .queryParam(param -> param.key("tsObjectId") - .value(tsObjectId).isRequired(false)) - .queryParam(param -> param.key("tokenExpiryDuration") - .value(tokenExpiryDuration).isRequired(false)) - .queryParam(param -> param.key("orgId") - .value(orgId).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, SessionLoginResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/controllers/UserController.java b/Java/src/main/java/localhost/controllers/UserController.java deleted file mode 100644 index fb781c5eb..000000000 --- a/Java/src/main/java/localhost/controllers/UserController.java +++ /dev/null @@ -1,712 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import com.fasterxml.jackson.core.JsonProcessingException; -import io.apimatic.core.ApiCall; -import io.apimatic.core.ErrorCase; -import io.apimatic.core.GlobalConfiguration; -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import localhost.ApiHelper; -import localhost.Server; -import localhost.exceptions.ApiException; -import localhost.exceptions.ErrorResponseException; -import localhost.http.request.HttpMethod; -import localhost.models.GroupNameAndIDInput; -import localhost.models.StateEnum; -import localhost.models.TspublicRestV2UserAddgroupRequest; -import localhost.models.TspublicRestV2UserAddorgRequest; -import localhost.models.TspublicRestV2UserChangepasswordRequest; -import localhost.models.TspublicRestV2UserRemovegroupRequest; -import localhost.models.TspublicRestV2UserSearchRequest; -import localhost.models.TspublicRestV2UserUpdateRequest; -import localhost.models.Type8Enum; -import localhost.models.UserResponse; -import localhost.models.VisibilityEnum; - -/** - * This class lists all the endpoints of the groups. - */ -public final class UserController extends BaseController { - - /** - * Initializes the controller. - * @param globalConfig Configurations added in client. - */ - public UserController(GlobalConfiguration globalConfig) { - super(globalConfig); - } - - /** - * To get the details of a specific user account by username or user id, use this endpoint. At - * Least one value is needed. When both are given, user id will be considered to fetch user - * information. - * @param name Optional parameter: Username of the user that you want to query. - * @param id Optional parameter: The GUID of the user account to query - * @return Returns the UserResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public UserResponse restapiV2GetUser( - final String name, - final String id) throws ApiException, IOException { - return prepareRestapiV2GetUserRequest(name, id).execute(); - } - - /** - * To get the details of a specific user account by username or user id, use this endpoint. At - * Least one value is needed. When both are given, user id will be considered to fetch user - * information. - * @param name Optional parameter: Username of the user that you want to query. - * @param id Optional parameter: The GUID of the user account to query - * @return Returns the UserResponse response from the API call - */ - public CompletableFuture restapiV2GetUserAsync( - final String name, - final String id) { - try { - return prepareRestapiV2GetUserRequest(name, id).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2GetUser. - */ - private ApiCall prepareRestapiV2GetUserRequest( - final String name, - final String id) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, UserResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically create a user account in the ThoughtSpot system use this API endpoint. - * Using this API, you can create a user and assign groups. To create a user, you require admin - * user privileges. All users created in the ThoughtSpot system are added to ALL_GROUP. - * @param name Required parameter: Name of the user. The username string must be unique. - * @param displayName Required parameter: A unique display name string for the user account, - * usually their first and last name - * @param password Required parameter: Password for the user account. - * @param visibility Optional parameter: Visibility of the user. The visibility attribute is - * set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to - * other users and user groups, and this allows them to share objects - * @param mail Optional parameter: Email of the user account - * @param orgIds Optional parameter: Array of org identifiers. If no value is provided then - * user will be created in the organization associated with the login session. - * @param groups Optional parameter: Array of objects of groups that the user belong to. - * @param state Optional parameter: Status of user account. acitve or inactive. - * @param notifyOnShare Optional parameter: User preference for receiving email notifications - * when another ThoughtSpot user shares answers or pinboards. - * @param showWalkMe Optional parameter: The user preference for revisiting the onboarding - * experience. - * @param analystOnboardingComplete Optional parameter: ThoughtSpot provides an interactive - * guided walkthrough to onboard new users. The onboarding experience leads users - * through a set of actions to help users get started and accomplish their tasks - * quickly. The users can turn off the Onboarding experience and access it again when - * they need assistance with the ThoughtSpot UI. - * @param type Optional parameter: Type of user. LOCAL_USER indicates that the user is created - * locally in the ThoughtSpot system. - * @return Returns the UserResponse response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public UserResponse restapiV2CreateUser( - final String name, - final String displayName, - final String password, - final VisibilityEnum visibility, - final String mail, - final List orgIds, - final List groups, - final StateEnum state, - final Boolean notifyOnShare, - final Boolean showWalkMe, - final Boolean analystOnboardingComplete, - final Type8Enum type) throws ApiException, IOException { - return prepareRestapiV2CreateUserRequest(name, displayName, password, visibility, mail, - orgIds, groups, state, notifyOnShare, showWalkMe, analystOnboardingComplete, - type).execute(); - } - - /** - * To programmatically create a user account in the ThoughtSpot system use this API endpoint. - * Using this API, you can create a user and assign groups. To create a user, you require admin - * user privileges. All users created in the ThoughtSpot system are added to ALL_GROUP. - * @param name Required parameter: Name of the user. The username string must be unique. - * @param displayName Required parameter: A unique display name string for the user account, - * usually their first and last name - * @param password Required parameter: Password for the user account. - * @param visibility Optional parameter: Visibility of the user. The visibility attribute is - * set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to - * other users and user groups, and this allows them to share objects - * @param mail Optional parameter: Email of the user account - * @param orgIds Optional parameter: Array of org identifiers. If no value is provided then - * user will be created in the organization associated with the login session. - * @param groups Optional parameter: Array of objects of groups that the user belong to. - * @param state Optional parameter: Status of user account. acitve or inactive. - * @param notifyOnShare Optional parameter: User preference for receiving email notifications - * when another ThoughtSpot user shares answers or pinboards. - * @param showWalkMe Optional parameter: The user preference for revisiting the onboarding - * experience. - * @param analystOnboardingComplete Optional parameter: ThoughtSpot provides an interactive - * guided walkthrough to onboard new users. The onboarding experience leads users - * through a set of actions to help users get started and accomplish their tasks - * quickly. The users can turn off the Onboarding experience and access it again when - * they need assistance with the ThoughtSpot UI. - * @param type Optional parameter: Type of user. LOCAL_USER indicates that the user is created - * locally in the ThoughtSpot system. - * @return Returns the UserResponse response from the API call - */ - public CompletableFuture restapiV2CreateUserAsync( - final String name, - final String displayName, - final String password, - final VisibilityEnum visibility, - final String mail, - final List orgIds, - final List groups, - final StateEnum state, - final Boolean notifyOnShare, - final Boolean showWalkMe, - final Boolean analystOnboardingComplete, - final Type8Enum type) { - try { - return prepareRestapiV2CreateUserRequest(name, displayName, password, visibility, mail, orgIds, - groups, state, notifyOnShare, showWalkMe, analystOnboardingComplete, - type).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2CreateUser. - */ - private ApiCall prepareRestapiV2CreateUserRequest( - final String name, - final String displayName, - final String password, - final VisibilityEnum visibility, - final String mail, - final List orgIds, - final List groups, - final StateEnum state, - final Boolean notifyOnShare, - final Boolean showWalkMe, - final Boolean analystOnboardingComplete, - final Type8Enum type) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/create") - .queryParam(param -> param.key("name") - .value(name)) - .queryParam(param -> param.key("displayName") - .value(displayName)) - .queryParam(param -> param.key("password") - .value(password)) - .queryParam(param -> param.key("visibility") - .value((visibility != null) ? visibility.value() : null).isRequired(false)) - .queryParam(param -> param.key("mail") - .value(mail).isRequired(false)) - .queryParam(param -> param.key("orgIds") - .value(orgIds).isRequired(false)) - .queryParam(param -> param.key("groups") - .value(groups).isRequired(false)) - .queryParam(param -> param.key("state") - .value((state != null) ? state.value() : null).isRequired(false)) - .queryParam(param -> param.key("notifyOnShare") - .value(notifyOnShare).isRequired(false)) - .queryParam(param -> param.key("showWalkMe") - .value(showWalkMe).isRequired(false)) - .queryParam(param -> param.key("analystOnboardingComplete") - .value(analystOnboardingComplete).isRequired(false)) - .queryParam(param -> param.key("type") - .value((type != null) ? type.value() : null).isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.GET)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> ApiHelper.deserialize(response, UserResponse.class)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * You can use this endpoint to programmatically modify an existing user account. To modify a - * user, you require admin user privileges. At least one of User Id or username is mandatory. - * When both are given, then user id will be considered and username will be updated. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2UpdateUser( - final TspublicRestV2UserUpdateRequest body) throws ApiException, IOException { - return prepareRestapiV2UpdateUserRequest(body).execute(); - } - - /** - * You can use this endpoint to programmatically modify an existing user account. To modify a - * user, you require admin user privileges. At least one of User Id or username is mandatory. - * When both are given, then user id will be considered and username will be updated. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2UpdateUserAsync( - final TspublicRestV2UserUpdateRequest body) { - try { - return prepareRestapiV2UpdateUserRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2UpdateUser. - */ - private ApiCall prepareRestapiV2UpdateUserRequest( - final TspublicRestV2UserUpdateRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/update") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To remove a user from the ThoughtSpot system, use this endpoint. At Least one value needed. - * When both are given user id will be considered to delete user. - * @param name Optional parameter: Username of the user that you want to query. - * @param id Optional parameter: The GUID of the user account to query - * @param orgId Optional parameter: Unique identifier of the organization from which the user - * would be deleted. If no value is provided then user will be deleted from the - * organization associated with the login session. - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2DeleteUser( - final String name, - final String id, - final Integer orgId) throws ApiException, IOException { - return prepareRestapiV2DeleteUserRequest(name, id, orgId).execute(); - } - - /** - * To remove a user from the ThoughtSpot system, use this endpoint. At Least one value needed. - * When both are given user id will be considered to delete user. - * @param name Optional parameter: Username of the user that you want to query. - * @param id Optional parameter: The GUID of the user account to query - * @param orgId Optional parameter: Unique identifier of the organization from which the user - * would be deleted. If no value is provided then user will be deleted from the - * organization associated with the login session. - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2DeleteUserAsync( - final String name, - final String id, - final Integer orgId) { - try { - return prepareRestapiV2DeleteUserRequest(name, id, orgId).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2DeleteUser. - */ - private ApiCall prepareRestapiV2DeleteUserRequest( - final String name, - final String id, - final Integer orgId) throws IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/delete") - .queryParam(param -> param.key("name") - .value(name).isRequired(false)) - .queryParam(param -> param.key("id") - .value(id).isRequired(false)) - .queryParam(param -> param.key("orgId") - .value(orgId).isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.DELETE)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically add groups to an existing ThoughtSpot user use this endpoint. When you - * assign groups to a user, the user inherits the privileges assigned to those groups. At least - * one of User Id or username is mandatory. When both are given, then user id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AddUserToGroups( - final TspublicRestV2UserAddgroupRequest body) throws ApiException, IOException { - return prepareRestapiV2AddUserToGroupsRequest(body).execute(); - } - - /** - * To programmatically add groups to an existing ThoughtSpot user use this endpoint. When you - * assign groups to a user, the user inherits the privileges assigned to those groups. At least - * one of User Id or username is mandatory. When both are given, then user id will be - * considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AddUserToGroupsAsync( - final TspublicRestV2UserAddgroupRequest body) { - try { - return prepareRestapiV2AddUserToGroupsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AddUserToGroups. - */ - private ApiCall prepareRestapiV2AddUserToGroupsRequest( - final TspublicRestV2UserAddgroupRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/addgroup") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. - * The API removes only the user association. It does not delete the user or group from the - * Thoughtspot system At least one of User Id or username is mandatory. When both are given, - * then user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2RemoveUserFromGroups( - final TspublicRestV2UserRemovegroupRequest body) throws ApiException, IOException { - return prepareRestapiV2RemoveUserFromGroupsRequest(body).execute(); - } - - /** - * To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. - * The API removes only the user association. It does not delete the user or group from the - * Thoughtspot system At least one of User Id or username is mandatory. When both are given, - * then user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2RemoveUserFromGroupsAsync( - final TspublicRestV2UserRemovegroupRequest body) { - try { - return prepareRestapiV2RemoveUserFromGroupsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2RemoveUserFromGroups. - */ - private ApiCall prepareRestapiV2RemoveUserFromGroupsRequest( - final TspublicRestV2UserRemovegroupRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/removegroup") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To get the details of a specific user account or all users in the ThoughtSpot system use this - * end point. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Object restapiV2SearchUsers( - final TspublicRestV2UserSearchRequest body) throws ApiException, IOException { - return prepareRestapiV2SearchUsersRequest(body).execute(); - } - - /** - * To get the details of a specific user account or all users in the ThoughtSpot system use this - * end point. - * @param body Required parameter: Example: - * @return Returns the Object response from the API call - */ - public CompletableFuture restapiV2SearchUsersAsync( - final TspublicRestV2UserSearchRequest body) { - try { - return prepareRestapiV2SearchUsersRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2SearchUsers. - */ - private ApiCall prepareRestapiV2SearchUsersRequest( - final TspublicRestV2UserSearchRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/search") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .headerParam(param -> param.key("accept").value("application/json")) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.POST)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> response) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To change the password of a ThoughtSpot user account, use this endpoint. At least one of id - * or name of user is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2ChangePasswordOfUser( - final TspublicRestV2UserChangepasswordRequest body) throws ApiException, IOException { - return prepareRestapiV2ChangePasswordOfUserRequest(body).execute(); - } - - /** - * To change the password of a ThoughtSpot user account, use this endpoint. At least one of id - * or name of user is required. When both are given user id will be considered. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2ChangePasswordOfUserAsync( - final TspublicRestV2UserChangepasswordRequest body) { - try { - return prepareRestapiV2ChangePasswordOfUserRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2ChangePasswordOfUser. - */ - private ApiCall prepareRestapiV2ChangePasswordOfUserRequest( - final TspublicRestV2UserChangepasswordRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/changepassword") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } - - /** - * To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. - * At least one of id or name of the organization is required. When both are given, then - * organization id will be considered. Requires Administration access for the organization to - * which users need to be added. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - * @throws ApiException Represents error response from the server. - * @throws IOException Signals that an I/O exception of some sort has occurred. - */ - public Boolean restapiV2AddUserToOrgs( - final TspublicRestV2UserAddorgRequest body) throws ApiException, IOException { - return prepareRestapiV2AddUserToOrgsRequest(body).execute(); - } - - /** - * To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. - * At least one of id or name of the organization is required. When both are given, then - * organization id will be considered. Requires Administration access for the organization to - * which users need to be added. - * @param body Required parameter: Example: - * @return Returns the Boolean response from the API call - */ - public CompletableFuture restapiV2AddUserToOrgsAsync( - final TspublicRestV2UserAddorgRequest body) { - try { - return prepareRestapiV2AddUserToOrgsRequest(body).executeAsync(); - } catch (Exception e) { - throw new CompletionException(e); - } - } - - /** - * Builds the ApiCall object for restapiV2AddUserToOrgs. - */ - private ApiCall prepareRestapiV2AddUserToOrgsRequest( - final TspublicRestV2UserAddorgRequest body) throws JsonProcessingException, IOException { - return new ApiCall.Builder() - .globalConfig(getGlobalConfiguration()) - .requestBuilder(requestBuilder -> requestBuilder - .server(Server.ENUM_DEFAULT.value()) - .path("/tspublic/rest/v2/user/addorg") - .bodyParam(param -> param.value(body)) - .bodySerializer(() -> ApiHelper.serialize(body)) - .headerParam(param -> param.key("Content-Type") - .value("application/json").isRequired(false)) - .authenticationKey(BaseController.AUTHENTICATION_KEY) - .httpMethod(HttpMethod.PUT)) - .responseHandler(responseHandler -> responseHandler - .deserializer( - response -> Boolean.parseBoolean(response)) - .nullify404(false) - .localErrorCase("500", - ErrorCase.create("Operation failed", - (reason, context) -> new ErrorResponseException(reason, context))) - .globalErrorCase(GLOBAL_ERROR_CASES)) - .endpointConfiguration(param -> param - .arraySerializationFormat(ArraySerializationFormat.PLAIN -)) - .build(); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/exceptions/ApiException.java b/Java/src/main/java/localhost/exceptions/ApiException.java deleted file mode 100644 index 63c1f56ed..000000000 --- a/Java/src/main/java/localhost/exceptions/ApiException.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.exceptions; - -import io.apimatic.core.types.CoreApiException; -import io.apimatic.coreinterfaces.http.Context; - -/** - * This is the base class for all exceptions that represent an error response from the server. - */ -public class ApiException extends CoreApiException { - //UID for serialization - private static final long serialVersionUID = 1L; - - //private fields - - /** - * Initialization constructor. - * @param reason The reason for throwing exception - */ - public ApiException(String reason) { - super(reason); - // TODO Auto-generated constructor stub - } - - /** - * Initialization constructor. - * @param reason The reason for throwing exception - * @param context The http context of the API exception - */ - public ApiException(String reason, Context context) { - super(reason, context); - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/exceptions/ErrorResponseException.java b/Java/src/main/java/localhost/exceptions/ErrorResponseException.java deleted file mode 100644 index a4270195b..000000000 --- a/Java/src/main/java/localhost/exceptions/ErrorResponseException.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.exceptions; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.coreinterfaces.http.Context; - -/** - * This is a model class for ErrorResponseException type. - */ -public class ErrorResponseException extends ApiException { - private static final long serialVersionUID = -108367321895728840L; - private Object error; - - /** - * Initialization constructor. - * @param reason The reason for throwing exception - * @param context The context of the API exception - */ - public ErrorResponseException(String reason, Context context) { - super(reason, context); - } - - - /** - * Getter for Error. - * @return Returns the Object - */ - @JsonGetter("error") - public Object getError() { - return this.error; - } - - /** - * Setter for Error. - * @param error Value for Object - */ - @JsonSetter("error") - private void setError(Object error) { - this.error = error; - } -} diff --git a/Java/src/main/java/localhost/http/Headers.java b/Java/src/main/java/localhost/http/Headers.java deleted file mode 100644 index 67e8c81b6..000000000 --- a/Java/src/main/java/localhost/http/Headers.java +++ /dev/null @@ -1,243 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; -import io.apimatic.coreinterfaces.http.HttpHeaders; - -/** - * Class for creating and managing HTTP Headers. - */ -public class Headers implements HttpHeaders { - private Map> headers; - - /** - * Default constructor. - */ - public Headers() { - this.headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - } - - /** - * Constructor that creates a new instance using a given Map. - * @param headers The Map to use for creating an instance of this class. - */ - public Headers(Map> headers) { - this.headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - for (Map.Entry> kv : headers.entrySet()) { - add(kv.getKey(), kv.getValue()); - } - } - - /** - * Copy Constructor. - * @param h Headers Instance to be cloned. - */ - public Headers(Headers h) { - this.headers = cloneHeaderMap(h.headers); - } - - /** - * Use to check if the given name is present in headers. - * @param headerName String name for header to be checked. - * @return true if headerName is found, false otherwise. - */ - public boolean has(String headerName) { - return this.headers.containsKey(headerName); - } - - /** - * Returns a Set containing all header names. - * @return A Set containing all header names. - */ - public Set names() { - return headers.keySet(); - } - - /** - * Get the first value associated with a given header name, - * or null if the header name is not found. - * @param headerName The header name to find the associated value for. - * @return The first value associated with the given header name. - */ - public String value(String headerName) { - if (headers.containsKey(headerName)) { - return headers.get(headerName).get(0); - } - return null; - } - - /** - * Get a List of all values associated with a given header name, - * or null if the header name is not found. - * @param headerName The header name to find the associated values for. - * @return A List of values associated with the given header name. - */ - public List values(String headerName) { - if (headers.containsKey(headerName)) { - return headers.get(headerName); - } - return null; - } - - /** - * Returns a Map of the headers, giving only one value for each header name. - * @return A Map of header names and values. - */ - public Map asSimpleMap() { - Map copy = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - for (Map.Entry> kv : this.headers.entrySet()) { - if (kv.getValue() != null) { - copy.put(kv.getKey(), kv.getValue().get(0)); - } - } - - return copy; - } - - /** - * Returns a simulated MultiMap of the headers. - * @return A Map of header names and values. - */ - public Map> asMultimap() { - return cloneHeaderMap(this.headers); - } - - /** - * Clones a header map. - * @param headerMap A Map containing header names and values as Entry pairs. - * @return A Map of header names and values. - */ - private Map> cloneHeaderMap(Map> headerMap) { - Map> copy = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - for (Map.Entry> kv : headerMap.entrySet()) { - if (kv.getValue() != null) { - copy.put(kv.getKey(), kv.getValue()); - } - } - - return copy; - } - - /** - * Adds a value for a header name to this object, neither headerName nor value can be null. - * @param headerName The header name to add the value against. - * @param value The value to add. - */ - public void add(String headerName, String value) { - if (headerName == null || value == null) { - return; - } - - if (this.headers.containsKey(headerName)) { - this.headers.get(headerName).add(value); - } else { - List values = new ArrayList(); - values.add(value); - this.headers.put(headerName, values); - } - } - - /** - * Adds a List of values for a header name to this object, neither headerName nor values can be - * null. - * @param headerName The header name to add the values against. - * @param values The List of values to add. - */ - public void add(String headerName, List values) { - if (headerName == null || values == null) { - return; - } - - if (this.headers.containsKey(headerName)) { - for (String value : values) { - if (value != null) { - this.headers.get(headerName).add(value); - } - } - } else { - List copyOfValues = new ArrayList(); - for (String value : values) { - if (value != null) { - copyOfValues.add(value); - } - } - - if (!copyOfValues.isEmpty()) { - this.headers.put(headerName, copyOfValues); - } - } - } - - /** - * Adds a value for a header name to this object and returns the Headers instance. - * Neither headerName nor values can be null. - * @param headerName The header name to add the value against. - * @param value The value to add. - */ - public Headers createHeader(String headerName, String value) { - add(headerName, value); - return this; - } - - /** - * Adds values from a Map to this object. - * @param headers A Map containing header names and values as Entry pairs. - */ - public void addAllFromMap(Map headers) { - for (Map.Entry kv : headers.entrySet()) { - this.add(kv.getKey(), kv.getValue()); - } - } - - /** - * Adds values from a simulated Multi-Map to this object. - * @param headers A Map containing header names and values as Entry pairs. - */ - public void addAllFromMultiMap(Map> headers) { - for (Map.Entry> kv : headers.entrySet()) { - this.add(kv.getKey(), kv.getValue()); - } - } - - /** - * Adds all the entries in a Headers object to this object. - * @param headers The object whose values are to be added to this object. - */ - public void addAll(HttpHeaders headers) { - for (Map.Entry> kv : headers.asMultimap().entrySet()) { - this.add(kv.getKey(), kv.getValue()); - } - } - - /** - * Removes the mapping for a header name if it is present, - * and get the value to which this map previously associated the key, - * or null if the map contained no mapping for the key. - * @param headerName The header name to remove the associated values for - * @return A List of values associated with the given header name. - */ - public List remove(String headerName) { - if (headers.containsKey(headerName)) { - return headers.remove(headerName); - } - return null; - } - - /** - * Converts this Headers into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "Headers " + headers; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/http/client/HttpCallback.java b/Java/src/main/java/localhost/http/client/HttpCallback.java deleted file mode 100644 index d4b634be7..000000000 --- a/Java/src/main/java/localhost/http/client/HttpCallback.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.client; - -import io.apimatic.coreinterfaces.http.Callback; - -/** - * Callback to be called before and after the HTTP call for an endpoint is made. - */ -public interface HttpCallback extends Callback { - -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/http/client/HttpClientConfiguration.java b/Java/src/main/java/localhost/http/client/HttpClientConfiguration.java deleted file mode 100644 index 6a62b64a3..000000000 --- a/Java/src/main/java/localhost/http/client/HttpClientConfiguration.java +++ /dev/null @@ -1,317 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.client; - -import io.apimatic.core.configurations.http.client.CoreHttpClientConfiguration; -import io.apimatic.coreinterfaces.http.ClientConfiguration; -import io.apimatic.coreinterfaces.http.HttpMethodType; -import io.apimatic.coreinterfaces.http.Method; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import localhost.http.request.HttpMethod; - -/** - * Class to hold HTTP Client Configuration. - */ -public class HttpClientConfiguration implements ReadonlyHttpClientConfiguration { - - private final ClientConfiguration configuration; - - /** - * Default Constructor. - */ - private HttpClientConfiguration(CoreHttpClientConfiguration.Builder configurationBuilder) { - this.configuration = configurationBuilder.build(); - } - - /** - * The timeout in seconds to use for making HTTP requests. - * @return timeout - */ - public long getTimeout() { - return configuration.getTimeout(); - } - - /** - * Allow or prevent skipping SSL certificate verification. - * @return isSkipSslCertVerification - */ - public boolean isSkipSslCertVerification() { - return configuration.isSkipSslCertVerification(); - } - - /** - * The number of retries to make. - * @return numberOfRetries - */ - public int getNumberOfRetries() { - return configuration.getNumberOfRetries(); - } - - /** - * To use in calculation of wait time for next request in case of failure. - * @return backOffFactor - */ - public int getBackOffFactor() { - return configuration.getBackOffFactor(); - } - - /** - * To use in calculation of wait time for next request in case of failure. - * @return retryInterval - */ - public long getRetryInterval() { - return configuration.getRetryInterval(); - } - - /** - * Http status codes to retry against. - * @return httpStatusCodesToRetry - */ - public Set getHttpStatusCodesToRetry() { - return configuration.getHttpStatusCodesToRetry(); - } - - /** - * Http methods to retry against. - * @return httpMethodsToRetry - */ - public Set getHttpMethodsToRetry() { - if (configuration.getHttpMethodsToRetry() == null) { - return null; - } - return configuration.getHttpMethodsToRetry().stream() - .map(httpMethod -> HttpMethod.valueOf(httpMethod.toString())) - .collect(Collectors.toSet()); - } - - /** - * The maximum wait time for overall retrying requests. - * @return maximumRetryWaitTime - */ - public long getMaximumRetryWaitTime() { - return configuration.getMaximumRetryWaitTime(); - } - - /** - * Whether to retry on request timeout. - * @return shouldRetryOnTimeout - */ - public boolean shouldRetryOnTimeout() { - return configuration.shouldRetryOnTimeout(); - } - - /** - * The OkHttpClient instance used to make the HTTP calls. - * @return httpClientInstance - */ - public okhttp3.OkHttpClient getHttpClientInstance() { - return configuration.getHttpClientInstance(); - } - - /** - * Allow the SDK to override HTTP client instance's settings used for features like retries, - * timeouts etc. - * @return overrideHttpClientConfigurations - */ - public boolean shouldOverrideHttpClientConfigurations() { - return configuration.shouldOverrideHttpClientConfigurations(); - } - - /** - * Returns the ClientConfiguration instance. - * @return ClientConfiguration - */ - public ClientConfiguration getConfiguration() { - return this.configuration; - } - - /** - * Converts this HttpClientConfiguration into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "HttpClientConfiguration [" + "timeout=" + getTimeout() - + ", isSkipSslCertVerification=" + isSkipSslCertVerification() - + ", numberOfRetries=" + getNumberOfRetries() + ", backOffFactor=" - + getBackOffFactor() + ", retryInterval=" + getRetryInterval() - + ", httpStatusCodesToRetry=" + getHttpStatusCodesToRetry() - + ", httpMethodsToRetry=" + getHttpMethodsToRetry() + ", maximumRetryWaitTime=" - + getMaximumRetryWaitTime() + ", shouldRetryOnTimeout=" + shouldRetryOnTimeout() - + ", httpClientInstance=" + getHttpClientInstance() - + ", overrideHttpClientConfigurations=" + shouldOverrideHttpClientConfigurations() - + "]"; - } - - /** - * Builds a new {@link HttpClientConfiguration.Builder} object. Creates the instance with the - * current state. - * - * @return a new {@link HttpClientConfiguration.Builder} object - */ - public Builder newBuilder() { - return new Builder() - .timeout(getTimeout()) - .isSkipSslCertVerification(isSkipSslCertVerification()) - .numberOfRetries(getNumberOfRetries()) - .backOffFactor(getBackOffFactor()) - .retryInterval(getRetryInterval()) - .httpStatusCodesToRetry(getHttpStatusCodesToRetry()) - .httpMethodsToRetry(getHttpMethodsToRetry()) - .maximumRetryWaitTime(getMaximumRetryWaitTime()) - .shouldRetryOnTimeout(shouldRetryOnTimeout()) - .httpClientInstance(getHttpClientInstance(), shouldOverrideHttpClientConfigurations()); - } - - /** - * Class to build instances of {@link HttpClientConfiguration}. - */ - public static class Builder { - - private final CoreHttpClientConfiguration.Builder configurationBuilder = - new CoreHttpClientConfiguration.Builder(); - - /** - * Default Constructor to initiate builder with default properties. - */ - public Builder() { - // setting default values - configurationBuilder.httpStatusCodesToRetry(Stream.of(408, 413, 429, 500, 502, 503, 504, - 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524).collect(Collectors.toSet())); - configurationBuilder.httpMethodsToRetry(Stream.of(Method.GET, Method.PUT, Method.GET, - Method.PUT).collect(Collectors.toSet())); - } - - /** - * The timeout in seconds to use for making HTTP requests. - * @param timeout The timeout to set. - * @return Builder - */ - public Builder timeout(long timeout) { - configurationBuilder.timeout(timeout); - return this; - } - - /** - * Allow or prevent skipping SSL certificate verification. - * @param isSkipSslCertVerification The isSkipSslCertVerification to set - * @return Builder - */ - public Builder isSkipSslCertVerification(boolean isSkipSslCertVerification) { - configurationBuilder.isSkipSslCertVerification(isSkipSslCertVerification); - return this; - } - - /** - * The number of retries to make. - * @param numberOfRetries The numberOfRetries to set. - * @return Builder - */ - public Builder numberOfRetries(int numberOfRetries) { - configurationBuilder.numberOfRetries(numberOfRetries); - return this; - } - - /** - * To use in calculation of wait time for next request in case of failure. - * @param backOffFactor The backOffFactor to set. - * @return Builder - */ - public Builder backOffFactor(int backOffFactor) { - configurationBuilder.backOffFactor(backOffFactor); - return this; - } - - /** - * To use in calculation of wait time for next request in case of failure. - * @param retryInterval The retryInterval to set. - * @return Builder - */ - public Builder retryInterval(long retryInterval) { - configurationBuilder.retryInterval(retryInterval); - return this; - } - - /** - * Http status codes to retry against. - * @param httpStatusCodesToRetry The httpStatusCodesToRetry to set. - * @return Builder - */ - public Builder httpStatusCodesToRetry(Set httpStatusCodesToRetry) { - configurationBuilder.httpStatusCodesToRetry(httpStatusCodesToRetry); - return this; - } - - /** - * Http methods to retry against. - * @param httpMethodsToRetry The httpMethodsToRetry to set. - * @return Builder - */ - public Builder httpMethodsToRetry(Set httpMethodsToRetry) { - Set convertedHttpMethodsToRetry = null; - if (httpMethodsToRetry != null) { - convertedHttpMethodsToRetry = httpMethodsToRetry.stream() - .map(httpMethod -> HttpMethodType.valueOf(httpMethod.toString())) - .collect(Collectors.toSet()); - } - configurationBuilder.httpMethodsToRetry(convertedHttpMethodsToRetry); - return this; - } - - /** - * The maximum wait time for overall retrying requests. - * @param maximumRetryWaitTime The maximumRetryWaitTime to set. - * @return Builder - */ - public Builder maximumRetryWaitTime(long maximumRetryWaitTime) { - configurationBuilder.maximumRetryWaitTime(maximumRetryWaitTime); - return this; - } - - /** - * Whether to retry on request timeout. - * @param shouldRetryOnTimeout The shouldRetryOnTimeout to set - * @return Builder - */ - public Builder shouldRetryOnTimeout(boolean shouldRetryOnTimeout) { - configurationBuilder.shouldRetryOnTimeout(shouldRetryOnTimeout); - return this; - } - - /** - * The OkHttpClient instance used to make the HTTP calls. - * @param httpClientInstance The httpClientInstance to set - * @return Builder - */ - public Builder httpClientInstance(okhttp3.OkHttpClient httpClientInstance) { - configurationBuilder.httpClientInstance(httpClientInstance); - return this; - } - - /** - * The OkHttpClient instance used to make the HTTP calls. - * @param httpClientInstance The httpClientInstance to set - * @param overrideHttpClientConfigurations The overrideHttpClientConfigurations to set - * @return Builder - */ - public Builder httpClientInstance(okhttp3.OkHttpClient httpClientInstance, - boolean overrideHttpClientConfigurations) { - configurationBuilder.httpClientInstance(httpClientInstance, overrideHttpClientConfigurations); - return this; - } - - /** - * Builds a new HttpClientConfiguration object using the set fields. - * @return {@link HttpClientConfiguration} - */ - public HttpClientConfiguration build() { - return new HttpClientConfiguration(configurationBuilder); - } - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/http/client/HttpContext.java b/Java/src/main/java/localhost/http/client/HttpContext.java deleted file mode 100644 index b14b94997..000000000 --- a/Java/src/main/java/localhost/http/client/HttpContext.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.client; - -import io.apimatic.coreinterfaces.http.Context; -import localhost.http.request.HttpRequest; -import localhost.http.response.HttpResponse; - -/** - * Class to wrap the request sent to the server and the response received from the server. - */ -public class HttpContext implements Context { - private HttpRequest request; - private HttpResponse response; - - /** - * Initialization constructor. - * @param request Instance of HttpRequest. - * @param response Instance of HttpResponse. - */ - public HttpContext(HttpRequest request, HttpResponse response) { - this.request = request; - this.response = response; - } - - /** - * Getter for the Http Request. - * @return HttpRequest request. - */ - public HttpRequest getRequest() { - return request; - } - - /** - * Getter for the Http Response. - * @return HttpResponse response. - */ - public HttpResponse getResponse() { - return response; - } - - /** - * Converts this HttpContext into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "HttpContext [request=" + request + ", response=" + response + "]"; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/http/client/ReadonlyHttpClientConfiguration.java b/Java/src/main/java/localhost/http/client/ReadonlyHttpClientConfiguration.java deleted file mode 100644 index b12bfce7f..000000000 --- a/Java/src/main/java/localhost/http/client/ReadonlyHttpClientConfiguration.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.client; - -import java.util.Set; -import localhost.http.request.HttpMethod; - -/** - * Interface for holding HTTP Client Configuration. - */ -public interface ReadonlyHttpClientConfiguration { - - /** - * The timeout in seconds to use for making HTTP requests. - * @return a copy of timeout - */ - long getTimeout(); - - /** - * Allow or prevent skipping SSL certificate verification. - * @return a copy of isSkipSslCertVerification - */ - boolean isSkipSslCertVerification(); - - /** - * The number of retries to make. - * @return a copy of numberOfRetries - */ - int getNumberOfRetries(); - - /** - * To use in calculation of wait time for next request in case of failure. - * @return a copy of backOffFactor - */ - int getBackOffFactor(); - - /** - * To use in calculation of wait time for next request in case of failure. - * @return a copy of retryInterval - */ - long getRetryInterval(); - - /** - * Http status codes to retry against. - * @return a copy of httpStatusCodesToRetry - */ - Set getHttpStatusCodesToRetry(); - - /** - * Http methods to retry against. - * @return a copy of httpMethodsToRetry - */ - Set getHttpMethodsToRetry(); - - /** - * The maximum wait time for overall retrying requests. - * @return a copy of maximumRetryWaitTime - */ - long getMaximumRetryWaitTime(); - - /** - * Whether to retry on request timeout. - * @return a copy of shouldRetryOnTimeout - */ - boolean shouldRetryOnTimeout(); - - /** - * The OkHttpClient instance used to make the HTTP calls. - * @return a copy of httpClientInstance - */ - okhttp3.OkHttpClient getHttpClientInstance(); - - /** - * Allow the SDK to override HTTP client instance's settings used for features like retries, - * timeouts etc. - * @return a copy of overrideHttpClientConfigurations - */ - boolean shouldOverrideHttpClientConfigurations(); - -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/http/request/HttpBodyRequest.java b/Java/src/main/java/localhost/http/request/HttpBodyRequest.java deleted file mode 100644 index 0f23c2e2d..000000000 --- a/Java/src/main/java/localhost/http/request/HttpBodyRequest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.request; - -import java.util.Map; -import localhost.http.Headers; - -/** - * HTTP Request with an explicit body. - */ -public class HttpBodyRequest extends HttpRequest { - - /** - * Create a request with explicit body. - * @param method The HTTP method to use. Can be PUT, POST, DELETE and PATCH - * @param queryUrlBuilder The fully qualified absolute http url to create the HTTP Request. - * @param headers The key-value map of all http headers to be sent - * @param queryParams The query parameters in a key-value map - * @param body The object to be sent as body after serialization - */ - public HttpBodyRequest(HttpMethod method, StringBuilder queryUrlBuilder, Headers headers, - Map queryParams, Object body) { - super(method, queryUrlBuilder, headers, queryParams, body); - } - - /** - * Converts this HttpBodyRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "HttpBodyRequest [httpMethod=" + getHttpMethod() - + ", headers=" + getHeaders() + ", queryUrlBuilder=" + getQueryUrl() - + ", queryParameters=" + getQueryParameters() + ", body=" + getBody() + "]"; - } -} diff --git a/Java/src/main/java/localhost/http/request/HttpMethod.java b/Java/src/main/java/localhost/http/request/HttpMethod.java deleted file mode 100644 index ba5c95536..000000000 --- a/Java/src/main/java/localhost/http/request/HttpMethod.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.request; - -import io.apimatic.coreinterfaces.http.Method; - -/** - * HTTP methods enumeration. - */ -public enum HttpMethod implements Method { - GET, - POST, - PUT, - PATCH, - DELETE, - HEAD -} diff --git a/Java/src/main/java/localhost/http/request/HttpRequest.java b/Java/src/main/java/localhost/http/request/HttpRequest.java deleted file mode 100644 index 21ee4ae01..000000000 --- a/Java/src/main/java/localhost/http/request/HttpRequest.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.request; - -import io.apimatic.coreinterfaces.http.request.ArraySerializationFormat; -import io.apimatic.coreinterfaces.http.request.Request; -import java.util.AbstractMap.SimpleEntry; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import localhost.ApiHelper; -import localhost.http.Headers; - -/** - * Class for creating and managing HTTP Requests. - */ -public class HttpRequest implements Request { - - /** - * Private store for properties. - */ - private HttpMethod httpMethod; - private Headers headers; - private StringBuilder queryUrlBuilder; - private List> parameters; - private Map queryParameters; - private Object body; - - /** - * Initializes a simple http request. - * @param method The HTTP method to use. Can be GET, HEAD, PUT, POST, DELETE and PATCH - * @param queryUrlBuilder The fully qualified absolute http url to create the HTTP Request. - * @param headers The key-value map of all http headers to be sent - * @param queryParameters The query parameters in a key-value map - * @param parameters The form data values in a key-value map - */ - public HttpRequest(HttpMethod method, StringBuilder queryUrlBuilder, Headers headers, - Map queryParameters, List> parameters) { - this.httpMethod = method; - this.queryUrlBuilder = queryUrlBuilder; - this.headers = headers; - this.queryParameters = queryParameters; - this.parameters = parameters; - } - - /** - * Initializes a simple http request. - * - * @param method The HTTP method to use. Can be GET, HEAD, PUT, POST, DELETE and PATCH - * @param queryUrlBuilder The fully qualified absolute http url to create the HTTP Request. - * @param headers The key-value map of all http headers to be sent - * @param queryParameters The query parameters in a key-value map - * @param body The object to be sent as body after serialization - */ - public HttpRequest(HttpMethod method, StringBuilder queryUrlBuilder, Headers headers, - Map queryParameters, Object body) { - this(method, queryUrlBuilder, headers, queryParameters, null); - this.body = body != null ? body : ""; - } - - /** - * HttpMethod for the http request. - * @return HttpMethod - */ - public HttpMethod getHttpMethod() { - return httpMethod; - } - - /** - * Headers for the http request. - * @return Headers - */ - public Headers getHeaders() { - return headers; - } - - /** - * Query url for the http request. - * @return String query url - */ - public String getQueryUrl() { - return queryUrlBuilder.toString(); - } - - /** - * Parameters for the http request. - * @return List of simple entries for form parameters - */ - public List> getParameters() { - return parameters; - } - - /** - * Query parameters for the http request. - * @return Map of queryParameters - */ - public Map getQueryParameters() { - return queryParameters; - } - - /** - * Body for the http request. - * - * @return Object body - */ - public Object getBody() { - return body; - } - - /** - * Add Query parameter in http request. - * @param key The key of query parameter to be added - * @param value The value for respective query parameter - */ - public void addQueryParameter(String key, Object value) { - if (key == null || key.isEmpty() || value == null) { - return; - } - if (queryParameters == null) { - queryParameters = new HashMap(); - } - queryParameters.put(key, value); - } - - /** - * Converts this HttpRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "HttpRequest [httpMethod=" + httpMethod + ", headers=" + headers - + ", queryUrlBuilder=" + queryUrlBuilder + ", queryParameters=" + queryParameters - + ", parameters=" + parameters + "]"; - } - - @Override - public String getUrl(ArraySerializationFormat arraySerializationFormat) { - StringBuilder urlBuilder = new StringBuilder(getQueryUrl()); - - // set query parameters - ApiHelper.appendUrlWithQueryParameters(urlBuilder, getQueryParameters(), - arraySerializationFormat); - - // validate and preprocess url - return ApiHelper.cleanUrl(urlBuilder); - } - -} diff --git a/Java/src/main/java/localhost/http/response/HttpResponse.java b/Java/src/main/java/localhost/http/response/HttpResponse.java deleted file mode 100644 index 724f22afb..000000000 --- a/Java/src/main/java/localhost/http/response/HttpResponse.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.response; - -import io.apimatic.coreinterfaces.http.response.Response; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.stream.Collectors; -import localhost.http.Headers; - -/** - * Class to hold HTTP Response. - */ -public class HttpResponse implements Response { - - /** - * Private store for properties. - */ - private int statusCode; - private Headers headers; - private InputStream rawBody; - private String body; - - /** - * Initialization constructor. - * @param code The HTTP status code - * @param headers The HTTP headers read from response - * @param rawBody The raw data returned in the HTTP response - */ - public HttpResponse(int code, Headers headers, InputStream rawBody) { - this.statusCode = code; - this.headers = headers; - this.rawBody = rawBody; - } - - /** - * Initialization constructor. - * - * @param code The HTTP status code - * @param headers The HTTP headers read from response - * @param rawBody The raw data returned in the HTTP response - * @param body String response body - */ - public HttpResponse(int code, Headers headers, InputStream rawBody, String body) { - this(code, headers, rawBody); - this.body = body; - } - - /** - * HTTP Status code of the http response. - * @return Int status code - */ - public int getStatusCode() { - return statusCode; - } - - /** - * Headers of the http response. - * @return Headers - */ - public Headers getHeaders() { - return headers; - } - - /** - * Raw body of the http response. - * @return InputStream - */ - public InputStream getRawBody() { - return rawBody; - } - - /** - * String representation for raw body of the http response. - * @return String - */ - public String getRawBodyString() { - try { - if (rawBody == null || rawBody.available() == 0 || !rawBody.markSupported()) { - return null; - } - rawBody.mark(0); - String result = new BufferedReader(new InputStreamReader(rawBody)).lines() - .collect(Collectors.joining("\n")); - rawBody.reset(); - return result; - } catch (IOException e) { - return null; - } - } - - /** - * String body of the http response. - * - * @return String response body - */ - public String getBody() { - return body; - } - - /** - * Converts this HttpResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "HttpResponse [statusCode=" + statusCode + ", headers=" + headers + ", rawBody=" - + getRawBodyString() + "]"; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/http/response/HttpStringResponse.java b/Java/src/main/java/localhost/http/response/HttpStringResponse.java deleted file mode 100644 index 85a41c96f..000000000 --- a/Java/src/main/java/localhost/http/response/HttpStringResponse.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.http.response; - -import java.io.InputStream; -import localhost.http.Headers; - -/** - * Class to hold response body as string. - */ -public class HttpStringResponse extends HttpResponse { - - /** - * Initialization constructor. - * @param code The HTTP status code - * @param headers The HTTP headers read from response - * @param rawBody The raw data returned in the HTTP response - * @param body String response body - */ - public HttpStringResponse(int code, Headers headers, InputStream rawBody, String body) { - super(code, headers, rawBody, body); - } - - /** - * Converts this HttpStringResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "HttpStringResponse [statusCode=" + getStatusCode() + ", headers=" + getHeaders() - + ", body=" + getBody() + "]"; - } -} diff --git a/Java/src/main/java/localhost/models/AccessEnum.java b/Java/src/main/java/localhost/models/AccessEnum.java deleted file mode 100644 index c3386e78f..000000000 --- a/Java/src/main/java/localhost/models/AccessEnum.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * AccessEnum to be used. - */ -public enum AccessEnum { - READ_ONLY, - - MODIFY; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - READ_ONLY.value = "READ_ONLY"; - MODIFY.value = "MODIFY"; - - valueMap.put("READ_ONLY", READ_ONLY); - valueMap.put("MODIFY", MODIFY); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static AccessEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of AccessEnum values to list of string values. - * @param toConvert The list of AccessEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (AccessEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/AccessLevelEnum.java b/Java/src/main/java/localhost/models/AccessLevelEnum.java deleted file mode 100644 index a12f91962..000000000 --- a/Java/src/main/java/localhost/models/AccessLevelEnum.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * AccessLevelEnum to be used. - */ -public enum AccessLevelEnum { - FULL, - - REPORT_BOOK_VIEW; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - FULL.value = "FULL"; - REPORT_BOOK_VIEW.value = "REPORT_BOOK_VIEW"; - - valueMap.put("FULL", FULL); - valueMap.put("REPORT_BOOK_VIEW", REPORT_BOOK_VIEW); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static AccessLevelEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of AccessLevelEnum values to list of string values. - * @param toConvert The list of AccessLevelEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (AccessLevelEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/AccessLevelInput.java b/Java/src/main/java/localhost/models/AccessLevelInput.java deleted file mode 100644 index 71e8b242a..000000000 --- a/Java/src/main/java/localhost/models/AccessLevelInput.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for AccessLevelInput type. - */ -public class AccessLevelInput { - private String name; - private String id; - private Type1Enum type; - private AccessEnum access; - - /** - * Default constructor. - */ - public AccessLevelInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param type Type1Enum value for type. - * @param access AccessEnum value for access. - */ - public AccessLevelInput( - String name, - String id, - Type1Enum type, - AccessEnum access) { - this.name = name; - this.id = id; - this.type = type; - this.access = access; - } - - /** - * Getter for Name. - * Username or name of the user group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Username or name of the user group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the user or user group - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user or user group - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Type. - * Type of access detail provided - * @return Returns the Type1Enum - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Type1Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of access detail provided - * @param type Value for Type1Enum - */ - @JsonSetter("type") - public void setType(Type1Enum type) { - this.type = type; - } - - /** - * Getter for Access. - * Minimum access level that the specified user or user group has. If no input is provided then - * minimum access of READ_ONLY will be considered. - * @return Returns the AccessEnum - */ - @JsonGetter("access") - @JsonInclude(JsonInclude.Include.NON_NULL) - public AccessEnum getAccess() { - return access; - } - - /** - * Setter for Access. - * Minimum access level that the specified user or user group has. If no input is provided then - * minimum access of READ_ONLY will be considered. - * @param access Value for AccessEnum - */ - @JsonSetter("access") - public void setAccess(AccessEnum access) { - this.access = access; - } - - /** - * Converts this AccessLevelInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "AccessLevelInput [" + "name=" + name + ", id=" + id + ", type=" + type + ", access=" - + access + "]"; - } - - /** - * Builds a new {@link AccessLevelInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link AccessLevelInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .type(getType()) - .access(getAccess()); - return builder; - } - - /** - * Class to build instances of {@link AccessLevelInput}. - */ - public static class Builder { - private String name; - private String id; - private Type1Enum type; - private AccessEnum access; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for type. - * @param type Type1Enum value for type. - * @return Builder - */ - public Builder type(Type1Enum type) { - this.type = type; - return this; - } - - /** - * Setter for access. - * @param access AccessEnum value for access. - * @return Builder - */ - public Builder access(AccessEnum access) { - this.access = access; - return this; - } - - /** - * Builds a new {@link AccessLevelInput} object using the set fields. - * @return {@link AccessLevelInput} - */ - public AccessLevelInput build() { - return new AccessLevelInput(name, id, type, access); - } - } -} diff --git a/Java/src/main/java/localhost/models/AddTableInput.java b/Java/src/main/java/localhost/models/AddTableInput.java deleted file mode 100644 index fcac05d37..000000000 --- a/Java/src/main/java/localhost/models/AddTableInput.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for AddTableInput type. - */ -public class AddTableInput { - private String name; - private String dbName; - private String schemaName; - private List columns; - - /** - * Default constructor. - */ - public AddTableInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param dbName String value for dbName. - * @param schemaName String value for schemaName. - * @param columns List of ColumnsInput value for columns. - */ - public AddTableInput( - String name, - String dbName, - String schemaName, - List columns) { - this.name = name; - this.dbName = dbName; - this.schemaName = schemaName; - this.columns = columns; - } - - /** - * Getter for Name. - * Name of the table - * @return Returns the String - */ - @JsonGetter("name") - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the table - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for DbName. - * Name of the database in the data platform - * @return Returns the String - */ - @JsonGetter("dbName") - public String getDbName() { - return dbName; - } - - /** - * Setter for DbName. - * Name of the database in the data platform - * @param dbName Value for String - */ - @JsonSetter("dbName") - public void setDbName(String dbName) { - this.dbName = dbName; - } - - /** - * Getter for SchemaName. - * Name of the schema in the database - * @return Returns the String - */ - @JsonGetter("schemaName") - public String getSchemaName() { - return schemaName; - } - - /** - * Setter for SchemaName. - * Name of the schema in the database - * @param schemaName Value for String - */ - @JsonSetter("schemaName") - public void setSchemaName(String schemaName) { - this.schemaName = schemaName; - } - - /** - * Getter for Columns. - * A JSON array of column details - * @return Returns the List of ColumnsInput - */ - @JsonGetter("columns") - public List getColumns() { - return columns; - } - - /** - * Setter for Columns. - * A JSON array of column details - * @param columns Value for List of ColumnsInput - */ - @JsonSetter("columns") - public void setColumns(List columns) { - this.columns = columns; - } - - /** - * Converts this AddTableInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "AddTableInput [" + "name=" + name + ", dbName=" + dbName + ", schemaName=" - + schemaName + ", columns=" + columns + "]"; - } - - /** - * Builds a new {@link AddTableInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link AddTableInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(name, dbName, schemaName, columns); - return builder; - } - - /** - * Class to build instances of {@link AddTableInput}. - */ - public static class Builder { - private String name; - private String dbName; - private String schemaName; - private List columns; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param dbName String value for dbName. - * @param schemaName String value for schemaName. - * @param columns List of ColumnsInput value for columns. - */ - public Builder(String name, String dbName, String schemaName, List columns) { - this.name = name; - this.dbName = dbName; - this.schemaName = schemaName; - this.columns = columns; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for dbName. - * @param dbName String value for dbName. - * @return Builder - */ - public Builder dbName(String dbName) { - this.dbName = dbName; - return this; - } - - /** - * Setter for schemaName. - * @param schemaName String value for schemaName. - * @return Builder - */ - public Builder schemaName(String schemaName) { - this.schemaName = schemaName; - return this; - } - - /** - * Setter for columns. - * @param columns List of ColumnsInput value for columns. - * @return Builder - */ - public Builder columns(List columns) { - this.columns = columns; - return this; - } - - /** - * Builds a new {@link AddTableInput} object using the set fields. - * @return {@link AddTableInput} - */ - public AddTableInput build() { - return new AddTableInput(name, dbName, schemaName, columns); - } - } -} diff --git a/Java/src/main/java/localhost/models/AdminsyncPrincipalResponse.java b/Java/src/main/java/localhost/models/AdminsyncPrincipalResponse.java deleted file mode 100644 index 158332bb0..000000000 --- a/Java/src/main/java/localhost/models/AdminsyncPrincipalResponse.java +++ /dev/null @@ -1,291 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for AdminsyncPrincipalResponse type. - */ -public class AdminsyncPrincipalResponse { - private List usersAdded; - private List usersDeleted; - private List usersUpdated; - private List groupsAdded; - private List groupsDeleted; - private List groupsUpdated; - - /** - * Default constructor. - */ - public AdminsyncPrincipalResponse() { - } - - /** - * Initialization constructor. - * @param usersAdded List of String value for usersAdded. - * @param usersDeleted List of String value for usersDeleted. - * @param usersUpdated List of String value for usersUpdated. - * @param groupsAdded List of String value for groupsAdded. - * @param groupsDeleted List of String value for groupsDeleted. - * @param groupsUpdated List of String value for groupsUpdated. - */ - public AdminsyncPrincipalResponse( - List usersAdded, - List usersDeleted, - List usersUpdated, - List groupsAdded, - List groupsDeleted, - List groupsUpdated) { - this.usersAdded = usersAdded; - this.usersDeleted = usersDeleted; - this.usersUpdated = usersUpdated; - this.groupsAdded = groupsAdded; - this.groupsDeleted = groupsDeleted; - this.groupsUpdated = groupsUpdated; - } - - /** - * Getter for UsersAdded. - * Username of list of users added - * @return Returns the List of String - */ - @JsonGetter("usersAdded") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUsersAdded() { - return usersAdded; - } - - /** - * Setter for UsersAdded. - * Username of list of users added - * @param usersAdded Value for List of String - */ - @JsonSetter("usersAdded") - public void setUsersAdded(List usersAdded) { - this.usersAdded = usersAdded; - } - - /** - * Getter for UsersDeleted. - * Username of list of users deleted - * @return Returns the List of String - */ - @JsonGetter("usersDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUsersDeleted() { - return usersDeleted; - } - - /** - * Setter for UsersDeleted. - * Username of list of users deleted - * @param usersDeleted Value for List of String - */ - @JsonSetter("usersDeleted") - public void setUsersDeleted(List usersDeleted) { - this.usersDeleted = usersDeleted; - } - - /** - * Getter for UsersUpdated. - * Username of list of users updated - * @return Returns the List of String - */ - @JsonGetter("usersUpdated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUsersUpdated() { - return usersUpdated; - } - - /** - * Setter for UsersUpdated. - * Username of list of users updated - * @param usersUpdated Value for List of String - */ - @JsonSetter("usersUpdated") - public void setUsersUpdated(List usersUpdated) { - this.usersUpdated = usersUpdated; - } - - /** - * Getter for GroupsAdded. - * Group name of list of groups added - * @return Returns the List of String - */ - @JsonGetter("groupsAdded") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroupsAdded() { - return groupsAdded; - } - - /** - * Setter for GroupsAdded. - * Group name of list of groups added - * @param groupsAdded Value for List of String - */ - @JsonSetter("groupsAdded") - public void setGroupsAdded(List groupsAdded) { - this.groupsAdded = groupsAdded; - } - - /** - * Getter for GroupsDeleted. - * Group name of list of groups deleted - * @return Returns the List of String - */ - @JsonGetter("groupsDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroupsDeleted() { - return groupsDeleted; - } - - /** - * Setter for GroupsDeleted. - * Group name of list of groups deleted - * @param groupsDeleted Value for List of String - */ - @JsonSetter("groupsDeleted") - public void setGroupsDeleted(List groupsDeleted) { - this.groupsDeleted = groupsDeleted; - } - - /** - * Getter for GroupsUpdated. - * Group name of list of groups updated - * @return Returns the List of String - */ - @JsonGetter("groupsUpdated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroupsUpdated() { - return groupsUpdated; - } - - /** - * Setter for GroupsUpdated. - * Group name of list of groups updated - * @param groupsUpdated Value for List of String - */ - @JsonSetter("groupsUpdated") - public void setGroupsUpdated(List groupsUpdated) { - this.groupsUpdated = groupsUpdated; - } - - /** - * Converts this AdminsyncPrincipalResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "AdminsyncPrincipalResponse [" + "usersAdded=" + usersAdded + ", usersDeleted=" - + usersDeleted + ", usersUpdated=" + usersUpdated + ", groupsAdded=" + groupsAdded - + ", groupsDeleted=" + groupsDeleted + ", groupsUpdated=" + groupsUpdated + "]"; - } - - /** - * Builds a new {@link AdminsyncPrincipalResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link AdminsyncPrincipalResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .usersAdded(getUsersAdded()) - .usersDeleted(getUsersDeleted()) - .usersUpdated(getUsersUpdated()) - .groupsAdded(getGroupsAdded()) - .groupsDeleted(getGroupsDeleted()) - .groupsUpdated(getGroupsUpdated()); - return builder; - } - - /** - * Class to build instances of {@link AdminsyncPrincipalResponse}. - */ - public static class Builder { - private List usersAdded; - private List usersDeleted; - private List usersUpdated; - private List groupsAdded; - private List groupsDeleted; - private List groupsUpdated; - - - - /** - * Setter for usersAdded. - * @param usersAdded List of String value for usersAdded. - * @return Builder - */ - public Builder usersAdded(List usersAdded) { - this.usersAdded = usersAdded; - return this; - } - - /** - * Setter for usersDeleted. - * @param usersDeleted List of String value for usersDeleted. - * @return Builder - */ - public Builder usersDeleted(List usersDeleted) { - this.usersDeleted = usersDeleted; - return this; - } - - /** - * Setter for usersUpdated. - * @param usersUpdated List of String value for usersUpdated. - * @return Builder - */ - public Builder usersUpdated(List usersUpdated) { - this.usersUpdated = usersUpdated; - return this; - } - - /** - * Setter for groupsAdded. - * @param groupsAdded List of String value for groupsAdded. - * @return Builder - */ - public Builder groupsAdded(List groupsAdded) { - this.groupsAdded = groupsAdded; - return this; - } - - /** - * Setter for groupsDeleted. - * @param groupsDeleted List of String value for groupsDeleted. - * @return Builder - */ - public Builder groupsDeleted(List groupsDeleted) { - this.groupsDeleted = groupsDeleted; - return this; - } - - /** - * Setter for groupsUpdated. - * @param groupsUpdated List of String value for groupsUpdated. - * @return Builder - */ - public Builder groupsUpdated(List groupsUpdated) { - this.groupsUpdated = groupsUpdated; - return this; - } - - /** - * Builds a new {@link AdminsyncPrincipalResponse} object using the set fields. - * @return {@link AdminsyncPrincipalResponse} - */ - public AdminsyncPrincipalResponse build() { - return new AdminsyncPrincipalResponse(usersAdded, usersDeleted, usersUpdated, - groupsAdded, groupsDeleted, groupsUpdated); - } - } -} diff --git a/Java/src/main/java/localhost/models/AnswerQueryResponse.java b/Java/src/main/java/localhost/models/AnswerQueryResponse.java deleted file mode 100644 index 439ecf393..000000000 --- a/Java/src/main/java/localhost/models/AnswerQueryResponse.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for AnswerQueryResponse type. - */ -public class AnswerQueryResponse { - private String name; - private String id; - private String querySql; - - /** - * Default constructor. - */ - public AnswerQueryResponse() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param querySql String value for querySql. - */ - public AnswerQueryResponse( - String name, - String id, - String querySql) { - this.name = name; - this.id = id; - this.querySql = querySql; - } - - /** - * Getter for Name. - * The name of the saved Answer - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * The name of the saved Answer - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the saved Answer - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the saved Answer - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for QuerySql. - * SQL query associated with the saved Answer - * @return Returns the String - */ - @JsonGetter("querySql") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getQuerySql() { - return querySql; - } - - /** - * Setter for QuerySql. - * SQL query associated with the saved Answer - * @param querySql Value for String - */ - @JsonSetter("querySql") - public void setQuerySql(String querySql) { - this.querySql = querySql; - } - - /** - * Converts this AnswerQueryResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "AnswerQueryResponse [" + "name=" + name + ", id=" + id + ", querySql=" + querySql - + "]"; - } - - /** - * Builds a new {@link AnswerQueryResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link AnswerQueryResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .querySql(getQuerySql()); - return builder; - } - - /** - * Class to build instances of {@link AnswerQueryResponse}. - */ - public static class Builder { - private String name; - private String id; - private String querySql; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for querySql. - * @param querySql String value for querySql. - * @return Builder - */ - public Builder querySql(String querySql) { - this.querySql = querySql; - return this; - } - - /** - * Builds a new {@link AnswerQueryResponse} object using the set fields. - * @return {@link AnswerQueryResponse} - */ - public AnswerQueryResponse build() { - return new AnswerQueryResponse(name, id, querySql); - } - } -} diff --git a/Java/src/main/java/localhost/models/ClientState.java b/Java/src/main/java/localhost/models/ClientState.java deleted file mode 100644 index 21ffaf485..000000000 --- a/Java/src/main/java/localhost/models/ClientState.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for ClientState type. - */ -public class ClientState { - private String color; - - /** - * Default constructor. - */ - public ClientState() { - } - - /** - * Initialization constructor. - * @param color String value for color. - */ - public ClientState( - String color) { - this.color = color; - } - - /** - * Getter for Color. - * Color assigned to the tag - * @return Returns the String - */ - @JsonGetter("color") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getColor() { - return color; - } - - /** - * Setter for Color. - * Color assigned to the tag - * @param color Value for String - */ - @JsonSetter("color") - public void setColor(String color) { - this.color = color; - } - - /** - * Converts this ClientState into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ClientState [" + "color=" + color + "]"; - } - - /** - * Builds a new {@link ClientState.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ClientState.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .color(getColor()); - return builder; - } - - /** - * Class to build instances of {@link ClientState}. - */ - public static class Builder { - private String color; - - - - /** - * Setter for color. - * @param color String value for color. - * @return Builder - */ - public Builder color(String color) { - this.color = color; - return this; - } - - /** - * Builds a new {@link ClientState} object using the set fields. - * @return {@link ClientState} - */ - public ClientState build() { - return new ClientState(color); - } - } -} diff --git a/Java/src/main/java/localhost/models/ColumnsInput.java b/Java/src/main/java/localhost/models/ColumnsInput.java deleted file mode 100644 index 208ad2c41..000000000 --- a/Java/src/main/java/localhost/models/ColumnsInput.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for ColumnsInput type. - */ -public class ColumnsInput { - private String name; - private String dataType; - - /** - * Default constructor. - */ - public ColumnsInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param dataType String value for dataType. - */ - public ColumnsInput( - String name, - String dataType) { - this.name = name; - this.dataType = dataType; - } - - /** - * Getter for Name. - * Name of the column - * @return Returns the String - */ - @JsonGetter("name") - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the column - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for DataType. - * Datatype of the column - * @return Returns the String - */ - @JsonGetter("dataType") - public String getDataType() { - return dataType; - } - - /** - * Setter for DataType. - * Datatype of the column - * @param dataType Value for String - */ - @JsonSetter("dataType") - public void setDataType(String dataType) { - this.dataType = dataType; - } - - /** - * Converts this ColumnsInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ColumnsInput [" + "name=" + name + ", dataType=" + dataType + "]"; - } - - /** - * Builds a new {@link ColumnsInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ColumnsInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(name, dataType); - return builder; - } - - /** - * Class to build instances of {@link ColumnsInput}. - */ - public static class Builder { - private String name; - private String dataType; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param dataType String value for dataType. - */ - public Builder(String name, String dataType) { - this.name = name; - this.dataType = dataType; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for dataType. - * @param dataType String value for dataType. - * @return Builder - */ - public Builder dataType(String dataType) { - this.dataType = dataType; - return this; - } - - /** - * Builds a new {@link ColumnsInput} object using the set fields. - * @return {@link ColumnsInput} - */ - public ColumnsInput build() { - return new ColumnsInput(name, dataType); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionColumn.java b/Java/src/main/java/localhost/models/ConnectionColumn.java deleted file mode 100644 index 616109cf3..000000000 --- a/Java/src/main/java/localhost/models/ConnectionColumn.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for ConnectionColumn type. - */ -public class ConnectionColumn { - private String name; - private String type; - private List column; - - /** - * Default constructor. - */ - public ConnectionColumn() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param type String value for type. - * @param column List of TableColumns value for column. - */ - public ConnectionColumn( - String name, - String type, - List column) { - this.name = name; - this.type = type; - this.column = column; - } - - /** - * Getter for Name. - * Name of the table - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the table - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Type. - * Type of the Table - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Type of the Table - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Column. - * List of columns in the table - * @return Returns the List of TableColumns - */ - @JsonGetter("column") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getColumn() { - return column; - } - - /** - * Setter for Column. - * List of columns in the table - * @param column Value for List of TableColumns - */ - @JsonSetter("column") - public void setColumn(List column) { - this.column = column; - } - - /** - * Converts this ConnectionColumn into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionColumn [" + "name=" + name + ", type=" + type + ", column=" + column - + "]"; - } - - /** - * Builds a new {@link ConnectionColumn.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionColumn.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .type(getType()) - .column(getColumn()); - return builder; - } - - /** - * Class to build instances of {@link ConnectionColumn}. - */ - public static class Builder { - private String name; - private String type; - private List column; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for column. - * @param column List of TableColumns value for column. - * @return Builder - */ - public Builder column(List column) { - this.column = column; - return this; - } - - /** - * Builds a new {@link ConnectionColumn} object using the set fields. - * @return {@link ConnectionColumn} - */ - public ConnectionColumn build() { - return new ConnectionColumn(name, type, column); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionColumnsShema.java b/Java/src/main/java/localhost/models/ConnectionColumnsShema.java deleted file mode 100644 index fcdef96c4..000000000 --- a/Java/src/main/java/localhost/models/ConnectionColumnsShema.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for ConnectionColumnsShema type. - */ -public class ConnectionColumnsShema { - private String name; - private String dbName; - private String schemaName; - private List columns; - - /** - * Default constructor. - */ - public ConnectionColumnsShema() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param dbName String value for dbName. - * @param schemaName String value for schemaName. - * @param columns List of TableColumns value for columns. - */ - public ConnectionColumnsShema( - String name, - String dbName, - String schemaName, - List columns) { - this.name = name; - this.dbName = dbName; - this.schemaName = schemaName; - this.columns = columns; - } - - /** - * Getter for Name. - * Name of the table - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the table - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for DbName. - * Name of the database - * @return Returns the String - */ - @JsonGetter("dbName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDbName() { - return dbName; - } - - /** - * Setter for DbName. - * Name of the database - * @param dbName Value for String - */ - @JsonSetter("dbName") - public void setDbName(String dbName) { - this.dbName = dbName; - } - - /** - * Getter for SchemaName. - * Name of the schema - * @return Returns the String - */ - @JsonGetter("schemaName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSchemaName() { - return schemaName; - } - - /** - * Setter for SchemaName. - * Name of the schema - * @param schemaName Value for String - */ - @JsonSetter("schemaName") - public void setSchemaName(String schemaName) { - this.schemaName = schemaName; - } - - /** - * Getter for Columns. - * List of columns in the table - * @return Returns the List of TableColumns - */ - @JsonGetter("columns") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getColumns() { - return columns; - } - - /** - * Setter for Columns. - * List of columns in the table - * @param columns Value for List of TableColumns - */ - @JsonSetter("columns") - public void setColumns(List columns) { - this.columns = columns; - } - - /** - * Converts this ConnectionColumnsShema into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionColumnsShema [" + "name=" + name + ", dbName=" + dbName + ", schemaName=" - + schemaName + ", columns=" + columns + "]"; - } - - /** - * Builds a new {@link ConnectionColumnsShema.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionColumnsShema.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .dbName(getDbName()) - .schemaName(getSchemaName()) - .columns(getColumns()); - return builder; - } - - /** - * Class to build instances of {@link ConnectionColumnsShema}. - */ - public static class Builder { - private String name; - private String dbName; - private String schemaName; - private List columns; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for dbName. - * @param dbName String value for dbName. - * @return Builder - */ - public Builder dbName(String dbName) { - this.dbName = dbName; - return this; - } - - /** - * Setter for schemaName. - * @param schemaName String value for schemaName. - * @return Builder - */ - public Builder schemaName(String schemaName) { - this.schemaName = schemaName; - return this; - } - - /** - * Setter for columns. - * @param columns List of TableColumns value for columns. - * @return Builder - */ - public Builder columns(List columns) { - this.columns = columns; - return this; - } - - /** - * Builds a new {@link ConnectionColumnsShema} object using the set fields. - * @return {@link ConnectionColumnsShema} - */ - public ConnectionColumnsShema build() { - return new ConnectionColumnsShema(name, dbName, schemaName, columns); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionDatabaseType.java b/Java/src/main/java/localhost/models/ConnectionDatabaseType.java deleted file mode 100644 index 8a2c96b3b..000000000 --- a/Java/src/main/java/localhost/models/ConnectionDatabaseType.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for ConnectionDatabaseType type. - */ -public class ConnectionDatabaseType { - private String name; - private List schema; - - /** - * Default constructor. - */ - public ConnectionDatabaseType() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param schema List of ConnectionTableSchema value for schema. - */ - public ConnectionDatabaseType( - String name, - List schema) { - this.name = name; - this.schema = schema; - } - - /** - * Getter for Name. - * Name of the database - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the database - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Schema. - * List of schemas - * @return Returns the List of ConnectionTableSchema - */ - @JsonGetter("schema") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getSchema() { - return schema; - } - - /** - * Setter for Schema. - * List of schemas - * @param schema Value for List of ConnectionTableSchema - */ - @JsonSetter("schema") - public void setSchema(List schema) { - this.schema = schema; - } - - /** - * Converts this ConnectionDatabaseType into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionDatabaseType [" + "name=" + name + ", schema=" + schema + "]"; - } - - /** - * Builds a new {@link ConnectionDatabaseType.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionDatabaseType.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .schema(getSchema()); - return builder; - } - - /** - * Class to build instances of {@link ConnectionDatabaseType}. - */ - public static class Builder { - private String name; - private List schema; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for schema. - * @param schema List of ConnectionTableSchema value for schema. - * @return Builder - */ - public Builder schema(List schema) { - this.schema = schema; - return this; - } - - /** - * Builds a new {@link ConnectionDatabaseType} object using the set fields. - * @return {@link ConnectionDatabaseType} - */ - public ConnectionDatabaseType build() { - return new ConnectionDatabaseType(name, schema); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionResponse.java b/Java/src/main/java/localhost/models/ConnectionResponse.java deleted file mode 100644 index 925617f5b..000000000 --- a/Java/src/main/java/localhost/models/ConnectionResponse.java +++ /dev/null @@ -1,841 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for ConnectionResponse type. - */ -public class ConnectionResponse { - private String name; - private String description; - private String type; - private String id; - private Boolean scheduled; - private String connectionType; - private String configuration; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean complete; - private Double indexVersion; - private Double generationNum; - private String created; - private String modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - private List tags; - private List tables; - - /** - * Default constructor. - */ - public ConnectionResponse() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param description String value for description. - * @param type String value for type. - * @param id String value for id. - * @param scheduled Boolean value for scheduled. - * @param connectionType String value for connectionType. - * @param configuration String value for configuration. - * @param isExternal Boolean value for isExternal. - * @param isDeprecated Boolean value for isDeprecated. - * @param isDeleted Boolean value for isDeleted. - * @param isHidden Boolean value for isHidden. - * @param complete Boolean value for complete. - * @param indexVersion Double value for indexVersion. - * @param generationNum Double value for generationNum. - * @param created String value for created. - * @param modified String value for modified. - * @param author UserNameAndID value for author. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @param owner UserNameAndID value for owner. - * @param tags List of String value for tags. - * @param tables List of TableList value for tables. - */ - public ConnectionResponse( - String name, - String description, - String type, - String id, - Boolean scheduled, - String connectionType, - String configuration, - Boolean isExternal, - Boolean isDeprecated, - Boolean isDeleted, - Boolean isHidden, - Boolean complete, - Double indexVersion, - Double generationNum, - String created, - String modified, - UserNameAndID author, - UserNameAndID modifiedBy, - UserNameAndID owner, - List tags, - List tables) { - this.name = name; - this.description = description; - this.type = type; - this.id = id; - this.scheduled = scheduled; - this.connectionType = connectionType; - this.configuration = configuration; - this.isExternal = isExternal; - this.isDeprecated = isDeprecated; - this.isDeleted = isDeleted; - this.isHidden = isHidden; - this.complete = complete; - this.indexVersion = indexVersion; - this.generationNum = generationNum; - this.created = created; - this.modified = modified; - this.author = author; - this.modifiedBy = modifiedBy; - this.owner = owner; - this.tags = tags; - this.tables = tables; - } - - /** - * Getter for Name. - * Name of the connection - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the connection - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Description. - * Description associated with the connection - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description associated with the connection - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Type. - * Type of the connection. The database associated with this type can be obtained from the - * response returned by the /tspublic/rest/v2/connection/types API endpoint. - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Type of the connection. The database associated with this type can be obtained from the - * response returned by the /tspublic/rest/v2/connection/types API endpoint. - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Id. - * GUID of the connection - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the connection - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Scheduled. - * Indicates if the data sync is scheduled for this connection - * @return Returns the Boolean - */ - @JsonGetter("scheduled") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getScheduled() { - return scheduled; - } - - /** - * Setter for Scheduled. - * Indicates if the data sync is scheduled for this connection - * @param scheduled Value for Boolean - */ - @JsonSetter("scheduled") - public void setScheduled(Boolean scheduled) { - this.scheduled = scheduled; - } - - /** - * Getter for ConnectionType. - * @return Returns the String - */ - @JsonGetter("connectionType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getConnectionType() { - return connectionType; - } - - /** - * Setter for ConnectionType. - * @param connectionType Value for String - */ - @JsonSetter("connectionType") - public void setConnectionType(String connectionType) { - this.connectionType = connectionType; - } - - /** - * Getter for Configuration. - * Configuration properties of the connection - * @return Returns the String - */ - @JsonGetter("configuration") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * Configuration properties of the connection - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Getter for IsExternal. - * @return Returns the Boolean - */ - @JsonGetter("isExternal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsExternal() { - return isExternal; - } - - /** - * Setter for IsExternal. - * @param isExternal Value for Boolean - */ - @JsonSetter("isExternal") - public void setIsExternal(Boolean isExternal) { - this.isExternal = isExternal; - } - - /** - * Getter for IsDeprecated. - * Indicates if the connection is deprecated - * @return Returns the Boolean - */ - @JsonGetter("isDeprecated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeprecated() { - return isDeprecated; - } - - /** - * Setter for IsDeprecated. - * Indicates if the connection is deprecated - * @param isDeprecated Value for Boolean - */ - @JsonSetter("isDeprecated") - public void setIsDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - } - - /** - * Getter for IsDeleted. - * Indicates if the connection is deleted - * @return Returns the Boolean - */ - @JsonGetter("isDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeleted() { - return isDeleted; - } - - /** - * Setter for IsDeleted. - * Indicates if the connection is deleted - * @param isDeleted Value for Boolean - */ - @JsonSetter("isDeleted") - public void setIsDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - } - - /** - * Getter for IsHidden. - * Indicates if the connection is hideen - * @return Returns the Boolean - */ - @JsonGetter("isHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsHidden() { - return isHidden; - } - - /** - * Setter for IsHidden. - * Indicates if the connection is hideen - * @param isHidden Value for Boolean - */ - @JsonSetter("isHidden") - public void setIsHidden(Boolean isHidden) { - this.isHidden = isHidden; - } - - /** - * Getter for Complete. - * Indicates if the all the properties of connection is provided - * @return Returns the Boolean - */ - @JsonGetter("complete") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getComplete() { - return complete; - } - - /** - * Setter for Complete. - * Indicates if the all the properties of connection is provided - * @param complete Value for Boolean - */ - @JsonSetter("complete") - public void setComplete(Boolean complete) { - this.complete = complete; - } - - /** - * Getter for IndexVersion. - * @return Returns the Double - */ - @JsonGetter("indexVersion") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getIndexVersion() { - return indexVersion; - } - - /** - * Setter for IndexVersion. - * @param indexVersion Value for Double - */ - @JsonSetter("indexVersion") - public void setIndexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - } - - /** - * Getter for GenerationNum. - * @return Returns the Double - */ - @JsonGetter("generationNum") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getGenerationNum() { - return generationNum; - } - - /** - * Setter for GenerationNum. - * @param generationNum Value for Double - */ - @JsonSetter("generationNum") - public void setGenerationNum(Double generationNum) { - this.generationNum = generationNum; - } - - /** - * Getter for Created. - * Date and time when the connection was created - * @return Returns the String - */ - @JsonGetter("created") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getCreated() { - return created; - } - - /** - * Setter for Created. - * Date and time when the connection was created - * @param created Value for String - */ - @JsonSetter("created") - public void setCreated(String created) { - this.created = created; - } - - /** - * Getter for Modified. - * Date and time of last modification of the connection - * @return Returns the String - */ - @JsonGetter("modified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getModified() { - return modified; - } - - /** - * Setter for Modified. - * Date and time of last modification of the connection - * @param modified Value for String - */ - @JsonSetter("modified") - public void setModified(String modified) { - this.modified = modified; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for ModifiedBy. - * @return Returns the UserNameAndID - */ - @JsonGetter("modifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getModifiedBy() { - return modifiedBy; - } - - /** - * Setter for ModifiedBy. - * @param modifiedBy Value for UserNameAndID - */ - @JsonSetter("modifiedBy") - public void setModifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * Getter for Owner. - * @return Returns the UserNameAndID - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getOwner() { - return owner; - } - - /** - * Setter for Owner. - * @param owner Value for UserNameAndID - */ - @JsonSetter("owner") - public void setOwner(UserNameAndID owner) { - this.owner = owner; - } - - /** - * Getter for Tags. - * List of tags assigned to the connection - * @return Returns the List of String - */ - @JsonGetter("tags") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTags() { - return tags; - } - - /** - * Setter for Tags. - * List of tags assigned to the connection - * @param tags Value for List of String - */ - @JsonSetter("tags") - public void setTags(List tags) { - this.tags = tags; - } - - /** - * Getter for Tables. - * List of tables linked to this connection - * @return Returns the List of TableList - */ - @JsonGetter("tables") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTables() { - return tables; - } - - /** - * Setter for Tables. - * List of tables linked to this connection - * @param tables Value for List of TableList - */ - @JsonSetter("tables") - public void setTables(List tables) { - this.tables = tables; - } - - /** - * Converts this ConnectionResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionResponse [" + "name=" + name + ", description=" + description + ", type=" - + type + ", id=" + id + ", scheduled=" + scheduled + ", connectionType=" - + connectionType + ", configuration=" + configuration + ", isExternal=" + isExternal - + ", isDeprecated=" + isDeprecated + ", isDeleted=" + isDeleted + ", isHidden=" - + isHidden + ", complete=" + complete + ", indexVersion=" + indexVersion - + ", generationNum=" + generationNum + ", created=" + created + ", modified=" - + modified + ", author=" + author + ", modifiedBy=" + modifiedBy + ", owner=" - + owner + ", tags=" + tags + ", tables=" + tables + "]"; - } - - /** - * Builds a new {@link ConnectionResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .description(getDescription()) - .type(getType()) - .id(getId()) - .scheduled(getScheduled()) - .connectionType(getConnectionType()) - .configuration(getConfiguration()) - .isExternal(getIsExternal()) - .isDeprecated(getIsDeprecated()) - .isDeleted(getIsDeleted()) - .isHidden(getIsHidden()) - .complete(getComplete()) - .indexVersion(getIndexVersion()) - .generationNum(getGenerationNum()) - .created(getCreated()) - .modified(getModified()) - .author(getAuthor()) - .modifiedBy(getModifiedBy()) - .owner(getOwner()) - .tags(getTags()) - .tables(getTables()); - return builder; - } - - /** - * Class to build instances of {@link ConnectionResponse}. - */ - public static class Builder { - private String name; - private String description; - private String type; - private String id; - private Boolean scheduled; - private String connectionType; - private String configuration; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean complete; - private Double indexVersion; - private Double generationNum; - private String created; - private String modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - private List tags; - private List tables; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for scheduled. - * @param scheduled Boolean value for scheduled. - * @return Builder - */ - public Builder scheduled(Boolean scheduled) { - this.scheduled = scheduled; - return this; - } - - /** - * Setter for connectionType. - * @param connectionType String value for connectionType. - * @return Builder - */ - public Builder connectionType(String connectionType) { - this.connectionType = connectionType; - return this; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Setter for isExternal. - * @param isExternal Boolean value for isExternal. - * @return Builder - */ - public Builder isExternal(Boolean isExternal) { - this.isExternal = isExternal; - return this; - } - - /** - * Setter for isDeprecated. - * @param isDeprecated Boolean value for isDeprecated. - * @return Builder - */ - public Builder isDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - return this; - } - - /** - * Setter for isDeleted. - * @param isDeleted Boolean value for isDeleted. - * @return Builder - */ - public Builder isDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - return this; - } - - /** - * Setter for isHidden. - * @param isHidden Boolean value for isHidden. - * @return Builder - */ - public Builder isHidden(Boolean isHidden) { - this.isHidden = isHidden; - return this; - } - - /** - * Setter for complete. - * @param complete Boolean value for complete. - * @return Builder - */ - public Builder complete(Boolean complete) { - this.complete = complete; - return this; - } - - /** - * Setter for indexVersion. - * @param indexVersion Double value for indexVersion. - * @return Builder - */ - public Builder indexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - return this; - } - - /** - * Setter for generationNum. - * @param generationNum Double value for generationNum. - * @return Builder - */ - public Builder generationNum(Double generationNum) { - this.generationNum = generationNum; - return this; - } - - /** - * Setter for created. - * @param created String value for created. - * @return Builder - */ - public Builder created(String created) { - this.created = created; - return this; - } - - /** - * Setter for modified. - * @param modified String value for modified. - * @return Builder - */ - public Builder modified(String modified) { - this.modified = modified; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for modifiedBy. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @return Builder - */ - public Builder modifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - /** - * Setter for owner. - * @param owner UserNameAndID value for owner. - * @return Builder - */ - public Builder owner(UserNameAndID owner) { - this.owner = owner; - return this; - } - - /** - * Setter for tags. - * @param tags List of String value for tags. - * @return Builder - */ - public Builder tags(List tags) { - this.tags = tags; - return this; - } - - /** - * Setter for tables. - * @param tables List of TableList value for tables. - * @return Builder - */ - public Builder tables(List tables) { - this.tables = tables; - return this; - } - - /** - * Builds a new {@link ConnectionResponse} object using the set fields. - * @return {@link ConnectionResponse} - */ - public ConnectionResponse build() { - return new ConnectionResponse(name, description, type, id, scheduled, connectionType, - configuration, isExternal, isDeprecated, isDeleted, isHidden, complete, - indexVersion, generationNum, created, modified, author, modifiedBy, owner, tags, - tables); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionTableColumnsInput.java b/Java/src/main/java/localhost/models/ConnectionTableColumnsInput.java deleted file mode 100644 index 236e4fa14..000000000 --- a/Java/src/main/java/localhost/models/ConnectionTableColumnsInput.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for ConnectionTableColumnsInput type. - */ -public class ConnectionTableColumnsInput { - private String dbName; - private String schemaName; - private String name; - - /** - * Default constructor. - */ - public ConnectionTableColumnsInput() { - } - - /** - * Initialization constructor. - * @param dbName String value for dbName. - * @param schemaName String value for schemaName. - * @param name String value for name. - */ - public ConnectionTableColumnsInput( - String dbName, - String schemaName, - String name) { - this.dbName = dbName; - this.schemaName = schemaName; - this.name = name; - } - - /** - * Getter for DbName. - * Name of the database - * @return Returns the String - */ - @JsonGetter("dbName") - public String getDbName() { - return dbName; - } - - /** - * Setter for DbName. - * Name of the database - * @param dbName Value for String - */ - @JsonSetter("dbName") - public void setDbName(String dbName) { - this.dbName = dbName; - } - - /** - * Getter for SchemaName. - * Name of the schema - * @return Returns the String - */ - @JsonGetter("schemaName") - public String getSchemaName() { - return schemaName; - } - - /** - * Setter for SchemaName. - * Name of the schema - * @param schemaName Value for String - */ - @JsonSetter("schemaName") - public void setSchemaName(String schemaName) { - this.schemaName = schemaName; - } - - /** - * Getter for Name. - * Name of the table - * @return Returns the String - */ - @JsonGetter("name") - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the table - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Converts this ConnectionTableColumnsInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionTableColumnsInput [" + "dbName=" + dbName + ", schemaName=" + schemaName - + ", name=" + name + "]"; - } - - /** - * Builds a new {@link ConnectionTableColumnsInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionTableColumnsInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(dbName, schemaName, name); - return builder; - } - - /** - * Class to build instances of {@link ConnectionTableColumnsInput}. - */ - public static class Builder { - private String dbName; - private String schemaName; - private String name; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param dbName String value for dbName. - * @param schemaName String value for schemaName. - * @param name String value for name. - */ - public Builder(String dbName, String schemaName, String name) { - this.dbName = dbName; - this.schemaName = schemaName; - this.name = name; - } - - /** - * Setter for dbName. - * @param dbName String value for dbName. - * @return Builder - */ - public Builder dbName(String dbName) { - this.dbName = dbName; - return this; - } - - /** - * Setter for schemaName. - * @param schemaName String value for schemaName. - * @return Builder - */ - public Builder schemaName(String schemaName) { - this.schemaName = schemaName; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Builds a new {@link ConnectionTableColumnsInput} object using the set fields. - * @return {@link ConnectionTableColumnsInput} - */ - public ConnectionTableColumnsInput build() { - return new ConnectionTableColumnsInput(dbName, schemaName, name); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionTableColumnsResponse.java b/Java/src/main/java/localhost/models/ConnectionTableColumnsResponse.java deleted file mode 100644 index 1758eb482..000000000 --- a/Java/src/main/java/localhost/models/ConnectionTableColumnsResponse.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for ConnectionTableColumnsResponse type. - */ -public class ConnectionTableColumnsResponse { - private String id; - private List table; - - /** - * Default constructor. - */ - public ConnectionTableColumnsResponse() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param table List of ConnectionColumnsShema value for table. - */ - public ConnectionTableColumnsResponse( - String id, - List table) { - this.id = id; - this.table = table; - } - - /** - * Getter for Id. - * Connection id - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * Connection id - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Table. - * List of table details - * @return Returns the List of ConnectionColumnsShema - */ - @JsonGetter("table") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTable() { - return table; - } - - /** - * Setter for Table. - * List of table details - * @param table Value for List of ConnectionColumnsShema - */ - @JsonSetter("table") - public void setTable(List table) { - this.table = table; - } - - /** - * Converts this ConnectionTableColumnsResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionTableColumnsResponse [" + "id=" + id + ", table=" + table + "]"; - } - - /** - * Builds a new {@link ConnectionTableColumnsResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionTableColumnsResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .table(getTable()); - return builder; - } - - /** - * Class to build instances of {@link ConnectionTableColumnsResponse}. - */ - public static class Builder { - private String id; - private List table; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for table. - * @param table List of ConnectionColumnsShema value for table. - * @return Builder - */ - public Builder table(List table) { - this.table = table; - return this; - } - - /** - * Builds a new {@link ConnectionTableColumnsResponse} object using the set fields. - * @return {@link ConnectionTableColumnsResponse} - */ - public ConnectionTableColumnsResponse build() { - return new ConnectionTableColumnsResponse(id, table); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionTableResponse.java b/Java/src/main/java/localhost/models/ConnectionTableResponse.java deleted file mode 100644 index 2bbf121d5..000000000 --- a/Java/src/main/java/localhost/models/ConnectionTableResponse.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for ConnectionTableResponse type. - */ -public class ConnectionTableResponse { - private String id; - private List database; - - /** - * Default constructor. - */ - public ConnectionTableResponse() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param database List of ConnectionDatabaseType value for database. - */ - public ConnectionTableResponse( - String id, - List database) { - this.id = id; - this.database = database; - } - - /** - * Getter for Id. - * Connection id - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * Connection id - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Database. - * List of databases - * @return Returns the List of ConnectionDatabaseType - */ - @JsonGetter("database") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getDatabase() { - return database; - } - - /** - * Setter for Database. - * List of databases - * @param database Value for List of ConnectionDatabaseType - */ - @JsonSetter("database") - public void setDatabase(List database) { - this.database = database; - } - - /** - * Converts this ConnectionTableResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionTableResponse [" + "id=" + id + ", database=" + database + "]"; - } - - /** - * Builds a new {@link ConnectionTableResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionTableResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .database(getDatabase()); - return builder; - } - - /** - * Class to build instances of {@link ConnectionTableResponse}. - */ - public static class Builder { - private String id; - private List database; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for database. - * @param database List of ConnectionDatabaseType value for database. - * @return Builder - */ - public Builder database(List database) { - this.database = database; - return this; - } - - /** - * Builds a new {@link ConnectionTableResponse} object using the set fields. - * @return {@link ConnectionTableResponse} - */ - public ConnectionTableResponse build() { - return new ConnectionTableResponse(id, database); - } - } -} diff --git a/Java/src/main/java/localhost/models/ConnectionTableSchema.java b/Java/src/main/java/localhost/models/ConnectionTableSchema.java deleted file mode 100644 index 75206bae2..000000000 --- a/Java/src/main/java/localhost/models/ConnectionTableSchema.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for ConnectionTableSchema type. - */ -public class ConnectionTableSchema { - private String name; - private List table; - - /** - * Default constructor. - */ - public ConnectionTableSchema() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param table List of ConnectionColumn value for table. - */ - public ConnectionTableSchema( - String name, - List table) { - this.name = name; - this.table = table; - } - - /** - * Getter for Name. - * Name of the schema - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the schema - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Table. - * List of table details - * @return Returns the List of ConnectionColumn - */ - @JsonGetter("table") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTable() { - return table; - } - - /** - * Setter for Table. - * List of table details - * @param table Value for List of ConnectionColumn - */ - @JsonSetter("table") - public void setTable(List table) { - this.table = table; - } - - /** - * Converts this ConnectionTableSchema into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ConnectionTableSchema [" + "name=" + name + ", table=" + table + "]"; - } - - /** - * Builds a new {@link ConnectionTableSchema.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ConnectionTableSchema.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .table(getTable()); - return builder; - } - - /** - * Class to build instances of {@link ConnectionTableSchema}. - */ - public static class Builder { - private String name; - private List table; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for table. - * @param table List of ConnectionColumn value for table. - * @return Builder - */ - public Builder table(List table) { - this.table = table; - return this; - } - - /** - * Builds a new {@link ConnectionTableSchema} object using the set fields. - * @return {@link ConnectionTableSchema} - */ - public ConnectionTableSchema build() { - return new ConnectionTableSchema(name, table); - } - } -} diff --git a/Java/src/main/java/localhost/models/CreateConnectionResponse.java b/Java/src/main/java/localhost/models/CreateConnectionResponse.java deleted file mode 100644 index d6eb7a463..000000000 --- a/Java/src/main/java/localhost/models/CreateConnectionResponse.java +++ /dev/null @@ -1,841 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for CreateConnectionResponse type. - */ -public class CreateConnectionResponse { - private String name; - private String description; - private String type; - private String id; - private Boolean scheduled; - private String connectionType; - private String configuration; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean complete; - private Double indexVersion; - private Double generationNum; - private String created; - private String modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - private List tags; - private List tables; - - /** - * Default constructor. - */ - public CreateConnectionResponse() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param description String value for description. - * @param type String value for type. - * @param id String value for id. - * @param scheduled Boolean value for scheduled. - * @param connectionType String value for connectionType. - * @param configuration String value for configuration. - * @param isExternal Boolean value for isExternal. - * @param isDeprecated Boolean value for isDeprecated. - * @param isDeleted Boolean value for isDeleted. - * @param isHidden Boolean value for isHidden. - * @param complete Boolean value for complete. - * @param indexVersion Double value for indexVersion. - * @param generationNum Double value for generationNum. - * @param created String value for created. - * @param modified String value for modified. - * @param author UserNameAndID value for author. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @param owner UserNameAndID value for owner. - * @param tags List of String value for tags. - * @param tables List of String value for tables. - */ - public CreateConnectionResponse( - String name, - String description, - String type, - String id, - Boolean scheduled, - String connectionType, - String configuration, - Boolean isExternal, - Boolean isDeprecated, - Boolean isDeleted, - Boolean isHidden, - Boolean complete, - Double indexVersion, - Double generationNum, - String created, - String modified, - UserNameAndID author, - UserNameAndID modifiedBy, - UserNameAndID owner, - List tags, - List tables) { - this.name = name; - this.description = description; - this.type = type; - this.id = id; - this.scheduled = scheduled; - this.connectionType = connectionType; - this.configuration = configuration; - this.isExternal = isExternal; - this.isDeprecated = isDeprecated; - this.isDeleted = isDeleted; - this.isHidden = isHidden; - this.complete = complete; - this.indexVersion = indexVersion; - this.generationNum = generationNum; - this.created = created; - this.modified = modified; - this.author = author; - this.modifiedBy = modifiedBy; - this.owner = owner; - this.tags = tags; - this.tables = tables; - } - - /** - * Getter for Name. - * Name of the connection - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the connection - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Description. - * Description associated with the connection - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description associated with the connection - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Type. - * Type of the connection. The database associated with this type can be obtained from the - * response returned by the /tspublic/rest/v2/connection/types API endpoint. - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Type of the connection. The database associated with this type can be obtained from the - * response returned by the /tspublic/rest/v2/connection/types API endpoint. - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Id. - * GUID of the connection - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the connection - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Scheduled. - * Indicates if the data sync is scheduled for this connection - * @return Returns the Boolean - */ - @JsonGetter("scheduled") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getScheduled() { - return scheduled; - } - - /** - * Setter for Scheduled. - * Indicates if the data sync is scheduled for this connection - * @param scheduled Value for Boolean - */ - @JsonSetter("scheduled") - public void setScheduled(Boolean scheduled) { - this.scheduled = scheduled; - } - - /** - * Getter for ConnectionType. - * @return Returns the String - */ - @JsonGetter("connectionType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getConnectionType() { - return connectionType; - } - - /** - * Setter for ConnectionType. - * @param connectionType Value for String - */ - @JsonSetter("connectionType") - public void setConnectionType(String connectionType) { - this.connectionType = connectionType; - } - - /** - * Getter for Configuration. - * Configuration properties of the connection - * @return Returns the String - */ - @JsonGetter("configuration") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * Configuration properties of the connection - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Getter for IsExternal. - * @return Returns the Boolean - */ - @JsonGetter("isExternal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsExternal() { - return isExternal; - } - - /** - * Setter for IsExternal. - * @param isExternal Value for Boolean - */ - @JsonSetter("isExternal") - public void setIsExternal(Boolean isExternal) { - this.isExternal = isExternal; - } - - /** - * Getter for IsDeprecated. - * Indicates if the connection is deprecated - * @return Returns the Boolean - */ - @JsonGetter("isDeprecated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeprecated() { - return isDeprecated; - } - - /** - * Setter for IsDeprecated. - * Indicates if the connection is deprecated - * @param isDeprecated Value for Boolean - */ - @JsonSetter("isDeprecated") - public void setIsDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - } - - /** - * Getter for IsDeleted. - * Indicates if the connection is deleted - * @return Returns the Boolean - */ - @JsonGetter("isDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeleted() { - return isDeleted; - } - - /** - * Setter for IsDeleted. - * Indicates if the connection is deleted - * @param isDeleted Value for Boolean - */ - @JsonSetter("isDeleted") - public void setIsDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - } - - /** - * Getter for IsHidden. - * Indicates if the connection is hideen - * @return Returns the Boolean - */ - @JsonGetter("isHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsHidden() { - return isHidden; - } - - /** - * Setter for IsHidden. - * Indicates if the connection is hideen - * @param isHidden Value for Boolean - */ - @JsonSetter("isHidden") - public void setIsHidden(Boolean isHidden) { - this.isHidden = isHidden; - } - - /** - * Getter for Complete. - * Indicates if the all the properties of connection is provided - * @return Returns the Boolean - */ - @JsonGetter("complete") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getComplete() { - return complete; - } - - /** - * Setter for Complete. - * Indicates if the all the properties of connection is provided - * @param complete Value for Boolean - */ - @JsonSetter("complete") - public void setComplete(Boolean complete) { - this.complete = complete; - } - - /** - * Getter for IndexVersion. - * @return Returns the Double - */ - @JsonGetter("indexVersion") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getIndexVersion() { - return indexVersion; - } - - /** - * Setter for IndexVersion. - * @param indexVersion Value for Double - */ - @JsonSetter("indexVersion") - public void setIndexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - } - - /** - * Getter for GenerationNum. - * @return Returns the Double - */ - @JsonGetter("generationNum") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getGenerationNum() { - return generationNum; - } - - /** - * Setter for GenerationNum. - * @param generationNum Value for Double - */ - @JsonSetter("generationNum") - public void setGenerationNum(Double generationNum) { - this.generationNum = generationNum; - } - - /** - * Getter for Created. - * Date and time when user account was created - * @return Returns the String - */ - @JsonGetter("created") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getCreated() { - return created; - } - - /** - * Setter for Created. - * Date and time when user account was created - * @param created Value for String - */ - @JsonSetter("created") - public void setCreated(String created) { - this.created = created; - } - - /** - * Getter for Modified. - * Date and time of last modification of user account - * @return Returns the String - */ - @JsonGetter("modified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getModified() { - return modified; - } - - /** - * Setter for Modified. - * Date and time of last modification of user account - * @param modified Value for String - */ - @JsonSetter("modified") - public void setModified(String modified) { - this.modified = modified; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for ModifiedBy. - * @return Returns the UserNameAndID - */ - @JsonGetter("modifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getModifiedBy() { - return modifiedBy; - } - - /** - * Setter for ModifiedBy. - * @param modifiedBy Value for UserNameAndID - */ - @JsonSetter("modifiedBy") - public void setModifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * Getter for Owner. - * @return Returns the UserNameAndID - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getOwner() { - return owner; - } - - /** - * Setter for Owner. - * @param owner Value for UserNameAndID - */ - @JsonSetter("owner") - public void setOwner(UserNameAndID owner) { - this.owner = owner; - } - - /** - * Getter for Tags. - * List of tags assigned to the connection - * @return Returns the List of String - */ - @JsonGetter("tags") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTags() { - return tags; - } - - /** - * Setter for Tags. - * List of tags assigned to the connection - * @param tags Value for List of String - */ - @JsonSetter("tags") - public void setTags(List tags) { - this.tags = tags; - } - - /** - * Getter for Tables. - * List of tables linked to this connection and details of the columns in the table - * @return Returns the List of String - */ - @JsonGetter("tables") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTables() { - return tables; - } - - /** - * Setter for Tables. - * List of tables linked to this connection and details of the columns in the table - * @param tables Value for List of String - */ - @JsonSetter("tables") - public void setTables(List tables) { - this.tables = tables; - } - - /** - * Converts this CreateConnectionResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "CreateConnectionResponse [" + "name=" + name + ", description=" + description - + ", type=" + type + ", id=" + id + ", scheduled=" + scheduled + ", connectionType=" - + connectionType + ", configuration=" + configuration + ", isExternal=" + isExternal - + ", isDeprecated=" + isDeprecated + ", isDeleted=" + isDeleted + ", isHidden=" - + isHidden + ", complete=" + complete + ", indexVersion=" + indexVersion - + ", generationNum=" + generationNum + ", created=" + created + ", modified=" - + modified + ", author=" + author + ", modifiedBy=" + modifiedBy + ", owner=" - + owner + ", tags=" + tags + ", tables=" + tables + "]"; - } - - /** - * Builds a new {@link CreateConnectionResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link CreateConnectionResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .description(getDescription()) - .type(getType()) - .id(getId()) - .scheduled(getScheduled()) - .connectionType(getConnectionType()) - .configuration(getConfiguration()) - .isExternal(getIsExternal()) - .isDeprecated(getIsDeprecated()) - .isDeleted(getIsDeleted()) - .isHidden(getIsHidden()) - .complete(getComplete()) - .indexVersion(getIndexVersion()) - .generationNum(getGenerationNum()) - .created(getCreated()) - .modified(getModified()) - .author(getAuthor()) - .modifiedBy(getModifiedBy()) - .owner(getOwner()) - .tags(getTags()) - .tables(getTables()); - return builder; - } - - /** - * Class to build instances of {@link CreateConnectionResponse}. - */ - public static class Builder { - private String name; - private String description; - private String type; - private String id; - private Boolean scheduled; - private String connectionType; - private String configuration; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean complete; - private Double indexVersion; - private Double generationNum; - private String created; - private String modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - private List tags; - private List tables; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for scheduled. - * @param scheduled Boolean value for scheduled. - * @return Builder - */ - public Builder scheduled(Boolean scheduled) { - this.scheduled = scheduled; - return this; - } - - /** - * Setter for connectionType. - * @param connectionType String value for connectionType. - * @return Builder - */ - public Builder connectionType(String connectionType) { - this.connectionType = connectionType; - return this; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Setter for isExternal. - * @param isExternal Boolean value for isExternal. - * @return Builder - */ - public Builder isExternal(Boolean isExternal) { - this.isExternal = isExternal; - return this; - } - - /** - * Setter for isDeprecated. - * @param isDeprecated Boolean value for isDeprecated. - * @return Builder - */ - public Builder isDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - return this; - } - - /** - * Setter for isDeleted. - * @param isDeleted Boolean value for isDeleted. - * @return Builder - */ - public Builder isDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - return this; - } - - /** - * Setter for isHidden. - * @param isHidden Boolean value for isHidden. - * @return Builder - */ - public Builder isHidden(Boolean isHidden) { - this.isHidden = isHidden; - return this; - } - - /** - * Setter for complete. - * @param complete Boolean value for complete. - * @return Builder - */ - public Builder complete(Boolean complete) { - this.complete = complete; - return this; - } - - /** - * Setter for indexVersion. - * @param indexVersion Double value for indexVersion. - * @return Builder - */ - public Builder indexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - return this; - } - - /** - * Setter for generationNum. - * @param generationNum Double value for generationNum. - * @return Builder - */ - public Builder generationNum(Double generationNum) { - this.generationNum = generationNum; - return this; - } - - /** - * Setter for created. - * @param created String value for created. - * @return Builder - */ - public Builder created(String created) { - this.created = created; - return this; - } - - /** - * Setter for modified. - * @param modified String value for modified. - * @return Builder - */ - public Builder modified(String modified) { - this.modified = modified; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for modifiedBy. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @return Builder - */ - public Builder modifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - /** - * Setter for owner. - * @param owner UserNameAndID value for owner. - * @return Builder - */ - public Builder owner(UserNameAndID owner) { - this.owner = owner; - return this; - } - - /** - * Setter for tags. - * @param tags List of String value for tags. - * @return Builder - */ - public Builder tags(List tags) { - this.tags = tags; - return this; - } - - /** - * Setter for tables. - * @param tables List of String value for tables. - * @return Builder - */ - public Builder tables(List tables) { - this.tables = tables; - return this; - } - - /** - * Builds a new {@link CreateConnectionResponse} object using the set fields. - * @return {@link CreateConnectionResponse} - */ - public CreateConnectionResponse build() { - return new CreateConnectionResponse(name, description, type, id, scheduled, - connectionType, configuration, isExternal, isDeprecated, isDeleted, isHidden, - complete, indexVersion, generationNum, created, modified, author, modifiedBy, - owner, tags, tables); - } - } -} diff --git a/Java/src/main/java/localhost/models/CreateTableResponse.java b/Java/src/main/java/localhost/models/CreateTableResponse.java deleted file mode 100644 index 436f144b2..000000000 --- a/Java/src/main/java/localhost/models/CreateTableResponse.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for CreateTableResponse type. - */ -public class CreateTableResponse { - private LogicalTableHeader logicalTableHeader; - private String physicalTableId; - - /** - * Default constructor. - */ - public CreateTableResponse() { - } - - /** - * Initialization constructor. - * @param logicalTableHeader LogicalTableHeader value for logicalTableHeader. - * @param physicalTableId String value for physicalTableId. - */ - public CreateTableResponse( - LogicalTableHeader logicalTableHeader, - String physicalTableId) { - this.logicalTableHeader = logicalTableHeader; - this.physicalTableId = physicalTableId; - } - - /** - * Getter for LogicalTableHeader. - * @return Returns the LogicalTableHeader - */ - @JsonGetter("logicalTableHeader") - @JsonInclude(JsonInclude.Include.NON_NULL) - public LogicalTableHeader getLogicalTableHeader() { - return logicalTableHeader; - } - - /** - * Setter for LogicalTableHeader. - * @param logicalTableHeader Value for LogicalTableHeader - */ - @JsonSetter("logicalTableHeader") - public void setLogicalTableHeader(LogicalTableHeader logicalTableHeader) { - this.logicalTableHeader = logicalTableHeader; - } - - /** - * Getter for PhysicalTableId. - * @return Returns the String - */ - @JsonGetter("physicalTableId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getPhysicalTableId() { - return physicalTableId; - } - - /** - * Setter for PhysicalTableId. - * @param physicalTableId Value for String - */ - @JsonSetter("physicalTableId") - public void setPhysicalTableId(String physicalTableId) { - this.physicalTableId = physicalTableId; - } - - /** - * Converts this CreateTableResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "CreateTableResponse [" + "logicalTableHeader=" + logicalTableHeader - + ", physicalTableId=" + physicalTableId + "]"; - } - - /** - * Builds a new {@link CreateTableResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link CreateTableResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .logicalTableHeader(getLogicalTableHeader()) - .physicalTableId(getPhysicalTableId()); - return builder; - } - - /** - * Class to build instances of {@link CreateTableResponse}. - */ - public static class Builder { - private LogicalTableHeader logicalTableHeader; - private String physicalTableId; - - - - /** - * Setter for logicalTableHeader. - * @param logicalTableHeader LogicalTableHeader value for logicalTableHeader. - * @return Builder - */ - public Builder logicalTableHeader(LogicalTableHeader logicalTableHeader) { - this.logicalTableHeader = logicalTableHeader; - return this; - } - - /** - * Setter for physicalTableId. - * @param physicalTableId String value for physicalTableId. - * @return Builder - */ - public Builder physicalTableId(String physicalTableId) { - this.physicalTableId = physicalTableId; - return this; - } - - /** - * Builds a new {@link CreateTableResponse} object using the set fields. - * @return {@link CreateTableResponse} - */ - public CreateTableResponse build() { - return new CreateTableResponse(logicalTableHeader, physicalTableId); - } - } -} diff --git a/Java/src/main/java/localhost/models/DependentPermission.java b/Java/src/main/java/localhost/models/DependentPermission.java deleted file mode 100644 index 3470f7eeb..000000000 --- a/Java/src/main/java/localhost/models/DependentPermission.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for DependentPermission type. - */ -public class DependentPermission { - private String id; - private String name; - private String type; - private String permission; - private String sharedPermission; - private List groupPermission; - - /** - * Default constructor. - */ - public DependentPermission() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param type String value for type. - * @param permission String value for permission. - * @param sharedPermission String value for sharedPermission. - * @param groupPermission List of GroupPermission value for groupPermission. - */ - public DependentPermission( - String id, - String name, - String type, - String permission, - String sharedPermission, - List groupPermission) { - this.id = id; - this.name = name; - this.type = type; - this.permission = permission; - this.sharedPermission = sharedPermission; - this.groupPermission = groupPermission; - } - - /** - * Getter for Id. - * GUID of the object - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the object - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * Name of the object - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the object - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Type. - * Indicates the type of the object - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of the object - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Permission. - * Indicates the permission which user or user group has on the object - * @return Returns the String - */ - @JsonGetter("permission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getPermission() { - return permission; - } - - /** - * Setter for Permission. - * Indicates the permission which user or user group has on the object - * @param permission Value for String - */ - @JsonSetter("permission") - public void setPermission(String permission) { - this.permission = permission; - } - - /** - * Getter for SharedPermission. - * Indicates the permission which user or user group has on the object through sharing of the - * object with this user or user group - * @return Returns the String - */ - @JsonGetter("sharedPermission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSharedPermission() { - return sharedPermission; - } - - /** - * Setter for SharedPermission. - * Indicates the permission which user or user group has on the object through sharing of the - * object with this user or user group - * @param sharedPermission Value for String - */ - @JsonSetter("sharedPermission") - public void setSharedPermission(String sharedPermission) { - this.sharedPermission = sharedPermission; - } - - /** - * Getter for GroupPermission. - * An array of object with details of permission on the user groups to which the user or user - * group belongs - * @return Returns the List of GroupPermission - */ - @JsonGetter("groupPermission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroupPermission() { - return groupPermission; - } - - /** - * Setter for GroupPermission. - * An array of object with details of permission on the user groups to which the user or user - * group belongs - * @param groupPermission Value for List of GroupPermission - */ - @JsonSetter("groupPermission") - public void setGroupPermission(List groupPermission) { - this.groupPermission = groupPermission; - } - - /** - * Converts this DependentPermission into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "DependentPermission [" + "id=" + id + ", name=" + name + ", type=" + type - + ", permission=" + permission + ", sharedPermission=" + sharedPermission - + ", groupPermission=" + groupPermission + "]"; - } - - /** - * Builds a new {@link DependentPermission.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link DependentPermission.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .type(getType()) - .permission(getPermission()) - .sharedPermission(getSharedPermission()) - .groupPermission(getGroupPermission()); - return builder; - } - - /** - * Class to build instances of {@link DependentPermission}. - */ - public static class Builder { - private String id; - private String name; - private String type; - private String permission; - private String sharedPermission; - private List groupPermission; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for permission. - * @param permission String value for permission. - * @return Builder - */ - public Builder permission(String permission) { - this.permission = permission; - return this; - } - - /** - * Setter for sharedPermission. - * @param sharedPermission String value for sharedPermission. - * @return Builder - */ - public Builder sharedPermission(String sharedPermission) { - this.sharedPermission = sharedPermission; - return this; - } - - /** - * Setter for groupPermission. - * @param groupPermission List of GroupPermission value for groupPermission. - * @return Builder - */ - public Builder groupPermission(List groupPermission) { - this.groupPermission = groupPermission; - return this; - } - - /** - * Builds a new {@link DependentPermission} object using the set fields. - * @return {@link DependentPermission} - */ - public DependentPermission build() { - return new DependentPermission(id, name, type, permission, sharedPermission, - groupPermission); - } - } -} diff --git a/Java/src/main/java/localhost/models/FormatType3Enum.java b/Java/src/main/java/localhost/models/FormatType3Enum.java deleted file mode 100644 index ae09ba34a..000000000 --- a/Java/src/main/java/localhost/models/FormatType3Enum.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * FormatType3Enum to be used. - */ -public enum FormatType3Enum { - YAML, - - JSON; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - YAML.value = "YAML"; - JSON.value = "JSON"; - - valueMap.put("YAML", YAML); - valueMap.put("JSON", JSON); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static FormatType3Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of FormatType3Enum values to list of string values. - * @param toConvert The list of FormatType3Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (FormatType3Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/FormatTypeEnum.java b/Java/src/main/java/localhost/models/FormatTypeEnum.java deleted file mode 100644 index 31df6872a..000000000 --- a/Java/src/main/java/localhost/models/FormatTypeEnum.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * FormatTypeEnum to be used. - */ -public enum FormatTypeEnum { - COMPACT, - - FULL; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - COMPACT.value = "COMPACT"; - FULL.value = "FULL"; - - valueMap.put("COMPACT", COMPACT); - valueMap.put("FULL", FULL); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static FormatTypeEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of FormatTypeEnum values to list of string values. - * @param toConvert The list of FormatTypeEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (FormatTypeEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/FromUserNameAndIDInput.java b/Java/src/main/java/localhost/models/FromUserNameAndIDInput.java deleted file mode 100644 index dcddafadc..000000000 --- a/Java/src/main/java/localhost/models/FromUserNameAndIDInput.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for FromUserNameAndIDInput type. - */ -public class FromUserNameAndIDInput { - private String name; - private String id; - - /** - * Default constructor. - */ - public FromUserNameAndIDInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public FromUserNameAndIDInput( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Username of the user - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Username of the user - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the user - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this FromUserNameAndIDInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "FromUserNameAndIDInput [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link FromUserNameAndIDInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link FromUserNameAndIDInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link FromUserNameAndIDInput}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link FromUserNameAndIDInput} object using the set fields. - * @return {@link FromUserNameAndIDInput} - */ - public FromUserNameAndIDInput build() { - return new FromUserNameAndIDInput(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/GroupNameAndID.java b/Java/src/main/java/localhost/models/GroupNameAndID.java deleted file mode 100644 index 590e02641..000000000 --- a/Java/src/main/java/localhost/models/GroupNameAndID.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for GroupNameAndID type. - */ -public class GroupNameAndID { - private String name; - private String id; - - /** - * Default constructor. - */ - public GroupNameAndID() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public GroupNameAndID( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the group - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the group - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this GroupNameAndID into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "GroupNameAndID [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link GroupNameAndID.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link GroupNameAndID.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link GroupNameAndID}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link GroupNameAndID} object using the set fields. - * @return {@link GroupNameAndID} - */ - public GroupNameAndID build() { - return new GroupNameAndID(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/GroupNameAndIDInput.java b/Java/src/main/java/localhost/models/GroupNameAndIDInput.java deleted file mode 100644 index 63ee3ce0d..000000000 --- a/Java/src/main/java/localhost/models/GroupNameAndIDInput.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for GroupNameAndIDInput type. - */ -public class GroupNameAndIDInput { - private String name; - private String id; - - /** - * Default constructor. - */ - public GroupNameAndIDInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public GroupNameAndIDInput( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the group - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the group - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this GroupNameAndIDInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "GroupNameAndIDInput [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link GroupNameAndIDInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link GroupNameAndIDInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link GroupNameAndIDInput}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link GroupNameAndIDInput} object using the set fields. - * @return {@link GroupNameAndIDInput} - */ - public GroupNameAndIDInput build() { - return new GroupNameAndIDInput(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/GroupPermission.java b/Java/src/main/java/localhost/models/GroupPermission.java deleted file mode 100644 index 3e3f5a481..000000000 --- a/Java/src/main/java/localhost/models/GroupPermission.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for GroupPermission type. - */ -public class GroupPermission { - private String id; - private String name; - private String permission; - - /** - * Default constructor. - */ - public GroupPermission() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param permission String value for permission. - */ - public GroupPermission( - String id, - String name, - String permission) { - this.id = id; - this.name = name; - this.permission = permission; - } - - /** - * Getter for Id. - * GUID of the user group - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user group - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * Name of the user group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Permission. - * Indicates the permission which user group has on the object - * @return Returns the String - */ - @JsonGetter("permission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getPermission() { - return permission; - } - - /** - * Setter for Permission. - * Indicates the permission which user group has on the object - * @param permission Value for String - */ - @JsonSetter("permission") - public void setPermission(String permission) { - this.permission = permission; - } - - /** - * Converts this GroupPermission into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "GroupPermission [" + "id=" + id + ", name=" + name + ", permission=" + permission - + "]"; - } - - /** - * Builds a new {@link GroupPermission.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link GroupPermission.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .permission(getPermission()); - return builder; - } - - /** - * Class to build instances of {@link GroupPermission}. - */ - public static class Builder { - private String id; - private String name; - private String permission; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for permission. - * @param permission String value for permission. - * @return Builder - */ - public Builder permission(String permission) { - this.permission = permission; - return this; - } - - /** - * Builds a new {@link GroupPermission} object using the set fields. - * @return {@link GroupPermission} - */ - public GroupPermission build() { - return new GroupPermission(id, name, permission); - } - } -} diff --git a/Java/src/main/java/localhost/models/GroupResponse.java b/Java/src/main/java/localhost/models/GroupResponse.java deleted file mode 100644 index c2278dc08..000000000 --- a/Java/src/main/java/localhost/models/GroupResponse.java +++ /dev/null @@ -1,1173 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for GroupResponse type. - */ -public class GroupResponse { - private String name; - private String displayName; - private String id; - private String visibility; - private String description; - private List privileges; - private List orgs; - private List groups; - private List users; - private List assignedLiveboards; - private Object userGroupContent; - private List tags; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean complete; - private Boolean isSystemPrincipal; - private String type; - private String parenttype; - private Integer groupIdx; - private Integer metadataVersion; - private String tenantId; - private Double indexVersion; - private Double generationNum; - private Double created; - private Double modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - - /** - * Default constructor. - */ - public GroupResponse() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param displayName String value for displayName. - * @param id String value for id. - * @param visibility String value for visibility. - * @param description String value for description. - * @param privileges List of String value for privileges. - * @param orgs List of OrgType value for orgs. - * @param groups List of GroupNameAndID value for groups. - * @param users List of UserNameAndID value for users. - * @param assignedLiveboards List of LiveboardNameAndID value for assignedLiveboards. - * @param userGroupContent Object value for userGroupContent. - * @param tags List of String value for tags. - * @param isDeleted Boolean value for isDeleted. - * @param isHidden Boolean value for isHidden. - * @param isExternal Boolean value for isExternal. - * @param isDeprecated Boolean value for isDeprecated. - * @param complete Boolean value for complete. - * @param isSystemPrincipal Boolean value for isSystemPrincipal. - * @param type String value for type. - * @param parenttype String value for parenttype. - * @param groupIdx Integer value for groupIdx. - * @param metadataVersion Integer value for metadataVersion. - * @param tenantId String value for tenantId. - * @param indexVersion Double value for indexVersion. - * @param generationNum Double value for generationNum. - * @param created Double value for created. - * @param modified Double value for modified. - * @param author UserNameAndID value for author. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @param owner UserNameAndID value for owner. - */ - public GroupResponse( - String name, - String displayName, - String id, - String visibility, - String description, - List privileges, - List orgs, - List groups, - List users, - List assignedLiveboards, - Object userGroupContent, - List tags, - Boolean isDeleted, - Boolean isHidden, - Boolean isExternal, - Boolean isDeprecated, - Boolean complete, - Boolean isSystemPrincipal, - String type, - String parenttype, - Integer groupIdx, - Integer metadataVersion, - String tenantId, - Double indexVersion, - Double generationNum, - Double created, - Double modified, - UserNameAndID author, - UserNameAndID modifiedBy, - UserNameAndID owner) { - this.name = name; - this.displayName = displayName; - this.id = id; - this.visibility = visibility; - this.description = description; - this.privileges = privileges; - this.orgs = orgs; - this.groups = groups; - this.users = users; - this.assignedLiveboards = assignedLiveboards; - this.userGroupContent = userGroupContent; - this.tags = tags; - this.isDeleted = isDeleted; - this.isHidden = isHidden; - this.isExternal = isExternal; - this.isDeprecated = isDeprecated; - this.complete = complete; - this.isSystemPrincipal = isSystemPrincipal; - this.type = type; - this.parenttype = parenttype; - this.groupIdx = groupIdx; - this.metadataVersion = metadataVersion; - this.tenantId = tenantId; - this.indexVersion = indexVersion; - this.generationNum = generationNum; - this.created = created; - this.modified = modified; - this.author = author; - this.modifiedBy = modifiedBy; - this.owner = owner; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for DisplayName. - * A unique display name string for the user group - * @return Returns the String - */ - @JsonGetter("displayName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDisplayName() { - return displayName; - } - - /** - * Setter for DisplayName. - * A unique display name string for the user group - * @param displayName Value for String - */ - @JsonSetter("displayName") - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - /** - * Getter for Id. - * GUID of the group - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the group - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Visibility. - * Visibility of the group - * @return Returns the String - */ - @JsonGetter("visibility") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getVisibility() { - return visibility; - } - - /** - * Setter for Visibility. - * Visibility of the group - * @param visibility Value for String - */ - @JsonSetter("visibility") - public void setVisibility(String visibility) { - this.visibility = visibility; - } - - /** - * Getter for Description. - * Description of the group - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description of the group - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Privileges. - * Privileges assigned to the group - * @return Returns the List of String - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * Privileges assigned to the group - * @param privileges Value for List of String - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Getter for Orgs. - * The organizations that user belongs to - * @return Returns the List of OrgType - */ - @JsonGetter("orgs") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getOrgs() { - return orgs; - } - - /** - * Setter for Orgs. - * The organizations that user belongs to - * @param orgs Value for List of OrgType - */ - @JsonSetter("orgs") - public void setOrgs(List orgs) { - this.orgs = orgs; - } - - /** - * Getter for Groups. - * Name of the group to which is added - * @return Returns the List of GroupNameAndID - */ - @JsonGetter("groups") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Name of the group to which is added - * @param groups Value for List of GroupNameAndID - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Getter for Users. - * User Group Information by Id or Name. - * @return Returns the List of UserNameAndID - */ - @JsonGetter("users") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUsers() { - return users; - } - - /** - * Setter for Users. - * User Group Information by Id or Name. - * @param users Value for List of UserNameAndID - */ - @JsonSetter("users") - public void setUsers(List users) { - this.users = users; - } - - /** - * Getter for AssignedLiveboards. - * Liveboards assigned to the group - * @return Returns the List of LiveboardNameAndID - */ - @JsonGetter("assignedLiveboards") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getAssignedLiveboards() { - return assignedLiveboards; - } - - /** - * Setter for AssignedLiveboards. - * Liveboards assigned to the group - * @param assignedLiveboards Value for List of LiveboardNameAndID - */ - @JsonSetter("assignedLiveboards") - public void setAssignedLiveboards(List assignedLiveboards) { - this.assignedLiveboards = assignedLiveboards; - } - - /** - * Getter for UserGroupContent. - * @return Returns the Object - */ - @JsonGetter("userGroupContent") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Object getUserGroupContent() { - return userGroupContent; - } - - /** - * Setter for UserGroupContent. - * @param userGroupContent Value for Object - */ - @JsonSetter("userGroupContent") - public void setUserGroupContent(Object userGroupContent) { - this.userGroupContent = userGroupContent; - } - - /** - * Getter for Tags. - * Tags assigned to the group - * @return Returns the List of String - */ - @JsonGetter("tags") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTags() { - return tags; - } - - /** - * Setter for Tags. - * Tags assigned to the group - * @param tags Value for List of String - */ - @JsonSetter("tags") - public void setTags(List tags) { - this.tags = tags; - } - - /** - * Getter for IsDeleted. - * Indicates if the group is deleted - * @return Returns the Boolean - */ - @JsonGetter("isDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeleted() { - return isDeleted; - } - - /** - * Setter for IsDeleted. - * Indicates if the group is deleted - * @param isDeleted Value for Boolean - */ - @JsonSetter("isDeleted") - public void setIsDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - } - - /** - * Getter for IsHidden. - * Indicates if the group is hidden - * @return Returns the Boolean - */ - @JsonGetter("isHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsHidden() { - return isHidden; - } - - /** - * Setter for IsHidden. - * Indicates if the group is hidden - * @param isHidden Value for Boolean - */ - @JsonSetter("isHidden") - public void setIsHidden(Boolean isHidden) { - this.isHidden = isHidden; - } - - /** - * Getter for IsExternal. - * Indicates if the group is from external system - * @return Returns the Boolean - */ - @JsonGetter("isExternal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsExternal() { - return isExternal; - } - - /** - * Setter for IsExternal. - * Indicates if the group is from external system - * @param isExternal Value for Boolean - */ - @JsonSetter("isExternal") - public void setIsExternal(Boolean isExternal) { - this.isExternal = isExternal; - } - - /** - * Getter for IsDeprecated. - * @return Returns the Boolean - */ - @JsonGetter("isDeprecated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeprecated() { - return isDeprecated; - } - - /** - * Setter for IsDeprecated. - * @param isDeprecated Value for Boolean - */ - @JsonSetter("isDeprecated") - public void setIsDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - } - - /** - * Getter for Complete. - * Indicates if the all the properties of group is provided - * @return Returns the Boolean - */ - @JsonGetter("complete") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getComplete() { - return complete; - } - - /** - * Setter for Complete. - * Indicates if the all the properties of group is provided - * @param complete Value for Boolean - */ - @JsonSetter("complete") - public void setComplete(Boolean complete) { - this.complete = complete; - } - - /** - * Getter for IsSystemPrincipal. - * Indicates if the group is system principal - * @return Returns the Boolean - */ - @JsonGetter("isSystemPrincipal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsSystemPrincipal() { - return isSystemPrincipal; - } - - /** - * Setter for IsSystemPrincipal. - * Indicates if the group is system principal - * @param isSystemPrincipal Value for Boolean - */ - @JsonSetter("isSystemPrincipal") - public void setIsSystemPrincipal(Boolean isSystemPrincipal) { - this.isSystemPrincipal = isSystemPrincipal; - } - - /** - * Getter for Type. - * Indicates the type of group - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of group - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Parenttype. - * Indicates the type of parent object - * @return Returns the String - */ - @JsonGetter("parenttype") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getParenttype() { - return parenttype; - } - - /** - * Setter for Parenttype. - * Indicates the type of parent object - * @param parenttype Value for String - */ - @JsonSetter("parenttype") - public void setParenttype(String parenttype) { - this.parenttype = parenttype; - } - - /** - * Getter for GroupIdx. - * @return Returns the Integer - */ - @JsonGetter("groupIdx") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getGroupIdx() { - return groupIdx; - } - - /** - * Setter for GroupIdx. - * @param groupIdx Value for Integer - */ - @JsonSetter("groupIdx") - public void setGroupIdx(Integer groupIdx) { - this.groupIdx = groupIdx; - } - - /** - * Getter for MetadataVersion. - * @return Returns the Integer - */ - @JsonGetter("metadataVersion") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getMetadataVersion() { - return metadataVersion; - } - - /** - * Setter for MetadataVersion. - * @param metadataVersion Value for Integer - */ - @JsonSetter("metadataVersion") - public void setMetadataVersion(Integer metadataVersion) { - this.metadataVersion = metadataVersion; - } - - /** - * Getter for TenantId. - * Tenant id associated with the group - * @return Returns the String - */ - @JsonGetter("tenantId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTenantId() { - return tenantId; - } - - /** - * Setter for TenantId. - * Tenant id associated with the group - * @param tenantId Value for String - */ - @JsonSetter("tenantId") - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } - - /** - * Getter for IndexVersion. - * @return Returns the Double - */ - @JsonGetter("indexVersion") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getIndexVersion() { - return indexVersion; - } - - /** - * Setter for IndexVersion. - * @param indexVersion Value for Double - */ - @JsonSetter("indexVersion") - public void setIndexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - } - - /** - * Getter for GenerationNum. - * @return Returns the Double - */ - @JsonGetter("generationNum") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getGenerationNum() { - return generationNum; - } - - /** - * Setter for GenerationNum. - * @param generationNum Value for Double - */ - @JsonSetter("generationNum") - public void setGenerationNum(Double generationNum) { - this.generationNum = generationNum; - } - - /** - * Getter for Created. - * Date and time when group was created - * @return Returns the Double - */ - @JsonGetter("created") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getCreated() { - return created; - } - - /** - * Setter for Created. - * Date and time when group was created - * @param created Value for Double - */ - @JsonSetter("created") - public void setCreated(Double created) { - this.created = created; - } - - /** - * Getter for Modified. - * Date and time of last modification of the group - * @return Returns the Double - */ - @JsonGetter("modified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getModified() { - return modified; - } - - /** - * Setter for Modified. - * Date and time of last modification of the group - * @param modified Value for Double - */ - @JsonSetter("modified") - public void setModified(Double modified) { - this.modified = modified; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for ModifiedBy. - * @return Returns the UserNameAndID - */ - @JsonGetter("modifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getModifiedBy() { - return modifiedBy; - } - - /** - * Setter for ModifiedBy. - * @param modifiedBy Value for UserNameAndID - */ - @JsonSetter("modifiedBy") - public void setModifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * Getter for Owner. - * @return Returns the UserNameAndID - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getOwner() { - return owner; - } - - /** - * Setter for Owner. - * @param owner Value for UserNameAndID - */ - @JsonSetter("owner") - public void setOwner(UserNameAndID owner) { - this.owner = owner; - } - - /** - * Converts this GroupResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "GroupResponse [" + "name=" + name + ", displayName=" + displayName + ", id=" + id - + ", visibility=" + visibility + ", description=" + description + ", privileges=" - + privileges + ", orgs=" + orgs + ", groups=" + groups + ", users=" + users - + ", assignedLiveboards=" + assignedLiveboards + ", userGroupContent=" - + userGroupContent + ", tags=" + tags + ", isDeleted=" + isDeleted + ", isHidden=" - + isHidden + ", isExternal=" + isExternal + ", isDeprecated=" + isDeprecated - + ", complete=" + complete + ", isSystemPrincipal=" + isSystemPrincipal + ", type=" - + type + ", parenttype=" + parenttype + ", groupIdx=" + groupIdx - + ", metadataVersion=" + metadataVersion + ", tenantId=" + tenantId - + ", indexVersion=" + indexVersion + ", generationNum=" + generationNum - + ", created=" + created + ", modified=" + modified + ", author=" + author - + ", modifiedBy=" + modifiedBy + ", owner=" + owner + "]"; - } - - /** - * Builds a new {@link GroupResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link GroupResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .displayName(getDisplayName()) - .id(getId()) - .visibility(getVisibility()) - .description(getDescription()) - .privileges(getPrivileges()) - .orgs(getOrgs()) - .groups(getGroups()) - .users(getUsers()) - .assignedLiveboards(getAssignedLiveboards()) - .userGroupContent(getUserGroupContent()) - .tags(getTags()) - .isDeleted(getIsDeleted()) - .isHidden(getIsHidden()) - .isExternal(getIsExternal()) - .isDeprecated(getIsDeprecated()) - .complete(getComplete()) - .isSystemPrincipal(getIsSystemPrincipal()) - .type(getType()) - .parenttype(getParenttype()) - .groupIdx(getGroupIdx()) - .metadataVersion(getMetadataVersion()) - .tenantId(getTenantId()) - .indexVersion(getIndexVersion()) - .generationNum(getGenerationNum()) - .created(getCreated()) - .modified(getModified()) - .author(getAuthor()) - .modifiedBy(getModifiedBy()) - .owner(getOwner()); - return builder; - } - - /** - * Class to build instances of {@link GroupResponse}. - */ - public static class Builder { - private String name; - private String displayName; - private String id; - private String visibility; - private String description; - private List privileges; - private List orgs; - private List groups; - private List users; - private List assignedLiveboards; - private Object userGroupContent; - private List tags; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean complete; - private Boolean isSystemPrincipal; - private String type; - private String parenttype; - private Integer groupIdx; - private Integer metadataVersion; - private String tenantId; - private Double indexVersion; - private Double generationNum; - private Double created; - private Double modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for displayName. - * @param displayName String value for displayName. - * @return Builder - */ - public Builder displayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for visibility. - * @param visibility String value for visibility. - * @return Builder - */ - public Builder visibility(String visibility) { - this.visibility = visibility; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of String value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Setter for orgs. - * @param orgs List of OrgType value for orgs. - * @return Builder - */ - public Builder orgs(List orgs) { - this.orgs = orgs; - return this; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndID value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for users. - * @param users List of UserNameAndID value for users. - * @return Builder - */ - public Builder users(List users) { - this.users = users; - return this; - } - - /** - * Setter for assignedLiveboards. - * @param assignedLiveboards List of LiveboardNameAndID value for assignedLiveboards. - * @return Builder - */ - public Builder assignedLiveboards(List assignedLiveboards) { - this.assignedLiveboards = assignedLiveboards; - return this; - } - - /** - * Setter for userGroupContent. - * @param userGroupContent Object value for userGroupContent. - * @return Builder - */ - public Builder userGroupContent(Object userGroupContent) { - this.userGroupContent = userGroupContent; - return this; - } - - /** - * Setter for tags. - * @param tags List of String value for tags. - * @return Builder - */ - public Builder tags(List tags) { - this.tags = tags; - return this; - } - - /** - * Setter for isDeleted. - * @param isDeleted Boolean value for isDeleted. - * @return Builder - */ - public Builder isDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - return this; - } - - /** - * Setter for isHidden. - * @param isHidden Boolean value for isHidden. - * @return Builder - */ - public Builder isHidden(Boolean isHidden) { - this.isHidden = isHidden; - return this; - } - - /** - * Setter for isExternal. - * @param isExternal Boolean value for isExternal. - * @return Builder - */ - public Builder isExternal(Boolean isExternal) { - this.isExternal = isExternal; - return this; - } - - /** - * Setter for isDeprecated. - * @param isDeprecated Boolean value for isDeprecated. - * @return Builder - */ - public Builder isDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - return this; - } - - /** - * Setter for complete. - * @param complete Boolean value for complete. - * @return Builder - */ - public Builder complete(Boolean complete) { - this.complete = complete; - return this; - } - - /** - * Setter for isSystemPrincipal. - * @param isSystemPrincipal Boolean value for isSystemPrincipal. - * @return Builder - */ - public Builder isSystemPrincipal(Boolean isSystemPrincipal) { - this.isSystemPrincipal = isSystemPrincipal; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for parenttype. - * @param parenttype String value for parenttype. - * @return Builder - */ - public Builder parenttype(String parenttype) { - this.parenttype = parenttype; - return this; - } - - /** - * Setter for groupIdx. - * @param groupIdx Integer value for groupIdx. - * @return Builder - */ - public Builder groupIdx(Integer groupIdx) { - this.groupIdx = groupIdx; - return this; - } - - /** - * Setter for metadataVersion. - * @param metadataVersion Integer value for metadataVersion. - * @return Builder - */ - public Builder metadataVersion(Integer metadataVersion) { - this.metadataVersion = metadataVersion; - return this; - } - - /** - * Setter for tenantId. - * @param tenantId String value for tenantId. - * @return Builder - */ - public Builder tenantId(String tenantId) { - this.tenantId = tenantId; - return this; - } - - /** - * Setter for indexVersion. - * @param indexVersion Double value for indexVersion. - * @return Builder - */ - public Builder indexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - return this; - } - - /** - * Setter for generationNum. - * @param generationNum Double value for generationNum. - * @return Builder - */ - public Builder generationNum(Double generationNum) { - this.generationNum = generationNum; - return this; - } - - /** - * Setter for created. - * @param created Double value for created. - * @return Builder - */ - public Builder created(Double created) { - this.created = created; - return this; - } - - /** - * Setter for modified. - * @param modified Double value for modified. - * @return Builder - */ - public Builder modified(Double modified) { - this.modified = modified; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for modifiedBy. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @return Builder - */ - public Builder modifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - /** - * Setter for owner. - * @param owner UserNameAndID value for owner. - * @return Builder - */ - public Builder owner(UserNameAndID owner) { - this.owner = owner; - return this; - } - - /** - * Builds a new {@link GroupResponse} object using the set fields. - * @return {@link GroupResponse} - */ - public GroupResponse build() { - return new GroupResponse(name, displayName, id, visibility, description, privileges, - orgs, groups, users, assignedLiveboards, userGroupContent, tags, isDeleted, - isHidden, isExternal, isDeprecated, complete, isSystemPrincipal, type, - parenttype, groupIdx, metadataVersion, tenantId, indexVersion, generationNum, - created, modified, author, modifiedBy, owner); - } - } -} diff --git a/Java/src/main/java/localhost/models/HomeLiveboardResponse.java b/Java/src/main/java/localhost/models/HomeLiveboardResponse.java deleted file mode 100644 index bea95d2b1..000000000 --- a/Java/src/main/java/localhost/models/HomeLiveboardResponse.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for HomeLiveboardResponse type. - */ -public class HomeLiveboardResponse { - private String userName; - private String userId; - private String liveboardName; - private String liveboardId; - - /** - * Default constructor. - */ - public HomeLiveboardResponse() { - } - - /** - * Initialization constructor. - * @param userName String value for userName. - * @param userId String value for userId. - * @param liveboardName String value for liveboardName. - * @param liveboardId String value for liveboardId. - */ - public HomeLiveboardResponse( - String userName, - String userId, - String liveboardName, - String liveboardId) { - this.userName = userName; - this.userId = userId; - this.liveboardName = liveboardName; - this.liveboardId = liveboardId; - } - - /** - * Getter for UserName. - * Name of the user - * @return Returns the String - */ - @JsonGetter("userName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserName() { - return userName; - } - - /** - * Setter for UserName. - * Name of the user - * @param userName Value for String - */ - @JsonSetter("userName") - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * Getter for UserId. - * The GUID of the user - * @return Returns the String - */ - @JsonGetter("userId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserId() { - return userId; - } - - /** - * Setter for UserId. - * The GUID of the user - * @param userId Value for String - */ - @JsonSetter("userId") - public void setUserId(String userId) { - this.userId = userId; - } - - /** - * Getter for LiveboardName. - * Name of the liveboard - * @return Returns the String - */ - @JsonGetter("liveboardName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getLiveboardName() { - return liveboardName; - } - - /** - * Setter for LiveboardName. - * Name of the liveboard - * @param liveboardName Value for String - */ - @JsonSetter("liveboardName") - public void setLiveboardName(String liveboardName) { - this.liveboardName = liveboardName; - } - - /** - * Getter for LiveboardId. - * The GUID of the liveboard - * @return Returns the String - */ - @JsonGetter("liveboardId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getLiveboardId() { - return liveboardId; - } - - /** - * Setter for LiveboardId. - * The GUID of the liveboard - * @param liveboardId Value for String - */ - @JsonSetter("liveboardId") - public void setLiveboardId(String liveboardId) { - this.liveboardId = liveboardId; - } - - /** - * Converts this HomeLiveboardResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "HomeLiveboardResponse [" + "userName=" + userName + ", userId=" + userId - + ", liveboardName=" + liveboardName + ", liveboardId=" + liveboardId + "]"; - } - - /** - * Builds a new {@link HomeLiveboardResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link HomeLiveboardResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .userName(getUserName()) - .userId(getUserId()) - .liveboardName(getLiveboardName()) - .liveboardId(getLiveboardId()); - return builder; - } - - /** - * Class to build instances of {@link HomeLiveboardResponse}. - */ - public static class Builder { - private String userName; - private String userId; - private String liveboardName; - private String liveboardId; - - - - /** - * Setter for userName. - * @param userName String value for userName. - * @return Builder - */ - public Builder userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Setter for userId. - * @param userId String value for userId. - * @return Builder - */ - public Builder userId(String userId) { - this.userId = userId; - return this; - } - - /** - * Setter for liveboardName. - * @param liveboardName String value for liveboardName. - * @return Builder - */ - public Builder liveboardName(String liveboardName) { - this.liveboardName = liveboardName; - return this; - } - - /** - * Setter for liveboardId. - * @param liveboardId String value for liveboardId. - * @return Builder - */ - public Builder liveboardId(String liveboardId) { - this.liveboardId = liveboardId; - return this; - } - - /** - * Builds a new {@link HomeLiveboardResponse} object using the set fields. - * @return {@link HomeLiveboardResponse} - */ - public HomeLiveboardResponse build() { - return new HomeLiveboardResponse(userName, userId, liveboardName, liveboardId); - } - } -} diff --git a/Java/src/main/java/localhost/models/ImportPolicyEnum.java b/Java/src/main/java/localhost/models/ImportPolicyEnum.java deleted file mode 100644 index b9ce04484..000000000 --- a/Java/src/main/java/localhost/models/ImportPolicyEnum.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * ImportPolicyEnum to be used. - */ -public enum ImportPolicyEnum { - PARTIAL, - - ALL_OR_NONE, - - VALIDATE_ONLY; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - PARTIAL.value = "PARTIAL"; - ALL_OR_NONE.value = "ALL_OR_NONE"; - VALIDATE_ONLY.value = "VALIDATE_ONLY"; - - valueMap.put("PARTIAL", PARTIAL); - valueMap.put("ALL_OR_NONE", ALL_OR_NONE); - valueMap.put("VALIDATE_ONLY", VALIDATE_ONLY); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static ImportPolicyEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of ImportPolicyEnum values to list of string values. - * @param toConvert The list of ImportPolicyEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (ImportPolicyEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/LiveboardNameAndID.java b/Java/src/main/java/localhost/models/LiveboardNameAndID.java deleted file mode 100644 index 0e70d6fc6..000000000 --- a/Java/src/main/java/localhost/models/LiveboardNameAndID.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for LiveboardNameAndID type. - */ -public class LiveboardNameAndID { - private String name; - private String id; - - /** - * Default constructor. - */ - public LiveboardNameAndID() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public LiveboardNameAndID( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the liveboard - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the liveboard - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the liveboard - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the liveboard - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this LiveboardNameAndID into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "LiveboardNameAndID [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link LiveboardNameAndID.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link LiveboardNameAndID.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link LiveboardNameAndID}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link LiveboardNameAndID} object using the set fields. - * @return {@link LiveboardNameAndID} - */ - public LiveboardNameAndID build() { - return new LiveboardNameAndID(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/LiveboardQueryResponse.java b/Java/src/main/java/localhost/models/LiveboardQueryResponse.java deleted file mode 100644 index b0742f144..000000000 --- a/Java/src/main/java/localhost/models/LiveboardQueryResponse.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for LiveboardQueryResponse type. - */ -public class LiveboardQueryResponse { - private String name; - private String id; - private List viz; - - /** - * Default constructor. - */ - public LiveboardQueryResponse() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param viz List of VizType value for viz. - */ - public LiveboardQueryResponse( - String name, - String id, - List viz) { - this.name = name; - this.id = id; - this.viz = viz; - } - - /** - * Getter for Name. - * The name of the Liveboard - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * The name of the Liveboard - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the Liveboard - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the Liveboard - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Viz. - * SQL query associated with the saved Answer - * @return Returns the List of VizType - */ - @JsonGetter("viz") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getViz() { - return viz; - } - - /** - * Setter for Viz. - * SQL query associated with the saved Answer - * @param viz Value for List of VizType - */ - @JsonSetter("viz") - public void setViz(List viz) { - this.viz = viz; - } - - /** - * Converts this LiveboardQueryResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "LiveboardQueryResponse [" + "name=" + name + ", id=" + id + ", viz=" + viz + "]"; - } - - /** - * Builds a new {@link LiveboardQueryResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link LiveboardQueryResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .viz(getViz()); - return builder; - } - - /** - * Class to build instances of {@link LiveboardQueryResponse}. - */ - public static class Builder { - private String name; - private String id; - private List viz; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for viz. - * @param viz List of VizType value for viz. - * @return Builder - */ - public Builder viz(List viz) { - this.viz = viz; - return this; - } - - /** - * Builds a new {@link LiveboardQueryResponse} object using the set fields. - * @return {@link LiveboardQueryResponse} - */ - public LiveboardQueryResponse build() { - return new LiveboardQueryResponse(name, id, viz); - } - } -} diff --git a/Java/src/main/java/localhost/models/LogicalTableHeader.java b/Java/src/main/java/localhost/models/LogicalTableHeader.java deleted file mode 100644 index 8076c58df..000000000 --- a/Java/src/main/java/localhost/models/LogicalTableHeader.java +++ /dev/null @@ -1,632 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for LogicalTableHeader type. - */ -public class LogicalTableHeader { - private String id; - private String name; - private String author; - private String authorName; - private String authorDisplayName; - private Double created; - private Double modified; - private String modifiedBy; - private Integer generationNum; - private String owner; - private Boolean deleted; - private Boolean hidden; - private String database; - private String schema; - private String type; - private String subType; - - /** - * Default constructor. - */ - public LogicalTableHeader() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param author String value for author. - * @param authorName String value for authorName. - * @param authorDisplayName String value for authorDisplayName. - * @param created Double value for created. - * @param modified Double value for modified. - * @param modifiedBy String value for modifiedBy. - * @param generationNum Integer value for generationNum. - * @param owner String value for owner. - * @param deleted Boolean value for deleted. - * @param hidden Boolean value for hidden. - * @param database String value for database. - * @param schema String value for schema. - * @param type String value for type. - * @param subType String value for subType. - */ - public LogicalTableHeader( - String id, - String name, - String author, - String authorName, - String authorDisplayName, - Double created, - Double modified, - String modifiedBy, - Integer generationNum, - String owner, - Boolean deleted, - Boolean hidden, - String database, - String schema, - String type, - String subType) { - this.id = id; - this.name = name; - this.author = author; - this.authorName = authorName; - this.authorDisplayName = authorDisplayName; - this.created = created; - this.modified = modified; - this.modifiedBy = modifiedBy; - this.generationNum = generationNum; - this.owner = owner; - this.deleted = deleted; - this.hidden = hidden; - this.database = database; - this.schema = schema; - this.type = type; - this.subType = subType; - } - - /** - * Getter for Id. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Author. - * @return Returns the String - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for String - */ - @JsonSetter("author") - public void setAuthor(String author) { - this.author = author; - } - - /** - * Getter for AuthorName. - * @return Returns the String - */ - @JsonGetter("authorName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getAuthorName() { - return authorName; - } - - /** - * Setter for AuthorName. - * @param authorName Value for String - */ - @JsonSetter("authorName") - public void setAuthorName(String authorName) { - this.authorName = authorName; - } - - /** - * Getter for AuthorDisplayName. - * @return Returns the String - */ - @JsonGetter("authorDisplayName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getAuthorDisplayName() { - return authorDisplayName; - } - - /** - * Setter for AuthorDisplayName. - * @param authorDisplayName Value for String - */ - @JsonSetter("authorDisplayName") - public void setAuthorDisplayName(String authorDisplayName) { - this.authorDisplayName = authorDisplayName; - } - - /** - * Getter for Created. - * @return Returns the Double - */ - @JsonGetter("created") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getCreated() { - return created; - } - - /** - * Setter for Created. - * @param created Value for Double - */ - @JsonSetter("created") - public void setCreated(Double created) { - this.created = created; - } - - /** - * Getter for Modified. - * @return Returns the Double - */ - @JsonGetter("modified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getModified() { - return modified; - } - - /** - * Setter for Modified. - * @param modified Value for Double - */ - @JsonSetter("modified") - public void setModified(Double modified) { - this.modified = modified; - } - - /** - * Getter for ModifiedBy. - * @return Returns the String - */ - @JsonGetter("modifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getModifiedBy() { - return modifiedBy; - } - - /** - * Setter for ModifiedBy. - * @param modifiedBy Value for String - */ - @JsonSetter("modifiedBy") - public void setModifiedBy(String modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * Getter for GenerationNum. - * @return Returns the Integer - */ - @JsonGetter("generationNum") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getGenerationNum() { - return generationNum; - } - - /** - * Setter for GenerationNum. - * @param generationNum Value for Integer - */ - @JsonSetter("generationNum") - public void setGenerationNum(Integer generationNum) { - this.generationNum = generationNum; - } - - /** - * Getter for Owner. - * @return Returns the String - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getOwner() { - return owner; - } - - /** - * Setter for Owner. - * @param owner Value for String - */ - @JsonSetter("owner") - public void setOwner(String owner) { - this.owner = owner; - } - - /** - * Getter for Deleted. - * @return Returns the Boolean - */ - @JsonGetter("deleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getDeleted() { - return deleted; - } - - /** - * Setter for Deleted. - * @param deleted Value for Boolean - */ - @JsonSetter("deleted") - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } - - /** - * Getter for Hidden. - * @return Returns the Boolean - */ - @JsonGetter("hidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getHidden() { - return hidden; - } - - /** - * Setter for Hidden. - * @param hidden Value for Boolean - */ - @JsonSetter("hidden") - public void setHidden(Boolean hidden) { - this.hidden = hidden; - } - - /** - * Getter for Database. - * @return Returns the String - */ - @JsonGetter("database") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDatabase() { - return database; - } - - /** - * Setter for Database. - * @param database Value for String - */ - @JsonSetter("database") - public void setDatabase(String database) { - this.database = database; - } - - /** - * Getter for Schema. - * @return Returns the String - */ - @JsonGetter("schema") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSchema() { - return schema; - } - - /** - * Setter for Schema. - * @param schema Value for String - */ - @JsonSetter("schema") - public void setSchema(String schema) { - this.schema = schema; - } - - /** - * Getter for Type. - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for SubType. - * @return Returns the String - */ - @JsonGetter("subType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSubType() { - return subType; - } - - /** - * Setter for SubType. - * @param subType Value for String - */ - @JsonSetter("subType") - public void setSubType(String subType) { - this.subType = subType; - } - - /** - * Converts this LogicalTableHeader into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "LogicalTableHeader [" + "id=" + id + ", name=" + name + ", author=" + author - + ", authorName=" + authorName + ", authorDisplayName=" + authorDisplayName - + ", created=" + created + ", modified=" + modified + ", modifiedBy=" + modifiedBy - + ", generationNum=" + generationNum + ", owner=" + owner + ", deleted=" + deleted - + ", hidden=" + hidden + ", database=" + database + ", schema=" + schema + ", type=" - + type + ", subType=" + subType + "]"; - } - - /** - * Builds a new {@link LogicalTableHeader.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link LogicalTableHeader.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .author(getAuthor()) - .authorName(getAuthorName()) - .authorDisplayName(getAuthorDisplayName()) - .created(getCreated()) - .modified(getModified()) - .modifiedBy(getModifiedBy()) - .generationNum(getGenerationNum()) - .owner(getOwner()) - .deleted(getDeleted()) - .hidden(getHidden()) - .database(getDatabase()) - .schema(getSchema()) - .type(getType()) - .subType(getSubType()); - return builder; - } - - /** - * Class to build instances of {@link LogicalTableHeader}. - */ - public static class Builder { - private String id; - private String name; - private String author; - private String authorName; - private String authorDisplayName; - private Double created; - private Double modified; - private String modifiedBy; - private Integer generationNum; - private String owner; - private Boolean deleted; - private Boolean hidden; - private String database; - private String schema; - private String type; - private String subType; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for author. - * @param author String value for author. - * @return Builder - */ - public Builder author(String author) { - this.author = author; - return this; - } - - /** - * Setter for authorName. - * @param authorName String value for authorName. - * @return Builder - */ - public Builder authorName(String authorName) { - this.authorName = authorName; - return this; - } - - /** - * Setter for authorDisplayName. - * @param authorDisplayName String value for authorDisplayName. - * @return Builder - */ - public Builder authorDisplayName(String authorDisplayName) { - this.authorDisplayName = authorDisplayName; - return this; - } - - /** - * Setter for created. - * @param created Double value for created. - * @return Builder - */ - public Builder created(Double created) { - this.created = created; - return this; - } - - /** - * Setter for modified. - * @param modified Double value for modified. - * @return Builder - */ - public Builder modified(Double modified) { - this.modified = modified; - return this; - } - - /** - * Setter for modifiedBy. - * @param modifiedBy String value for modifiedBy. - * @return Builder - */ - public Builder modifiedBy(String modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - /** - * Setter for generationNum. - * @param generationNum Integer value for generationNum. - * @return Builder - */ - public Builder generationNum(Integer generationNum) { - this.generationNum = generationNum; - return this; - } - - /** - * Setter for owner. - * @param owner String value for owner. - * @return Builder - */ - public Builder owner(String owner) { - this.owner = owner; - return this; - } - - /** - * Setter for deleted. - * @param deleted Boolean value for deleted. - * @return Builder - */ - public Builder deleted(Boolean deleted) { - this.deleted = deleted; - return this; - } - - /** - * Setter for hidden. - * @param hidden Boolean value for hidden. - * @return Builder - */ - public Builder hidden(Boolean hidden) { - this.hidden = hidden; - return this; - } - - /** - * Setter for database. - * @param database String value for database. - * @return Builder - */ - public Builder database(String database) { - this.database = database; - return this; - } - - /** - * Setter for schema. - * @param schema String value for schema. - * @return Builder - */ - public Builder schema(String schema) { - this.schema = schema; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for subType. - * @param subType String value for subType. - * @return Builder - */ - public Builder subType(String subType) { - this.subType = subType; - return this; - } - - /** - * Builds a new {@link LogicalTableHeader} object using the set fields. - * @return {@link LogicalTableHeader} - */ - public LogicalTableHeader build() { - return new LogicalTableHeader(id, name, author, authorName, authorDisplayName, created, - modified, modifiedBy, generationNum, owner, deleted, hidden, database, schema, - type, subType); - } - } -} diff --git a/Java/src/main/java/localhost/models/LogsResponse.java b/Java/src/main/java/localhost/models/LogsResponse.java deleted file mode 100644 index 0ba6c8dd5..000000000 --- a/Java/src/main/java/localhost/models/LogsResponse.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for LogsResponse type. - */ -public class LogsResponse { - private String date; - private String log; - - /** - * Default constructor. - */ - public LogsResponse() { - } - - /** - * Initialization constructor. - * @param date String value for date. - * @param log String value for log. - */ - public LogsResponse( - String date, - String log) { - this.date = date; - this.log = log; - } - - /** - * Getter for Date. - * Date and time for the event in the log - * @return Returns the String - */ - @JsonGetter("date") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDate() { - return date; - } - - /** - * Setter for Date. - * Date and time for the event in the log - * @param date Value for String - */ - @JsonSetter("date") - public void setDate(String date) { - this.date = date; - } - - /** - * Getter for Log. - * Logged event at the time specified in JSON format. This includes, Event ID, A unique - * description of the event, for example, User login failed, Timestamp, User ID of the person - * initiating the event and IP address of the ThoughtSpot instance. - * @return Returns the String - */ - @JsonGetter("log") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getLog() { - return log; - } - - /** - * Setter for Log. - * Logged event at the time specified in JSON format. This includes, Event ID, A unique - * description of the event, for example, User login failed, Timestamp, User ID of the person - * initiating the event and IP address of the ThoughtSpot instance. - * @param log Value for String - */ - @JsonSetter("log") - public void setLog(String log) { - this.log = log; - } - - /** - * Converts this LogsResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "LogsResponse [" + "date=" + date + ", log=" + log + "]"; - } - - /** - * Builds a new {@link LogsResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link LogsResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .date(getDate()) - .log(getLog()); - return builder; - } - - /** - * Class to build instances of {@link LogsResponse}. - */ - public static class Builder { - private String date; - private String log; - - - - /** - * Setter for date. - * @param date String value for date. - * @return Builder - */ - public Builder date(String date) { - this.date = date; - return this; - } - - /** - * Setter for log. - * @param log String value for log. - * @return Builder - */ - public Builder log(String log) { - this.log = log; - return this; - } - - /** - * Builds a new {@link LogsResponse} object using the set fields. - * @return {@link LogsResponse} - */ - public LogsResponse build() { - return new LogsResponse(date, log); - } - } -} diff --git a/Java/src/main/java/localhost/models/MetadataTagResponse.java b/Java/src/main/java/localhost/models/MetadataTagResponse.java deleted file mode 100644 index 44f9fbef1..000000000 --- a/Java/src/main/java/localhost/models/MetadataTagResponse.java +++ /dev/null @@ -1,576 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for MetadataTagResponse type. - */ -public class MetadataTagResponse { - private String name; - private String id; - private ClientState clientState; - private Double indexVersion; - private Double generationNum; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean isExternal; - private Boolean isDeprecated; - private Double created; - private Double modified; - private TagNameAndID modifiedBy; - private TagNameAndID author; - private TagNameAndID owner; - - /** - * Default constructor. - */ - public MetadataTagResponse() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param clientState ClientState value for clientState. - * @param indexVersion Double value for indexVersion. - * @param generationNum Double value for generationNum. - * @param isDeleted Boolean value for isDeleted. - * @param isHidden Boolean value for isHidden. - * @param isExternal Boolean value for isExternal. - * @param isDeprecated Boolean value for isDeprecated. - * @param created Double value for created. - * @param modified Double value for modified. - * @param modifiedBy TagNameAndID value for modifiedBy. - * @param author TagNameAndID value for author. - * @param owner TagNameAndID value for owner. - */ - public MetadataTagResponse( - String name, - String id, - ClientState clientState, - Double indexVersion, - Double generationNum, - Boolean isDeleted, - Boolean isHidden, - Boolean isExternal, - Boolean isDeprecated, - Double created, - Double modified, - TagNameAndID modifiedBy, - TagNameAndID author, - TagNameAndID owner) { - this.name = name; - this.id = id; - this.clientState = clientState; - this.indexVersion = indexVersion; - this.generationNum = generationNum; - this.isDeleted = isDeleted; - this.isHidden = isHidden; - this.isExternal = isExternal; - this.isDeprecated = isDeprecated; - this.created = created; - this.modified = modified; - this.modifiedBy = modifiedBy; - this.author = author; - this.owner = owner; - } - - /** - * Getter for Name. - * Name of the tag - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the tag - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the tag - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the tag - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for ClientState. - * @return Returns the ClientState - */ - @JsonGetter("clientState") - @JsonInclude(JsonInclude.Include.NON_NULL) - public ClientState getClientState() { - return clientState; - } - - /** - * Setter for ClientState. - * @param clientState Value for ClientState - */ - @JsonSetter("clientState") - public void setClientState(ClientState clientState) { - this.clientState = clientState; - } - - /** - * Getter for IndexVersion. - * @return Returns the Double - */ - @JsonGetter("indexVersion") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getIndexVersion() { - return indexVersion; - } - - /** - * Setter for IndexVersion. - * @param indexVersion Value for Double - */ - @JsonSetter("indexVersion") - public void setIndexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - } - - /** - * Getter for GenerationNum. - * @return Returns the Double - */ - @JsonGetter("generationNum") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getGenerationNum() { - return generationNum; - } - - /** - * Setter for GenerationNum. - * @param generationNum Value for Double - */ - @JsonSetter("generationNum") - public void setGenerationNum(Double generationNum) { - this.generationNum = generationNum; - } - - /** - * Getter for IsDeleted. - * Indicates if the tag is deleted - * @return Returns the Boolean - */ - @JsonGetter("isDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeleted() { - return isDeleted; - } - - /** - * Setter for IsDeleted. - * Indicates if the tag is deleted - * @param isDeleted Value for Boolean - */ - @JsonSetter("isDeleted") - public void setIsDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - } - - /** - * Getter for IsHidden. - * Indicates if the tag is hidden - * @return Returns the Boolean - */ - @JsonGetter("isHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsHidden() { - return isHidden; - } - - /** - * Setter for IsHidden. - * Indicates if the tag is hidden - * @param isHidden Value for Boolean - */ - @JsonSetter("isHidden") - public void setIsHidden(Boolean isHidden) { - this.isHidden = isHidden; - } - - /** - * Getter for IsExternal. - * Indicates if the tag is from external system - * @return Returns the Boolean - */ - @JsonGetter("isExternal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsExternal() { - return isExternal; - } - - /** - * Setter for IsExternal. - * Indicates if the tag is from external system - * @param isExternal Value for Boolean - */ - @JsonSetter("isExternal") - public void setIsExternal(Boolean isExternal) { - this.isExternal = isExternal; - } - - /** - * Getter for IsDeprecated. - * @return Returns the Boolean - */ - @JsonGetter("isDeprecated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeprecated() { - return isDeprecated; - } - - /** - * Setter for IsDeprecated. - * @param isDeprecated Value for Boolean - */ - @JsonSetter("isDeprecated") - public void setIsDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - } - - /** - * Getter for Created. - * Date and time when group was created - * @return Returns the Double - */ - @JsonGetter("created") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getCreated() { - return created; - } - - /** - * Setter for Created. - * Date and time when group was created - * @param created Value for Double - */ - @JsonSetter("created") - public void setCreated(Double created) { - this.created = created; - } - - /** - * Getter for Modified. - * Date and time of last modification of the group - * @return Returns the Double - */ - @JsonGetter("modified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getModified() { - return modified; - } - - /** - * Setter for Modified. - * Date and time of last modification of the group - * @param modified Value for Double - */ - @JsonSetter("modified") - public void setModified(Double modified) { - this.modified = modified; - } - - /** - * Getter for ModifiedBy. - * @return Returns the TagNameAndID - */ - @JsonGetter("modifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public TagNameAndID getModifiedBy() { - return modifiedBy; - } - - /** - * Setter for ModifiedBy. - * @param modifiedBy Value for TagNameAndID - */ - @JsonSetter("modifiedBy") - public void setModifiedBy(TagNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * Getter for Author. - * @return Returns the TagNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public TagNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for TagNameAndID - */ - @JsonSetter("author") - public void setAuthor(TagNameAndID author) { - this.author = author; - } - - /** - * Getter for Owner. - * @return Returns the TagNameAndID - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public TagNameAndID getOwner() { - return owner; - } - - /** - * Setter for Owner. - * @param owner Value for TagNameAndID - */ - @JsonSetter("owner") - public void setOwner(TagNameAndID owner) { - this.owner = owner; - } - - /** - * Converts this MetadataTagResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "MetadataTagResponse [" + "name=" + name + ", id=" + id + ", clientState=" - + clientState + ", indexVersion=" + indexVersion + ", generationNum=" - + generationNum + ", isDeleted=" + isDeleted + ", isHidden=" + isHidden - + ", isExternal=" + isExternal + ", isDeprecated=" + isDeprecated + ", created=" - + created + ", modified=" + modified + ", modifiedBy=" + modifiedBy + ", author=" - + author + ", owner=" + owner + "]"; - } - - /** - * Builds a new {@link MetadataTagResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link MetadataTagResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .clientState(getClientState()) - .indexVersion(getIndexVersion()) - .generationNum(getGenerationNum()) - .isDeleted(getIsDeleted()) - .isHidden(getIsHidden()) - .isExternal(getIsExternal()) - .isDeprecated(getIsDeprecated()) - .created(getCreated()) - .modified(getModified()) - .modifiedBy(getModifiedBy()) - .author(getAuthor()) - .owner(getOwner()); - return builder; - } - - /** - * Class to build instances of {@link MetadataTagResponse}. - */ - public static class Builder { - private String name; - private String id; - private ClientState clientState; - private Double indexVersion; - private Double generationNum; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean isExternal; - private Boolean isDeprecated; - private Double created; - private Double modified; - private TagNameAndID modifiedBy; - private TagNameAndID author; - private TagNameAndID owner; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for clientState. - * @param clientState ClientState value for clientState. - * @return Builder - */ - public Builder clientState(ClientState clientState) { - this.clientState = clientState; - return this; - } - - /** - * Setter for indexVersion. - * @param indexVersion Double value for indexVersion. - * @return Builder - */ - public Builder indexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - return this; - } - - /** - * Setter for generationNum. - * @param generationNum Double value for generationNum. - * @return Builder - */ - public Builder generationNum(Double generationNum) { - this.generationNum = generationNum; - return this; - } - - /** - * Setter for isDeleted. - * @param isDeleted Boolean value for isDeleted. - * @return Builder - */ - public Builder isDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - return this; - } - - /** - * Setter for isHidden. - * @param isHidden Boolean value for isHidden. - * @return Builder - */ - public Builder isHidden(Boolean isHidden) { - this.isHidden = isHidden; - return this; - } - - /** - * Setter for isExternal. - * @param isExternal Boolean value for isExternal. - * @return Builder - */ - public Builder isExternal(Boolean isExternal) { - this.isExternal = isExternal; - return this; - } - - /** - * Setter for isDeprecated. - * @param isDeprecated Boolean value for isDeprecated. - * @return Builder - */ - public Builder isDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - return this; - } - - /** - * Setter for created. - * @param created Double value for created. - * @return Builder - */ - public Builder created(Double created) { - this.created = created; - return this; - } - - /** - * Setter for modified. - * @param modified Double value for modified. - * @return Builder - */ - public Builder modified(Double modified) { - this.modified = modified; - return this; - } - - /** - * Setter for modifiedBy. - * @param modifiedBy TagNameAndID value for modifiedBy. - * @return Builder - */ - public Builder modifiedBy(TagNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - /** - * Setter for author. - * @param author TagNameAndID value for author. - * @return Builder - */ - public Builder author(TagNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for owner. - * @param owner TagNameAndID value for owner. - * @return Builder - */ - public Builder owner(TagNameAndID owner) { - this.owner = owner; - return this; - } - - /** - * Builds a new {@link MetadataTagResponse} object using the set fields. - * @return {@link MetadataTagResponse} - */ - public MetadataTagResponse build() { - return new MetadataTagResponse(name, id, clientState, indexVersion, generationNum, - isDeleted, isHidden, isExternal, isDeprecated, created, modified, modifiedBy, - author, owner); - } - } -} diff --git a/Java/src/main/java/localhost/models/NameAndIdInput.java b/Java/src/main/java/localhost/models/NameAndIdInput.java deleted file mode 100644 index d69e25708..000000000 --- a/Java/src/main/java/localhost/models/NameAndIdInput.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for NameAndIdInput type. - */ -public class NameAndIdInput { - private String name; - private String id; - - /** - * Default constructor. - */ - public NameAndIdInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public NameAndIdInput( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the user - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the user - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this NameAndIdInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "NameAndIdInput [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link NameAndIdInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link NameAndIdInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link NameAndIdInput}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link NameAndIdInput} object using the set fields. - * @return {@link NameAndIdInput} - */ - public NameAndIdInput build() { - return new NameAndIdInput(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/OrgType.java b/Java/src/main/java/localhost/models/OrgType.java deleted file mode 100644 index 4b2c7e392..000000000 --- a/Java/src/main/java/localhost/models/OrgType.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for OrgType type. - */ -public class OrgType { - private String name; - private Integer id; - - /** - * Default constructor. - */ - public OrgType() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id Integer value for id. - */ - public OrgType( - String name, - Integer id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the organization - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the organization - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * Id of the organization - * @return Returns the Integer - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getId() { - return id; - } - - /** - * Setter for Id. - * Id of the organization - * @param id Value for Integer - */ - @JsonSetter("id") - public void setId(Integer id) { - this.id = id; - } - - /** - * Converts this OrgType into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "OrgType [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link OrgType.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link OrgType.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link OrgType}. - */ - public static class Builder { - private String name; - private Integer id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id Integer value for id. - * @return Builder - */ - public Builder id(Integer id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link OrgType} object using the set fields. - * @return {@link OrgType} - */ - public OrgType build() { - return new OrgType(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/OrgsResponse.java b/Java/src/main/java/localhost/models/OrgsResponse.java deleted file mode 100644 index 68a75289f..000000000 --- a/Java/src/main/java/localhost/models/OrgsResponse.java +++ /dev/null @@ -1,290 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for OrgsResponse type. - */ -public class OrgsResponse { - private Integer orgId; - private String orgName; - private String description; - private String allGroupUserId; - private String defaultAdminUserGroupId; - private Boolean active; - - /** - * Default constructor. - */ - public OrgsResponse() { - } - - /** - * Initialization constructor. - * @param orgId Integer value for orgId. - * @param orgName String value for orgName. - * @param description String value for description. - * @param allGroupUserId String value for allGroupUserId. - * @param defaultAdminUserGroupId String value for defaultAdminUserGroupId. - * @param active Boolean value for active. - */ - public OrgsResponse( - Integer orgId, - String orgName, - String description, - String allGroupUserId, - String defaultAdminUserGroupId, - Boolean active) { - this.orgId = orgId; - this.orgName = orgName; - this.description = description; - this.allGroupUserId = allGroupUserId; - this.defaultAdminUserGroupId = defaultAdminUserGroupId; - this.active = active; - } - - /** - * Getter for OrgId. - * ID of the organization searched for - * @return Returns the Integer - */ - @JsonGetter("orgId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOrgId() { - return orgId; - } - - /** - * Setter for OrgId. - * ID of the organization searched for - * @param orgId Value for Integer - */ - @JsonSetter("orgId") - public void setOrgId(Integer orgId) { - this.orgId = orgId; - } - - /** - * Getter for OrgName. - * Name of the organization searched for - * @return Returns the String - */ - @JsonGetter("orgName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getOrgName() { - return orgName; - } - - /** - * Setter for OrgName. - * Name of the organization searched for - * @param orgName Value for String - */ - @JsonSetter("orgName") - public void setOrgName(String orgName) { - this.orgName = orgName; - } - - /** - * Getter for Description. - * Description associated with the organization - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description associated with the organization - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for AllGroupUserId. - * GUID of the ALL group in the organization - * @return Returns the String - */ - @JsonGetter("allGroupUserId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getAllGroupUserId() { - return allGroupUserId; - } - - /** - * Setter for AllGroupUserId. - * GUID of the ALL group in the organization - * @param allGroupUserId Value for String - */ - @JsonSetter("allGroupUserId") - public void setAllGroupUserId(String allGroupUserId) { - this.allGroupUserId = allGroupUserId; - } - - /** - * Getter for DefaultAdminUserGroupId. - * GUID of the admin group in the organization - * @return Returns the String - */ - @JsonGetter("defaultAdminUserGroupId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDefaultAdminUserGroupId() { - return defaultAdminUserGroupId; - } - - /** - * Setter for DefaultAdminUserGroupId. - * GUID of the admin group in the organization - * @param defaultAdminUserGroupId Value for String - */ - @JsonSetter("defaultAdminUserGroupId") - public void setDefaultAdminUserGroupId(String defaultAdminUserGroupId) { - this.defaultAdminUserGroupId = defaultAdminUserGroupId; - } - - /** - * Getter for Active. - * Indicates if the organization is active or not - * @return Returns the Boolean - */ - @JsonGetter("active") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getActive() { - return active; - } - - /** - * Setter for Active. - * Indicates if the organization is active or not - * @param active Value for Boolean - */ - @JsonSetter("active") - public void setActive(Boolean active) { - this.active = active; - } - - /** - * Converts this OrgsResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "OrgsResponse [" + "orgId=" + orgId + ", orgName=" + orgName + ", description=" - + description + ", allGroupUserId=" + allGroupUserId + ", defaultAdminUserGroupId=" - + defaultAdminUserGroupId + ", active=" + active + "]"; - } - - /** - * Builds a new {@link OrgsResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link OrgsResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .orgId(getOrgId()) - .orgName(getOrgName()) - .description(getDescription()) - .allGroupUserId(getAllGroupUserId()) - .defaultAdminUserGroupId(getDefaultAdminUserGroupId()) - .active(getActive()); - return builder; - } - - /** - * Class to build instances of {@link OrgsResponse}. - */ - public static class Builder { - private Integer orgId; - private String orgName; - private String description; - private String allGroupUserId; - private String defaultAdminUserGroupId; - private Boolean active; - - - - /** - * Setter for orgId. - * @param orgId Integer value for orgId. - * @return Builder - */ - public Builder orgId(Integer orgId) { - this.orgId = orgId; - return this; - } - - /** - * Setter for orgName. - * @param orgName String value for orgName. - * @return Builder - */ - public Builder orgName(String orgName) { - this.orgName = orgName; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for allGroupUserId. - * @param allGroupUserId String value for allGroupUserId. - * @return Builder - */ - public Builder allGroupUserId(String allGroupUserId) { - this.allGroupUserId = allGroupUserId; - return this; - } - - /** - * Setter for defaultAdminUserGroupId. - * @param defaultAdminUserGroupId String value for defaultAdminUserGroupId. - * @return Builder - */ - public Builder defaultAdminUserGroupId(String defaultAdminUserGroupId) { - this.defaultAdminUserGroupId = defaultAdminUserGroupId; - return this; - } - - /** - * Setter for active. - * @param active Boolean value for active. - * @return Builder - */ - public Builder active(Boolean active) { - this.active = active; - return this; - } - - /** - * Builds a new {@link OrgsResponse} object using the set fields. - * @return {@link OrgsResponse} - */ - public OrgsResponse build() { - return new OrgsResponse(orgId, orgName, description, allGroupUserId, - defaultAdminUserGroupId, active); - } - } -} diff --git a/Java/src/main/java/localhost/models/OrientationEnum.java b/Java/src/main/java/localhost/models/OrientationEnum.java deleted file mode 100644 index b9842e67c..000000000 --- a/Java/src/main/java/localhost/models/OrientationEnum.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * OrientationEnum to be used. - */ -public enum OrientationEnum { - PORTRAIT, - - LANDSCAPE; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - PORTRAIT.value = "PORTRAIT"; - LANDSCAPE.value = "LANDSCAPE"; - - valueMap.put("PORTRAIT", PORTRAIT); - valueMap.put("LANDSCAPE", LANDSCAPE); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static OrientationEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of OrientationEnum values to list of string values. - * @param toConvert The list of OrientationEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (OrientationEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/PdfOptionsInput.java b/Java/src/main/java/localhost/models/PdfOptionsInput.java deleted file mode 100644 index 203e7e661..000000000 --- a/Java/src/main/java/localhost/models/PdfOptionsInput.java +++ /dev/null @@ -1,332 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for PdfOptionsInput type. - */ -public class PdfOptionsInput { - private OrientationEnum orientation; - private Boolean truncateTables; - private Boolean includeLogo; - private String footerText; - private Boolean includePageNumber; - private Boolean includeCoverPage; - private Boolean includeFilterPage; - - /** - * Default constructor. - */ - public PdfOptionsInput() { - } - - /** - * Initialization constructor. - * @param orientation OrientationEnum value for orientation. - * @param truncateTables Boolean value for truncateTables. - * @param includeLogo Boolean value for includeLogo. - * @param footerText String value for footerText. - * @param includePageNumber Boolean value for includePageNumber. - * @param includeCoverPage Boolean value for includeCoverPage. - * @param includeFilterPage Boolean value for includeFilterPage. - */ - public PdfOptionsInput( - OrientationEnum orientation, - Boolean truncateTables, - Boolean includeLogo, - String footerText, - Boolean includePageNumber, - Boolean includeCoverPage, - Boolean includeFilterPage) { - this.orientation = orientation; - this.truncateTables = truncateTables; - this.includeLogo = includeLogo; - this.footerText = footerText; - this.includePageNumber = includePageNumber; - this.includeCoverPage = includeCoverPage; - this.includeFilterPage = includeFilterPage; - } - - /** - * Getter for Orientation. - * Page orientation for the PDF. Default: PORTRAIT - * @return Returns the OrientationEnum - */ - @JsonGetter("orientation") - @JsonInclude(JsonInclude.Include.NON_NULL) - public OrientationEnum getOrientation() { - return orientation; - } - - /** - * Setter for Orientation. - * Page orientation for the PDF. Default: PORTRAIT - * @param orientation Value for OrientationEnum - */ - @JsonSetter("orientation") - public void setOrientation(OrientationEnum orientation) { - this.orientation = orientation; - } - - /** - * Getter for TruncateTables. - * When set to true, only the first page of the tables is displayed in the file. This setting is - * applicable only when generating report for specific visualization ids. Default: false - * @return Returns the Boolean - */ - @JsonGetter("truncateTables") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getTruncateTables() { - return truncateTables; - } - - /** - * Setter for TruncateTables. - * When set to true, only the first page of the tables is displayed in the file. This setting is - * applicable only when generating report for specific visualization ids. Default: false - * @param truncateTables Value for Boolean - */ - @JsonSetter("truncateTables") - public void setTruncateTables(Boolean truncateTables) { - this.truncateTables = truncateTables; - } - - /** - * Getter for IncludeLogo. - * Include customized wide logo if available in the footer. Default: true - * @return Returns the Boolean - */ - @JsonGetter("includeLogo") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludeLogo() { - return includeLogo; - } - - /** - * Setter for IncludeLogo. - * Include customized wide logo if available in the footer. Default: true - * @param includeLogo Value for Boolean - */ - @JsonSetter("includeLogo") - public void setIncludeLogo(Boolean includeLogo) { - this.includeLogo = includeLogo; - } - - /** - * Getter for FooterText. - * Footer text to include in the footer of each page of the PDF. - * @return Returns the String - */ - @JsonGetter("footerText") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getFooterText() { - return footerText; - } - - /** - * Setter for FooterText. - * Footer text to include in the footer of each page of the PDF. - * @param footerText Value for String - */ - @JsonSetter("footerText") - public void setFooterText(String footerText) { - this.footerText = footerText; - } - - /** - * Getter for IncludePageNumber. - * When set to true, the page number is included in the footer of each page. Default: true - * @return Returns the Boolean - */ - @JsonGetter("includePageNumber") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludePageNumber() { - return includePageNumber; - } - - /** - * Setter for IncludePageNumber. - * When set to true, the page number is included in the footer of each page. Default: true - * @param includePageNumber Value for Boolean - */ - @JsonSetter("includePageNumber") - public void setIncludePageNumber(Boolean includePageNumber) { - this.includePageNumber = includePageNumber; - } - - /** - * Getter for IncludeCoverPage. - * When set to true, a cover page with the Liveboard title is added in the PDF. Default: true - * @return Returns the Boolean - */ - @JsonGetter("includeCoverPage") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludeCoverPage() { - return includeCoverPage; - } - - /** - * Setter for IncludeCoverPage. - * When set to true, a cover page with the Liveboard title is added in the PDF. Default: true - * @param includeCoverPage Value for Boolean - */ - @JsonSetter("includeCoverPage") - public void setIncludeCoverPage(Boolean includeCoverPage) { - this.includeCoverPage = includeCoverPage; - } - - /** - * Getter for IncludeFilterPage. - * When set to true, a second page with a list of all applied filters is added in the PDF. - * Default: true - * @return Returns the Boolean - */ - @JsonGetter("includeFilterPage") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludeFilterPage() { - return includeFilterPage; - } - - /** - * Setter for IncludeFilterPage. - * When set to true, a second page with a list of all applied filters is added in the PDF. - * Default: true - * @param includeFilterPage Value for Boolean - */ - @JsonSetter("includeFilterPage") - public void setIncludeFilterPage(Boolean includeFilterPage) { - this.includeFilterPage = includeFilterPage; - } - - /** - * Converts this PdfOptionsInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "PdfOptionsInput [" + "orientation=" + orientation + ", truncateTables=" - + truncateTables + ", includeLogo=" + includeLogo + ", footerText=" + footerText - + ", includePageNumber=" + includePageNumber + ", includeCoverPage=" - + includeCoverPage + ", includeFilterPage=" + includeFilterPage + "]"; - } - - /** - * Builds a new {@link PdfOptionsInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link PdfOptionsInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .orientation(getOrientation()) - .truncateTables(getTruncateTables()) - .includeLogo(getIncludeLogo()) - .footerText(getFooterText()) - .includePageNumber(getIncludePageNumber()) - .includeCoverPage(getIncludeCoverPage()) - .includeFilterPage(getIncludeFilterPage()); - return builder; - } - - /** - * Class to build instances of {@link PdfOptionsInput}. - */ - public static class Builder { - private OrientationEnum orientation; - private Boolean truncateTables; - private Boolean includeLogo; - private String footerText; - private Boolean includePageNumber; - private Boolean includeCoverPage; - private Boolean includeFilterPage; - - - - /** - * Setter for orientation. - * @param orientation OrientationEnum value for orientation. - * @return Builder - */ - public Builder orientation(OrientationEnum orientation) { - this.orientation = orientation; - return this; - } - - /** - * Setter for truncateTables. - * @param truncateTables Boolean value for truncateTables. - * @return Builder - */ - public Builder truncateTables(Boolean truncateTables) { - this.truncateTables = truncateTables; - return this; - } - - /** - * Setter for includeLogo. - * @param includeLogo Boolean value for includeLogo. - * @return Builder - */ - public Builder includeLogo(Boolean includeLogo) { - this.includeLogo = includeLogo; - return this; - } - - /** - * Setter for footerText. - * @param footerText String value for footerText. - * @return Builder - */ - public Builder footerText(String footerText) { - this.footerText = footerText; - return this; - } - - /** - * Setter for includePageNumber. - * @param includePageNumber Boolean value for includePageNumber. - * @return Builder - */ - public Builder includePageNumber(Boolean includePageNumber) { - this.includePageNumber = includePageNumber; - return this; - } - - /** - * Setter for includeCoverPage. - * @param includeCoverPage Boolean value for includeCoverPage. - * @return Builder - */ - public Builder includeCoverPage(Boolean includeCoverPage) { - this.includeCoverPage = includeCoverPage; - return this; - } - - /** - * Setter for includeFilterPage. - * @param includeFilterPage Boolean value for includeFilterPage. - * @return Builder - */ - public Builder includeFilterPage(Boolean includeFilterPage) { - this.includeFilterPage = includeFilterPage; - return this; - } - - /** - * Builds a new {@link PdfOptionsInput} object using the set fields. - * @return {@link PdfOptionsInput} - */ - public PdfOptionsInput build() { - return new PdfOptionsInput(orientation, truncateTables, includeLogo, footerText, - includePageNumber, includeCoverPage, includeFilterPage); - } - } -} diff --git a/Java/src/main/java/localhost/models/PermissionsTypeSearch.java b/Java/src/main/java/localhost/models/PermissionsTypeSearch.java deleted file mode 100644 index ef9cc34ce..000000000 --- a/Java/src/main/java/localhost/models/PermissionsTypeSearch.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for PermissionsTypeSearch type. - */ -public class PermissionsTypeSearch { - private String type; - private List tsObject; - - /** - * Default constructor. - */ - public PermissionsTypeSearch() { - } - - /** - * Initialization constructor. - * @param type String value for type. - * @param tsObject List of TsObjectTypeSerach value for tsObject. - */ - public PermissionsTypeSearch( - String type, - List tsObject) { - this.type = type; - this.tsObject = tsObject; - } - - /** - * Getter for Type. - * Indicates the type of the object - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of the object - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for TsObject. - * An array of objects of type mentioned in type field - * @return Returns the List of TsObjectTypeSerach - */ - @JsonGetter("tsObject") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTsObject() { - return tsObject; - } - - /** - * Setter for TsObject. - * An array of objects of type mentioned in type field - * @param tsObject Value for List of TsObjectTypeSerach - */ - @JsonSetter("tsObject") - public void setTsObject(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Converts this PermissionsTypeSearch into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "PermissionsTypeSearch [" + "type=" + type + ", tsObject=" + tsObject + "]"; - } - - /** - * Builds a new {@link PermissionsTypeSearch.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link PermissionsTypeSearch.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .type(getType()) - .tsObject(getTsObject()); - return builder; - } - - /** - * Class to build instances of {@link PermissionsTypeSearch}. - */ - public static class Builder { - private String type; - private List tsObject; - - - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for tsObject. - * @param tsObject List of TsObjectTypeSerach value for tsObject. - * @return Builder - */ - public Builder tsObject(List tsObject) { - this.tsObject = tsObject; - return this; - } - - /** - * Builds a new {@link PermissionsTypeSearch} object using the set fields. - * @return {@link PermissionsTypeSearch} - */ - public PermissionsTypeSearch build() { - return new PermissionsTypeSearch(type, tsObject); - } - } -} diff --git a/Java/src/main/java/localhost/models/PinboardDetails.java b/Java/src/main/java/localhost/models/PinboardDetails.java deleted file mode 100644 index 6c7b895e5..000000000 --- a/Java/src/main/java/localhost/models/PinboardDetails.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for PinboardDetails type. - */ -public class PinboardDetails { - private String pinboardId; - private String pinboardName; - private String tabId; - private String tabName; - - /** - * Default constructor. - */ - public PinboardDetails() { - } - - /** - * Initialization constructor. - * @param pinboardId String value for pinboardId. - * @param pinboardName String value for pinboardName. - * @param tabId String value for tabId. - * @param tabName String value for tabName. - */ - public PinboardDetails( - String pinboardId, - String pinboardName, - String tabId, - String tabName) { - this.pinboardId = pinboardId; - this.pinboardName = pinboardName; - this.tabId = tabId; - this.tabName = tabName; - } - - /** - * Getter for PinboardId. - * pinboard id of recently pinned pinboard - * @return Returns the String - */ - @JsonGetter("pinboardId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getPinboardId() { - return pinboardId; - } - - /** - * Setter for PinboardId. - * pinboard id of recently pinned pinboard - * @param pinboardId Value for String - */ - @JsonSetter("pinboardId") - public void setPinboardId(String pinboardId) { - this.pinboardId = pinboardId; - } - - /** - * Getter for PinboardName. - * pinboard name of recently pinned pinboard - * @return Returns the String - */ - @JsonGetter("pinboardName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getPinboardName() { - return pinboardName; - } - - /** - * Setter for PinboardName. - * pinboard name of recently pinned pinboard - * @param pinboardName Value for String - */ - @JsonSetter("pinboardName") - public void setPinboardName(String pinboardName) { - this.pinboardName = pinboardName; - } - - /** - * Getter for TabId. - * tab id of recently pinned tab - * @return Returns the String - */ - @JsonGetter("tabId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTabId() { - return tabId; - } - - /** - * Setter for TabId. - * tab id of recently pinned tab - * @param tabId Value for String - */ - @JsonSetter("tabId") - public void setTabId(String tabId) { - this.tabId = tabId; - } - - /** - * Getter for TabName. - * tab name of recently pinned tab - * @return Returns the String - */ - @JsonGetter("tabName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTabName() { - return tabName; - } - - /** - * Setter for TabName. - * tab name of recently pinned tab - * @param tabName Value for String - */ - @JsonSetter("tabName") - public void setTabName(String tabName) { - this.tabName = tabName; - } - - /** - * Converts this PinboardDetails into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "PinboardDetails [" + "pinboardId=" + pinboardId + ", pinboardName=" + pinboardName - + ", tabId=" + tabId + ", tabName=" + tabName + "]"; - } - - /** - * Builds a new {@link PinboardDetails.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link PinboardDetails.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .pinboardId(getPinboardId()) - .pinboardName(getPinboardName()) - .tabId(getTabId()) - .tabName(getTabName()); - return builder; - } - - /** - * Class to build instances of {@link PinboardDetails}. - */ - public static class Builder { - private String pinboardId; - private String pinboardName; - private String tabId; - private String tabName; - - - - /** - * Setter for pinboardId. - * @param pinboardId String value for pinboardId. - * @return Builder - */ - public Builder pinboardId(String pinboardId) { - this.pinboardId = pinboardId; - return this; - } - - /** - * Setter for pinboardName. - * @param pinboardName String value for pinboardName. - * @return Builder - */ - public Builder pinboardName(String pinboardName) { - this.pinboardName = pinboardName; - return this; - } - - /** - * Setter for tabId. - * @param tabId String value for tabId. - * @return Builder - */ - public Builder tabId(String tabId) { - this.tabId = tabId; - return this; - } - - /** - * Setter for tabName. - * @param tabName String value for tabName. - * @return Builder - */ - public Builder tabName(String tabName) { - this.tabName = tabName; - return this; - } - - /** - * Builds a new {@link PinboardDetails} object using the set fields. - * @return {@link PinboardDetails} - */ - public PinboardDetails build() { - return new PinboardDetails(pinboardId, pinboardName, tabId, tabName); - } - } -} diff --git a/Java/src/main/java/localhost/models/PrincipalSearchResponse.java b/Java/src/main/java/localhost/models/PrincipalSearchResponse.java deleted file mode 100644 index 4f714ade4..000000000 --- a/Java/src/main/java/localhost/models/PrincipalSearchResponse.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for PrincipalSearchResponse type. - */ -public class PrincipalSearchResponse { - private String id; - private String name; - private String type; - private List permissions; - - /** - * Default constructor. - */ - public PrincipalSearchResponse() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param type String value for type. - * @param permissions List of PermissionsTypeSearch value for permissions. - */ - public PrincipalSearchResponse( - String id, - String name, - String type, - List permissions) { - this.id = id; - this.name = name; - this.type = type; - this.permissions = permissions; - } - - /** - * Getter for Id. - * GUID of the user or user group - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user or user group - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * Name of the user or user group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user or user group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Type. - * Indicates the type of principal - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of principal - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Permissions. - * Indicates the permission which user or user group has on the object - * @return Returns the List of PermissionsTypeSearch - */ - @JsonGetter("permissions") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPermissions() { - return permissions; - } - - /** - * Setter for Permissions. - * Indicates the permission which user or user group has on the object - * @param permissions Value for List of PermissionsTypeSearch - */ - @JsonSetter("permissions") - public void setPermissions(List permissions) { - this.permissions = permissions; - } - - /** - * Converts this PrincipalSearchResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "PrincipalSearchResponse [" + "id=" + id + ", name=" + name + ", type=" + type - + ", permissions=" + permissions + "]"; - } - - /** - * Builds a new {@link PrincipalSearchResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link PrincipalSearchResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .type(getType()) - .permissions(getPermissions()); - return builder; - } - - /** - * Class to build instances of {@link PrincipalSearchResponse}. - */ - public static class Builder { - private String id; - private String name; - private String type; - private List permissions; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for permissions. - * @param permissions List of PermissionsTypeSearch value for permissions. - * @return Builder - */ - public Builder permissions(List permissions) { - this.permissions = permissions; - return this; - } - - /** - * Builds a new {@link PrincipalSearchResponse} object using the set fields. - * @return {@link PrincipalSearchResponse} - */ - public PrincipalSearchResponse build() { - return new PrincipalSearchResponse(id, name, type, permissions); - } - } -} diff --git a/Java/src/main/java/localhost/models/PrivilegeEnum.java b/Java/src/main/java/localhost/models/PrivilegeEnum.java deleted file mode 100644 index 4c9ec040e..000000000 --- a/Java/src/main/java/localhost/models/PrivilegeEnum.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * PrivilegeEnum to be used. - */ -public enum PrivilegeEnum { - RANALYSIS, - - DATAMANAGEMENT, - - APPLICATION_ADMINISTRATION, - - USER_ADMINISTRATION, - - SYSTEMMANAGEMENT, - - SYSTEM_INFO_ADMINISTRATION, - - AUTHORING, - - BACKUP_ADMINISTRATION, - - SHAREWITHALL, - - DEVELOPER, - - JOBSCHEDULING, - - GROUP_ADMINISTRATION, - - BYPASSRLS, - - EXPERIMENTALFEATUREPRIVILEGE, - - A3ANALYSIS, - - USERDATAUPLOADING, - - DATADOWNLOADING, - - DISABLE_PINBOARD_CREATION, - - ADMINISTRATION; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - RANALYSIS.value = "RANALYSIS"; - DATAMANAGEMENT.value = "DATAMANAGEMENT"; - APPLICATION_ADMINISTRATION.value = "APPLICATION_ADMINISTRATION"; - USER_ADMINISTRATION.value = "USER_ADMINISTRATION"; - SYSTEMMANAGEMENT.value = "SYSTEMMANAGEMENT"; - SYSTEM_INFO_ADMINISTRATION.value = "SYSTEM_INFO_ADMINISTRATION"; - AUTHORING.value = "AUTHORING"; - BACKUP_ADMINISTRATION.value = "BACKUP_ADMINISTRATION"; - SHAREWITHALL.value = "SHAREWITHALL"; - DEVELOPER.value = "DEVELOPER"; - JOBSCHEDULING.value = "JOBSCHEDULING"; - GROUP_ADMINISTRATION.value = "GROUP_ADMINISTRATION"; - BYPASSRLS.value = "BYPASSRLS"; - EXPERIMENTALFEATUREPRIVILEGE.value = "EXPERIMENTALFEATUREPRIVILEGE"; - A3ANALYSIS.value = "A3ANALYSIS"; - USERDATAUPLOADING.value = "USERDATAUPLOADING"; - DATADOWNLOADING.value = "DATADOWNLOADING"; - DISABLE_PINBOARD_CREATION.value = "DISABLE_PINBOARD_CREATION"; - ADMINISTRATION.value = "ADMINISTRATION"; - - valueMap.put("RANALYSIS", RANALYSIS); - valueMap.put("DATAMANAGEMENT", DATAMANAGEMENT); - valueMap.put("APPLICATION_ADMINISTRATION", APPLICATION_ADMINISTRATION); - valueMap.put("USER_ADMINISTRATION", USER_ADMINISTRATION); - valueMap.put("SYSTEMMANAGEMENT", SYSTEMMANAGEMENT); - valueMap.put("SYSTEM_INFO_ADMINISTRATION", SYSTEM_INFO_ADMINISTRATION); - valueMap.put("AUTHORING", AUTHORING); - valueMap.put("BACKUP_ADMINISTRATION", BACKUP_ADMINISTRATION); - valueMap.put("SHAREWITHALL", SHAREWITHALL); - valueMap.put("DEVELOPER", DEVELOPER); - valueMap.put("JOBSCHEDULING", JOBSCHEDULING); - valueMap.put("GROUP_ADMINISTRATION", GROUP_ADMINISTRATION); - valueMap.put("BYPASSRLS", BYPASSRLS); - valueMap.put("EXPERIMENTALFEATUREPRIVILEGE", EXPERIMENTALFEATUREPRIVILEGE); - valueMap.put("A3ANALYSIS", A3ANALYSIS); - valueMap.put("USERDATAUPLOADING", USERDATAUPLOADING); - valueMap.put("DATADOWNLOADING", DATADOWNLOADING); - valueMap.put("DISABLE_PINBOARD_CREATION", DISABLE_PINBOARD_CREATION); - valueMap.put("ADMINISTRATION", ADMINISTRATION); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static PrivilegeEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of PrivilegeEnum values to list of string values. - * @param toConvert The list of PrivilegeEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (PrivilegeEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/SecuirityDependents.java b/Java/src/main/java/localhost/models/SecuirityDependents.java deleted file mode 100644 index 25754d3b3..000000000 --- a/Java/src/main/java/localhost/models/SecuirityDependents.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for SecuirityDependents type. - */ -public class SecuirityDependents { - private String id; - private String name; - private String type; - private String owner; - private UserNameAndID author; - private List permissions; - - /** - * Default constructor. - */ - public SecuirityDependents() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param type String value for type. - * @param owner String value for owner. - * @param author UserNameAndID value for author. - * @param permissions List of DependentPermission value for permissions. - */ - public SecuirityDependents( - String id, - String name, - String type, - String owner, - UserNameAndID author, - List permissions) { - this.id = id; - this.name = name; - this.type = type; - this.owner = owner; - this.author = author; - this.permissions = permissions; - } - - /** - * Getter for Id. - * GUID of the object - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the object - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * Name of the object - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the object - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Type. - * Indicates the type of the object - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of the object - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Owner. - * Owner of the object - * @return Returns the String - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getOwner() { - return owner; - } - - /** - * Setter for Owner. - * Owner of the object - * @param owner Value for String - */ - @JsonSetter("owner") - public void setOwner(String owner) { - this.owner = owner; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for Permissions. - * @return Returns the List of DependentPermission - */ - @JsonGetter("permissions") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPermissions() { - return permissions; - } - - /** - * Setter for Permissions. - * @param permissions Value for List of DependentPermission - */ - @JsonSetter("permissions") - public void setPermissions(List permissions) { - this.permissions = permissions; - } - - /** - * Converts this SecuirityDependents into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "SecuirityDependents [" + "id=" + id + ", name=" + name + ", type=" + type - + ", owner=" + owner + ", author=" + author + ", permissions=" + permissions + "]"; - } - - /** - * Builds a new {@link SecuirityDependents.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link SecuirityDependents.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .type(getType()) - .owner(getOwner()) - .author(getAuthor()) - .permissions(getPermissions()); - return builder; - } - - /** - * Class to build instances of {@link SecuirityDependents}. - */ - public static class Builder { - private String id; - private String name; - private String type; - private String owner; - private UserNameAndID author; - private List permissions; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for owner. - * @param owner String value for owner. - * @return Builder - */ - public Builder owner(String owner) { - this.owner = owner; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for permissions. - * @param permissions List of DependentPermission value for permissions. - * @return Builder - */ - public Builder permissions(List permissions) { - this.permissions = permissions; - return this; - } - - /** - * Builds a new {@link SecuirityDependents} object using the set fields. - * @return {@link SecuirityDependents} - */ - public SecuirityDependents build() { - return new SecuirityDependents(id, name, type, owner, author, permissions); - } - } -} diff --git a/Java/src/main/java/localhost/models/SecurityPermission.java b/Java/src/main/java/localhost/models/SecurityPermission.java deleted file mode 100644 index 3eef38cee..000000000 --- a/Java/src/main/java/localhost/models/SecurityPermission.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for SecurityPermission type. - */ -public class SecurityPermission { - private String id; - private String name; - private String type; - private String permission; - private String sharedPermission; - private List groupPermission; - - /** - * Default constructor. - */ - public SecurityPermission() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param type String value for type. - * @param permission String value for permission. - * @param sharedPermission String value for sharedPermission. - * @param groupPermission List of GroupPermission value for groupPermission. - */ - public SecurityPermission( - String id, - String name, - String type, - String permission, - String sharedPermission, - List groupPermission) { - this.id = id; - this.name = name; - this.type = type; - this.permission = permission; - this.sharedPermission = sharedPermission; - this.groupPermission = groupPermission; - } - - /** - * Getter for Id. - * GUID of the user or user group - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user or user group - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * Name of the user or user group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user or user group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Type. - * Indicates the type of principal - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of principal - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Permission. - * Indicates the permission which user or user group has on the object - * @return Returns the String - */ - @JsonGetter("permission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getPermission() { - return permission; - } - - /** - * Setter for Permission. - * Indicates the permission which user or user group has on the object - * @param permission Value for String - */ - @JsonSetter("permission") - public void setPermission(String permission) { - this.permission = permission; - } - - /** - * Getter for SharedPermission. - * Indicates the permission which user or user group has on the object through sharing of the - * object with this user or user group - * @return Returns the String - */ - @JsonGetter("sharedPermission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSharedPermission() { - return sharedPermission; - } - - /** - * Setter for SharedPermission. - * Indicates the permission which user or user group has on the object through sharing of the - * object with this user or user group - * @param sharedPermission Value for String - */ - @JsonSetter("sharedPermission") - public void setSharedPermission(String sharedPermission) { - this.sharedPermission = sharedPermission; - } - - /** - * Getter for GroupPermission. - * An array of object with details of permission on the user groups to which the user or user - * group belongs - * @return Returns the List of GroupPermission - */ - @JsonGetter("groupPermission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroupPermission() { - return groupPermission; - } - - /** - * Setter for GroupPermission. - * An array of object with details of permission on the user groups to which the user or user - * group belongs - * @param groupPermission Value for List of GroupPermission - */ - @JsonSetter("groupPermission") - public void setGroupPermission(List groupPermission) { - this.groupPermission = groupPermission; - } - - /** - * Converts this SecurityPermission into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "SecurityPermission [" + "id=" + id + ", name=" + name + ", type=" + type - + ", permission=" + permission + ", sharedPermission=" + sharedPermission - + ", groupPermission=" + groupPermission + "]"; - } - - /** - * Builds a new {@link SecurityPermission.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link SecurityPermission.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .type(getType()) - .permission(getPermission()) - .sharedPermission(getSharedPermission()) - .groupPermission(getGroupPermission()); - return builder; - } - - /** - * Class to build instances of {@link SecurityPermission}. - */ - public static class Builder { - private String id; - private String name; - private String type; - private String permission; - private String sharedPermission; - private List groupPermission; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for permission. - * @param permission String value for permission. - * @return Builder - */ - public Builder permission(String permission) { - this.permission = permission; - return this; - } - - /** - * Setter for sharedPermission. - * @param sharedPermission String value for sharedPermission. - * @return Builder - */ - public Builder sharedPermission(String sharedPermission) { - this.sharedPermission = sharedPermission; - return this; - } - - /** - * Setter for groupPermission. - * @param groupPermission List of GroupPermission value for groupPermission. - * @return Builder - */ - public Builder groupPermission(List groupPermission) { - this.groupPermission = groupPermission; - return this; - } - - /** - * Builds a new {@link SecurityPermission} object using the set fields. - * @return {@link SecurityPermission} - */ - public SecurityPermission build() { - return new SecurityPermission(id, name, type, permission, sharedPermission, - groupPermission); - } - } -} diff --git a/Java/src/main/java/localhost/models/SecurityPermissionResponse.java b/Java/src/main/java/localhost/models/SecurityPermissionResponse.java deleted file mode 100644 index 291c2a032..000000000 --- a/Java/src/main/java/localhost/models/SecurityPermissionResponse.java +++ /dev/null @@ -1,326 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for SecurityPermissionResponse type. - */ -public class SecurityPermissionResponse { - private String id; - private String name; - private String type; - private String owner; - private UserNameAndID author; - private List permissions; - private List dependents; - - /** - * Default constructor. - */ - public SecurityPermissionResponse() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param type String value for type. - * @param owner String value for owner. - * @param author UserNameAndID value for author. - * @param permissions List of SecurityPermission value for permissions. - * @param dependents List of SecuirityDependents value for dependents. - */ - public SecurityPermissionResponse( - String id, - String name, - String type, - String owner, - UserNameAndID author, - List permissions, - List dependents) { - this.id = id; - this.name = name; - this.type = type; - this.owner = owner; - this.author = author; - this.permissions = permissions; - this.dependents = dependents; - } - - /** - * Getter for Id. - * GUID of the object - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the object - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * Name of the object - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the object - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Type. - * Indicates the type of the object - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of the object - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Owner. - * GUID of the owner of the object - * @return Returns the String - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getOwner() { - return owner; - } - - /** - * Setter for Owner. - * GUID of the owner of the object - * @param owner Value for String - */ - @JsonSetter("owner") - public void setOwner(String owner) { - this.owner = owner; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for Permissions. - * An array of object with details of permission on users and user groups - * @return Returns the List of SecurityPermission - */ - @JsonGetter("permissions") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPermissions() { - return permissions; - } - - /** - * Setter for Permissions. - * An array of object with details of permission on users and user groups - * @param permissions Value for List of SecurityPermission - */ - @JsonSetter("permissions") - public void setPermissions(List permissions) { - this.permissions = permissions; - } - - /** - * Getter for Dependents. - * The objects on which the primary object is dependent on - * @return Returns the List of SecuirityDependents - */ - @JsonGetter("dependents") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getDependents() { - return dependents; - } - - /** - * Setter for Dependents. - * The objects on which the primary object is dependent on - * @param dependents Value for List of SecuirityDependents - */ - @JsonSetter("dependents") - public void setDependents(List dependents) { - this.dependents = dependents; - } - - /** - * Converts this SecurityPermissionResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "SecurityPermissionResponse [" + "id=" + id + ", name=" + name + ", type=" + type - + ", owner=" + owner + ", author=" + author + ", permissions=" + permissions - + ", dependents=" + dependents + "]"; - } - - /** - * Builds a new {@link SecurityPermissionResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link SecurityPermissionResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .type(getType()) - .owner(getOwner()) - .author(getAuthor()) - .permissions(getPermissions()) - .dependents(getDependents()); - return builder; - } - - /** - * Class to build instances of {@link SecurityPermissionResponse}. - */ - public static class Builder { - private String id; - private String name; - private String type; - private String owner; - private UserNameAndID author; - private List permissions; - private List dependents; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for owner. - * @param owner String value for owner. - * @return Builder - */ - public Builder owner(String owner) { - this.owner = owner; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for permissions. - * @param permissions List of SecurityPermission value for permissions. - * @return Builder - */ - public Builder permissions(List permissions) { - this.permissions = permissions; - return this; - } - - /** - * Setter for dependents. - * @param dependents List of SecuirityDependents value for dependents. - * @return Builder - */ - public Builder dependents(List dependents) { - this.dependents = dependents; - return this; - } - - /** - * Builds a new {@link SecurityPermissionResponse} object using the set fields. - * @return {@link SecurityPermissionResponse} - */ - public SecurityPermissionResponse build() { - return new SecurityPermissionResponse(id, name, type, owner, author, permissions, - dependents); - } - } -} diff --git a/Java/src/main/java/localhost/models/SessionLoginResponse.java b/Java/src/main/java/localhost/models/SessionLoginResponse.java deleted file mode 100644 index 08525f316..000000000 --- a/Java/src/main/java/localhost/models/SessionLoginResponse.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for SessionLoginResponse type. - */ -public class SessionLoginResponse { - private String userName; - private String token; - private String tokenCreatedTime; - private String tokenExpiryDuration; - private String tokenType; - - /** - * Default constructor. - */ - public SessionLoginResponse() { - } - - /** - * Initialization constructor. - * @param userName String value for userName. - * @param token String value for token. - * @param tokenCreatedTime String value for tokenCreatedTime. - * @param tokenExpiryDuration String value for tokenExpiryDuration. - * @param tokenType String value for tokenType. - */ - public SessionLoginResponse( - String userName, - String token, - String tokenCreatedTime, - String tokenExpiryDuration, - String tokenType) { - this.userName = userName; - this.token = token; - this.tokenCreatedTime = tokenCreatedTime; - this.tokenExpiryDuration = tokenExpiryDuration; - this.tokenType = tokenType; - } - - /** - * Getter for UserName. - * Username of the user account for which token is generated - * @return Returns the String - */ - @JsonGetter("userName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserName() { - return userName; - } - - /** - * Setter for UserName. - * Username of the user account for which token is generated - * @param userName Value for String - */ - @JsonSetter("userName") - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * Getter for Token. - * Bearer token generated. This will be blank when token type is Cookie - * @return Returns the String - */ - @JsonGetter("token") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getToken() { - return token; - } - - /** - * Setter for Token. - * Bearer token generated. This will be blank when token type is Cookie - * @param token Value for String - */ - @JsonSetter("token") - public void setToken(String token) { - this.token = token; - } - - /** - * Getter for TokenCreatedTime. - * Date and time at which the token is generated - * @return Returns the String - */ - @JsonGetter("tokenCreatedTime") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTokenCreatedTime() { - return tokenCreatedTime; - } - - /** - * Setter for TokenCreatedTime. - * Date and time at which the token is generated - * @param tokenCreatedTime Value for String - */ - @JsonSetter("tokenCreatedTime") - public void setTokenCreatedTime(String tokenCreatedTime) { - this.tokenCreatedTime = tokenCreatedTime; - } - - /** - * Getter for TokenExpiryDuration. - * Duration in seconds after which the token expires - * @return Returns the String - */ - @JsonGetter("tokenExpiryDuration") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTokenExpiryDuration() { - return tokenExpiryDuration; - } - - /** - * Setter for TokenExpiryDuration. - * Duration in seconds after which the token expires - * @param tokenExpiryDuration Value for String - */ - @JsonSetter("tokenExpiryDuration") - public void setTokenExpiryDuration(String tokenExpiryDuration) { - this.tokenExpiryDuration = tokenExpiryDuration; - } - - /** - * Getter for TokenType. - * Type of token generated - * @return Returns the String - */ - @JsonGetter("tokenType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTokenType() { - return tokenType; - } - - /** - * Setter for TokenType. - * Type of token generated - * @param tokenType Value for String - */ - @JsonSetter("tokenType") - public void setTokenType(String tokenType) { - this.tokenType = tokenType; - } - - /** - * Converts this SessionLoginResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "SessionLoginResponse [" + "userName=" + userName + ", token=" + token - + ", tokenCreatedTime=" + tokenCreatedTime + ", tokenExpiryDuration=" - + tokenExpiryDuration + ", tokenType=" + tokenType + "]"; - } - - /** - * Builds a new {@link SessionLoginResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link SessionLoginResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .userName(getUserName()) - .token(getToken()) - .tokenCreatedTime(getTokenCreatedTime()) - .tokenExpiryDuration(getTokenExpiryDuration()) - .tokenType(getTokenType()); - return builder; - } - - /** - * Class to build instances of {@link SessionLoginResponse}. - */ - public static class Builder { - private String userName; - private String token; - private String tokenCreatedTime; - private String tokenExpiryDuration; - private String tokenType; - - - - /** - * Setter for userName. - * @param userName String value for userName. - * @return Builder - */ - public Builder userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Setter for token. - * @param token String value for token. - * @return Builder - */ - public Builder token(String token) { - this.token = token; - return this; - } - - /** - * Setter for tokenCreatedTime. - * @param tokenCreatedTime String value for tokenCreatedTime. - * @return Builder - */ - public Builder tokenCreatedTime(String tokenCreatedTime) { - this.tokenCreatedTime = tokenCreatedTime; - return this; - } - - /** - * Setter for tokenExpiryDuration. - * @param tokenExpiryDuration String value for tokenExpiryDuration. - * @return Builder - */ - public Builder tokenExpiryDuration(String tokenExpiryDuration) { - this.tokenExpiryDuration = tokenExpiryDuration; - return this; - } - - /** - * Setter for tokenType. - * @param tokenType String value for tokenType. - * @return Builder - */ - public Builder tokenType(String tokenType) { - this.tokenType = tokenType; - return this; - } - - /** - * Builds a new {@link SessionLoginResponse} object using the set fields. - * @return {@link SessionLoginResponse} - */ - public SessionLoginResponse build() { - return new SessionLoginResponse(userName, token, tokenCreatedTime, tokenExpiryDuration, - tokenType); - } - } -} diff --git a/Java/src/main/java/localhost/models/SortBy1Enum.java b/Java/src/main/java/localhost/models/SortBy1Enum.java deleted file mode 100644 index 42f4056e0..000000000 --- a/Java/src/main/java/localhost/models/SortBy1Enum.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * SortBy1Enum to be used. - */ -public enum SortBy1Enum { - DEFAULT, - - NAME, - - DISPLAY_NAME, - - AUTHOR, - - CREATED, - - MODIFIED, - - LAST_ACCESSED, - - SYNCED, - - VIEWS, - - NONE, - - USER_STATE, - - ROW_COUNT; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - DEFAULT.value = "DEFAULT"; - NAME.value = "NAME"; - DISPLAY_NAME.value = "DISPLAY_NAME"; - AUTHOR.value = "AUTHOR"; - CREATED.value = "CREATED"; - MODIFIED.value = "MODIFIED"; - LAST_ACCESSED.value = "LAST_ACCESSED"; - SYNCED.value = "SYNCED"; - VIEWS.value = "VIEWS"; - NONE.value = "NONE"; - USER_STATE.value = "USER_STATE"; - ROW_COUNT.value = "ROW_COUNT"; - - valueMap.put("DEFAULT", DEFAULT); - valueMap.put("NAME", NAME); - valueMap.put("DISPLAY_NAME", DISPLAY_NAME); - valueMap.put("AUTHOR", AUTHOR); - valueMap.put("CREATED", CREATED); - valueMap.put("MODIFIED", MODIFIED); - valueMap.put("LAST_ACCESSED", LAST_ACCESSED); - valueMap.put("SYNCED", SYNCED); - valueMap.put("VIEWS", VIEWS); - valueMap.put("NONE", NONE); - valueMap.put("USER_STATE", USER_STATE); - valueMap.put("ROW_COUNT", ROW_COUNT); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static SortBy1Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of SortBy1Enum values to list of string values. - * @param toConvert The list of SortBy1Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (SortBy1Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/SortByEnum.java b/Java/src/main/java/localhost/models/SortByEnum.java deleted file mode 100644 index a6ea2e318..000000000 --- a/Java/src/main/java/localhost/models/SortByEnum.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * SortByEnum to be used. - */ -public enum SortByEnum { - DEFAULT, - - NAME, - - DISPLAY_NAME, - - AUTHOR, - - CREATED, - - MODIFIED, - - LAST_ACCESSED, - - SYNCED, - - VIEWS, - - NONE, - - USER_STATE, - - ROW_COUNT; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - DEFAULT.value = "DEFAULT"; - NAME.value = "NAME"; - DISPLAY_NAME.value = "DISPLAY_NAME"; - AUTHOR.value = "AUTHOR"; - CREATED.value = "CREATED"; - MODIFIED.value = "MODIFIED"; - LAST_ACCESSED.value = "LAST_ACCESSED"; - SYNCED.value = "SYNCED"; - VIEWS.value = "VIEWS"; - NONE.value = "NONE"; - USER_STATE.value = "USER_STATE"; - ROW_COUNT.value = "ROW_COUNT"; - - valueMap.put("DEFAULT", DEFAULT); - valueMap.put("NAME", NAME); - valueMap.put("DISPLAY_NAME", DISPLAY_NAME); - valueMap.put("AUTHOR", AUTHOR); - valueMap.put("CREATED", CREATED); - valueMap.put("MODIFIED", MODIFIED); - valueMap.put("LAST_ACCESSED", LAST_ACCESSED); - valueMap.put("SYNCED", SYNCED); - valueMap.put("VIEWS", VIEWS); - valueMap.put("NONE", NONE); - valueMap.put("USER_STATE", USER_STATE); - valueMap.put("ROW_COUNT", ROW_COUNT); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static SortByEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of SortByEnum values to list of string values. - * @param toConvert The list of SortByEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (SortByEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/SortOrder1Enum.java b/Java/src/main/java/localhost/models/SortOrder1Enum.java deleted file mode 100644 index 18fe9c1c4..000000000 --- a/Java/src/main/java/localhost/models/SortOrder1Enum.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * SortOrder1Enum to be used. - */ -public enum SortOrder1Enum { - DEFAULT, - - ASC, - - DESC; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - DEFAULT.value = "DEFAULT"; - ASC.value = "ASC"; - DESC.value = "DESC"; - - valueMap.put("DEFAULT", DEFAULT); - valueMap.put("ASC", ASC); - valueMap.put("DESC", DESC); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static SortOrder1Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of SortOrder1Enum values to list of string values. - * @param toConvert The list of SortOrder1Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (SortOrder1Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/SortOrderEnum.java b/Java/src/main/java/localhost/models/SortOrderEnum.java deleted file mode 100644 index f55b9989e..000000000 --- a/Java/src/main/java/localhost/models/SortOrderEnum.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * SortOrderEnum to be used. - */ -public enum SortOrderEnum { - DEFAULT, - - ASC, - - DESC; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - DEFAULT.value = "DEFAULT"; - ASC.value = "ASC"; - DESC.value = "DESC"; - - valueMap.put("DEFAULT", DEFAULT); - valueMap.put("ASC", ASC); - valueMap.put("DESC", DESC); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static SortOrderEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of SortOrderEnum values to list of string values. - * @param toConvert The list of SortOrderEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (SortOrderEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/State1Enum.java b/Java/src/main/java/localhost/models/State1Enum.java deleted file mode 100644 index ef7d23bdb..000000000 --- a/Java/src/main/java/localhost/models/State1Enum.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * State1Enum to be used. - */ -public enum State1Enum { - ACTIVE, - - INACTIVE, - - EXPIRED, - - LOCKED, - - PENDING; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ACTIVE.value = "ACTIVE"; - INACTIVE.value = "INACTIVE"; - EXPIRED.value = "EXPIRED"; - LOCKED.value = "LOCKED"; - PENDING.value = "PENDING"; - - valueMap.put("ACTIVE", ACTIVE); - valueMap.put("INACTIVE", INACTIVE); - valueMap.put("EXPIRED", EXPIRED); - valueMap.put("LOCKED", LOCKED); - valueMap.put("PENDING", PENDING); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static State1Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of State1Enum values to list of string values. - * @param toConvert The list of State1Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (State1Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/StateEnum.java b/Java/src/main/java/localhost/models/StateEnum.java deleted file mode 100644 index ab8aa973e..000000000 --- a/Java/src/main/java/localhost/models/StateEnum.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * StateEnum to be used. - */ -public enum StateEnum { - ACTIVE, - - INACTIVE, - - EXPIRED, - - LOCKED, - - PENDING; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ACTIVE.value = "ACTIVE"; - INACTIVE.value = "INACTIVE"; - EXPIRED.value = "EXPIRED"; - LOCKED.value = "LOCKED"; - PENDING.value = "PENDING"; - - valueMap.put("ACTIVE", ACTIVE); - valueMap.put("INACTIVE", INACTIVE); - valueMap.put("EXPIRED", EXPIRED); - valueMap.put("LOCKED", LOCKED); - valueMap.put("PENDING", PENDING); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static StateEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of StateEnum values to list of string values. - * @param toConvert The list of StateEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (StateEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/TableColumns.java b/Java/src/main/java/localhost/models/TableColumns.java deleted file mode 100644 index 1f5d85157..000000000 --- a/Java/src/main/java/localhost/models/TableColumns.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TableColumns type. - */ -public class TableColumns { - private String name; - private String dataType; - - /** - * Default constructor. - */ - public TableColumns() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param dataType String value for dataType. - */ - public TableColumns( - String name, - String dataType) { - this.name = name; - this.dataType = dataType; - } - - /** - * Getter for Name. - * Name of the column - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the column - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for DataType. - * Datatype of the column - * @return Returns the String - */ - @JsonGetter("dataType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDataType() { - return dataType; - } - - /** - * Setter for DataType. - * Datatype of the column - * @param dataType Value for String - */ - @JsonSetter("dataType") - public void setDataType(String dataType) { - this.dataType = dataType; - } - - /** - * Converts this TableColumns into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TableColumns [" + "name=" + name + ", dataType=" + dataType + "]"; - } - - /** - * Builds a new {@link TableColumns.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TableColumns.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .dataType(getDataType()); - return builder; - } - - /** - * Class to build instances of {@link TableColumns}. - */ - public static class Builder { - private String name; - private String dataType; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for dataType. - * @param dataType String value for dataType. - * @return Builder - */ - public Builder dataType(String dataType) { - this.dataType = dataType; - return this; - } - - /** - * Builds a new {@link TableColumns} object using the set fields. - * @return {@link TableColumns} - */ - public TableColumns build() { - return new TableColumns(name, dataType); - } - } -} diff --git a/Java/src/main/java/localhost/models/TableInput.java b/Java/src/main/java/localhost/models/TableInput.java deleted file mode 100644 index 545b5829c..000000000 --- a/Java/src/main/java/localhost/models/TableInput.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TableInput type. - */ -public class TableInput { - private String name; - private String id; - - /** - * Default constructor. - */ - public TableInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public TableInput( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the table - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the table - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the Table - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the Table - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this TableInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TableInput [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TableInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TableInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TableInput}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TableInput} object using the set fields. - * @return {@link TableInput} - */ - public TableInput build() { - return new TableInput(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TableList.java b/Java/src/main/java/localhost/models/TableList.java deleted file mode 100644 index c6df604b3..000000000 --- a/Java/src/main/java/localhost/models/TableList.java +++ /dev/null @@ -1,691 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TableList type. - */ -public class TableList { - private String name; - private String type; - private String id; - private String databaseStripe; - private String schemaStripe; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean isDeleted; - private Boolean isHidden; - private Double indexVersion; - private Double generationNum; - private String created; - private String modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - private List tags; - - /** - * Default constructor. - */ - public TableList() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param type String value for type. - * @param id String value for id. - * @param databaseStripe String value for databaseStripe. - * @param schemaStripe String value for schemaStripe. - * @param isExternal Boolean value for isExternal. - * @param isDeprecated Boolean value for isDeprecated. - * @param isDeleted Boolean value for isDeleted. - * @param isHidden Boolean value for isHidden. - * @param indexVersion Double value for indexVersion. - * @param generationNum Double value for generationNum. - * @param created String value for created. - * @param modified String value for modified. - * @param author UserNameAndID value for author. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @param owner UserNameAndID value for owner. - * @param tags List of String value for tags. - */ - public TableList( - String name, - String type, - String id, - String databaseStripe, - String schemaStripe, - Boolean isExternal, - Boolean isDeprecated, - Boolean isDeleted, - Boolean isHidden, - Double indexVersion, - Double generationNum, - String created, - String modified, - UserNameAndID author, - UserNameAndID modifiedBy, - UserNameAndID owner, - List tags) { - this.name = name; - this.type = type; - this.id = id; - this.databaseStripe = databaseStripe; - this.schemaStripe = schemaStripe; - this.isExternal = isExternal; - this.isDeprecated = isDeprecated; - this.isDeleted = isDeleted; - this.isHidden = isHidden; - this.indexVersion = indexVersion; - this.generationNum = generationNum; - this.created = created; - this.modified = modified; - this.author = author; - this.modifiedBy = modifiedBy; - this.owner = owner; - this.tags = tags; - } - - /** - * Getter for Name. - * Name of the table - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the table - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Type. - * Type of the table - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Type of the table - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Id. - * GUID of the table - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the table - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for DatabaseStripe. - * Name of the database to which the table belongs - * @return Returns the String - */ - @JsonGetter("databaseStripe") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDatabaseStripe() { - return databaseStripe; - } - - /** - * Setter for DatabaseStripe. - * Name of the database to which the table belongs - * @param databaseStripe Value for String - */ - @JsonSetter("databaseStripe") - public void setDatabaseStripe(String databaseStripe) { - this.databaseStripe = databaseStripe; - } - - /** - * Getter for SchemaStripe. - * Name of the schema to which the table belongs - * @return Returns the String - */ - @JsonGetter("schemaStripe") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSchemaStripe() { - return schemaStripe; - } - - /** - * Setter for SchemaStripe. - * Name of the schema to which the table belongs - * @param schemaStripe Value for String - */ - @JsonSetter("schemaStripe") - public void setSchemaStripe(String schemaStripe) { - this.schemaStripe = schemaStripe; - } - - /** - * Getter for IsExternal. - * @return Returns the Boolean - */ - @JsonGetter("isExternal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsExternal() { - return isExternal; - } - - /** - * Setter for IsExternal. - * @param isExternal Value for Boolean - */ - @JsonSetter("isExternal") - public void setIsExternal(Boolean isExternal) { - this.isExternal = isExternal; - } - - /** - * Getter for IsDeprecated. - * Indicates if the table is deprecated - * @return Returns the Boolean - */ - @JsonGetter("isDeprecated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeprecated() { - return isDeprecated; - } - - /** - * Setter for IsDeprecated. - * Indicates if the table is deprecated - * @param isDeprecated Value for Boolean - */ - @JsonSetter("isDeprecated") - public void setIsDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - } - - /** - * Getter for IsDeleted. - * Indicates if the table is deleted - * @return Returns the Boolean - */ - @JsonGetter("isDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeleted() { - return isDeleted; - } - - /** - * Setter for IsDeleted. - * Indicates if the table is deleted - * @param isDeleted Value for Boolean - */ - @JsonSetter("isDeleted") - public void setIsDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - } - - /** - * Getter for IsHidden. - * Indicates if the table is hideen - * @return Returns the Boolean - */ - @JsonGetter("isHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsHidden() { - return isHidden; - } - - /** - * Setter for IsHidden. - * Indicates if the table is hideen - * @param isHidden Value for Boolean - */ - @JsonSetter("isHidden") - public void setIsHidden(Boolean isHidden) { - this.isHidden = isHidden; - } - - /** - * Getter for IndexVersion. - * @return Returns the Double - */ - @JsonGetter("indexVersion") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getIndexVersion() { - return indexVersion; - } - - /** - * Setter for IndexVersion. - * @param indexVersion Value for Double - */ - @JsonSetter("indexVersion") - public void setIndexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - } - - /** - * Getter for GenerationNum. - * @return Returns the Double - */ - @JsonGetter("generationNum") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getGenerationNum() { - return generationNum; - } - - /** - * Setter for GenerationNum. - * @param generationNum Value for Double - */ - @JsonSetter("generationNum") - public void setGenerationNum(Double generationNum) { - this.generationNum = generationNum; - } - - /** - * Getter for Created. - * Date and time when the table was created - * @return Returns the String - */ - @JsonGetter("created") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getCreated() { - return created; - } - - /** - * Setter for Created. - * Date and time when the table was created - * @param created Value for String - */ - @JsonSetter("created") - public void setCreated(String created) { - this.created = created; - } - - /** - * Getter for Modified. - * Date and time of last modification of the table - * @return Returns the String - */ - @JsonGetter("modified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getModified() { - return modified; - } - - /** - * Setter for Modified. - * Date and time of last modification of the table - * @param modified Value for String - */ - @JsonSetter("modified") - public void setModified(String modified) { - this.modified = modified; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for ModifiedBy. - * @return Returns the UserNameAndID - */ - @JsonGetter("modifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getModifiedBy() { - return modifiedBy; - } - - /** - * Setter for ModifiedBy. - * @param modifiedBy Value for UserNameAndID - */ - @JsonSetter("modifiedBy") - public void setModifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * Getter for Owner. - * @return Returns the UserNameAndID - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getOwner() { - return owner; - } - - /** - * Setter for Owner. - * @param owner Value for UserNameAndID - */ - @JsonSetter("owner") - public void setOwner(UserNameAndID owner) { - this.owner = owner; - } - - /** - * Getter for Tags. - * List of tags assigned to the table - * @return Returns the List of String - */ - @JsonGetter("tags") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTags() { - return tags; - } - - /** - * Setter for Tags. - * List of tags assigned to the table - * @param tags Value for List of String - */ - @JsonSetter("tags") - public void setTags(List tags) { - this.tags = tags; - } - - /** - * Converts this TableList into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TableList [" + "name=" + name + ", type=" + type + ", id=" + id - + ", databaseStripe=" + databaseStripe + ", schemaStripe=" + schemaStripe - + ", isExternal=" + isExternal + ", isDeprecated=" + isDeprecated + ", isDeleted=" - + isDeleted + ", isHidden=" + isHidden + ", indexVersion=" + indexVersion - + ", generationNum=" + generationNum + ", created=" + created + ", modified=" - + modified + ", author=" + author + ", modifiedBy=" + modifiedBy + ", owner=" - + owner + ", tags=" + tags + "]"; - } - - /** - * Builds a new {@link TableList.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TableList.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .type(getType()) - .id(getId()) - .databaseStripe(getDatabaseStripe()) - .schemaStripe(getSchemaStripe()) - .isExternal(getIsExternal()) - .isDeprecated(getIsDeprecated()) - .isDeleted(getIsDeleted()) - .isHidden(getIsHidden()) - .indexVersion(getIndexVersion()) - .generationNum(getGenerationNum()) - .created(getCreated()) - .modified(getModified()) - .author(getAuthor()) - .modifiedBy(getModifiedBy()) - .owner(getOwner()) - .tags(getTags()); - return builder; - } - - /** - * Class to build instances of {@link TableList}. - */ - public static class Builder { - private String name; - private String type; - private String id; - private String databaseStripe; - private String schemaStripe; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean isDeleted; - private Boolean isHidden; - private Double indexVersion; - private Double generationNum; - private String created; - private String modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - private List tags; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for databaseStripe. - * @param databaseStripe String value for databaseStripe. - * @return Builder - */ - public Builder databaseStripe(String databaseStripe) { - this.databaseStripe = databaseStripe; - return this; - } - - /** - * Setter for schemaStripe. - * @param schemaStripe String value for schemaStripe. - * @return Builder - */ - public Builder schemaStripe(String schemaStripe) { - this.schemaStripe = schemaStripe; - return this; - } - - /** - * Setter for isExternal. - * @param isExternal Boolean value for isExternal. - * @return Builder - */ - public Builder isExternal(Boolean isExternal) { - this.isExternal = isExternal; - return this; - } - - /** - * Setter for isDeprecated. - * @param isDeprecated Boolean value for isDeprecated. - * @return Builder - */ - public Builder isDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - return this; - } - - /** - * Setter for isDeleted. - * @param isDeleted Boolean value for isDeleted. - * @return Builder - */ - public Builder isDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - return this; - } - - /** - * Setter for isHidden. - * @param isHidden Boolean value for isHidden. - * @return Builder - */ - public Builder isHidden(Boolean isHidden) { - this.isHidden = isHidden; - return this; - } - - /** - * Setter for indexVersion. - * @param indexVersion Double value for indexVersion. - * @return Builder - */ - public Builder indexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - return this; - } - - /** - * Setter for generationNum. - * @param generationNum Double value for generationNum. - * @return Builder - */ - public Builder generationNum(Double generationNum) { - this.generationNum = generationNum; - return this; - } - - /** - * Setter for created. - * @param created String value for created. - * @return Builder - */ - public Builder created(String created) { - this.created = created; - return this; - } - - /** - * Setter for modified. - * @param modified String value for modified. - * @return Builder - */ - public Builder modified(String modified) { - this.modified = modified; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for modifiedBy. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @return Builder - */ - public Builder modifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - /** - * Setter for owner. - * @param owner UserNameAndID value for owner. - * @return Builder - */ - public Builder owner(UserNameAndID owner) { - this.owner = owner; - return this; - } - - /** - * Setter for tags. - * @param tags List of String value for tags. - * @return Builder - */ - public Builder tags(List tags) { - this.tags = tags; - return this; - } - - /** - * Builds a new {@link TableList} object using the set fields. - * @return {@link TableList} - */ - public TableList build() { - return new TableList(name, type, id, databaseStripe, schemaStripe, isExternal, - isDeprecated, isDeleted, isHidden, indexVersion, generationNum, created, - modified, author, modifiedBy, owner, tags); - } - } -} diff --git a/Java/src/main/java/localhost/models/TagNameAndID.java b/Java/src/main/java/localhost/models/TagNameAndID.java deleted file mode 100644 index a264d86c2..000000000 --- a/Java/src/main/java/localhost/models/TagNameAndID.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TagNameAndID type. - */ -public class TagNameAndID { - private String name; - private String id; - - /** - * Default constructor. - */ - public TagNameAndID() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public TagNameAndID( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the group to which group is added - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group to which group is added - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the group to which group is added - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the group to which group is added - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this TagNameAndID into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TagNameAndID [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TagNameAndID.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TagNameAndID.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TagNameAndID}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TagNameAndID} object using the set fields. - * @return {@link TagNameAndID} - */ - public TagNameAndID build() { - return new TagNameAndID(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TagNameAndIdInput.java b/Java/src/main/java/localhost/models/TagNameAndIdInput.java deleted file mode 100644 index 2ebd65a5c..000000000 --- a/Java/src/main/java/localhost/models/TagNameAndIdInput.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TagNameAndIdInput type. - */ -public class TagNameAndIdInput { - private String name; - private String id; - - /** - * Default constructor. - */ - public TagNameAndIdInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public TagNameAndIdInput( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Name of the tags - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the tags - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the tags - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the tags - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this TagNameAndIdInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TagNameAndIdInput [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TagNameAndIdInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TagNameAndIdInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TagNameAndIdInput}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TagNameAndIdInput} object using the set fields. - * @return {@link TagNameAndIdInput} - */ - public TagNameAndIdInput build() { - return new TagNameAndIdInput(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/ToUserNameAndIDInput.java b/Java/src/main/java/localhost/models/ToUserNameAndIDInput.java deleted file mode 100644 index bbf884f72..000000000 --- a/Java/src/main/java/localhost/models/ToUserNameAndIDInput.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for ToUserNameAndIDInput type. - */ -public class ToUserNameAndIDInput { - private String name; - private String id; - - /** - * Default constructor. - */ - public ToUserNameAndIDInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public ToUserNameAndIDInput( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Username of the user - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Username of the user - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the user - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this ToUserNameAndIDInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "ToUserNameAndIDInput [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link ToUserNameAndIDInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link ToUserNameAndIDInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link ToUserNameAndIDInput}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link ToUserNameAndIDInput} object using the set fields. - * @return {@link ToUserNameAndIDInput} - */ - public ToUserNameAndIDInput build() { - return new ToUserNameAndIDInput(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TopicEnum.java b/Java/src/main/java/localhost/models/TopicEnum.java deleted file mode 100644 index 3f4d6cdb4..000000000 --- a/Java/src/main/java/localhost/models/TopicEnum.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * TopicEnum to be used. - */ -public enum TopicEnum { - SECURITY_LOGS; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - SECURITY_LOGS.value = "security_logs"; - - valueMap.put("security_logs", SECURITY_LOGS); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static TopicEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of TopicEnum values to list of string values. - * @param toConvert The list of TopicEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (TopicEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/TsObjectInput.java b/Java/src/main/java/localhost/models/TsObjectInput.java deleted file mode 100644 index 1ae14a7f9..000000000 --- a/Java/src/main/java/localhost/models/TsObjectInput.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TsObjectInput type. - */ -public class TsObjectInput { - private String id; - private TypeEnum type; - - /** - * Default constructor. - */ - public TsObjectInput() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param type TypeEnum value for type. - */ - public TsObjectInput( - String id, - TypeEnum type) { - this.id = id; - this.type = type; - } - - /** - * Getter for Id. - * GUID of the metadata object - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the metadata object - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Type. - * Type of the metadata object - * @return Returns the TypeEnum - */ - @JsonGetter("type") - public TypeEnum getType() { - return type; - } - - /** - * Setter for Type. - * Type of the metadata object - * @param type Value for TypeEnum - */ - @JsonSetter("type") - public void setType(TypeEnum type) { - this.type = type; - } - - /** - * Converts this TsObjectInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TsObjectInput [" + "id=" + id + ", type=" + type + "]"; - } - - /** - * Builds a new {@link TsObjectInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TsObjectInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, type); - return builder; - } - - /** - * Class to build instances of {@link TsObjectInput}. - */ - public static class Builder { - private String id; - private TypeEnum type; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param type TypeEnum value for type. - */ - public Builder(String id, TypeEnum type) { - this.id = id; - this.type = type; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for type. - * @param type TypeEnum value for type. - * @return Builder - */ - public Builder type(TypeEnum type) { - this.type = type; - return this; - } - - /** - * Builds a new {@link TsObjectInput} object using the set fields. - * @return {@link TsObjectInput} - */ - public TsObjectInput build() { - return new TsObjectInput(id, type); - } - } -} diff --git a/Java/src/main/java/localhost/models/TsObjectSearchInput.java b/Java/src/main/java/localhost/models/TsObjectSearchInput.java deleted file mode 100644 index ee59d3550..000000000 --- a/Java/src/main/java/localhost/models/TsObjectSearchInput.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TsObjectSearchInput type. - */ -public class TsObjectSearchInput { - private Type2Enum type; - private List id; - - /** - * Default constructor. - */ - public TsObjectSearchInput() { - } - - /** - * Initialization constructor. - * @param type Type2Enum value for type. - * @param id List of String value for id. - */ - public TsObjectSearchInput( - Type2Enum type, - List id) { - this.type = type; - this.id = id; - } - - /** - * Getter for Type. - * Type of the metadata objec - * @return Returns the Type2Enum - */ - @JsonGetter("type") - public Type2Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of the metadata objec - * @param type Value for Type2Enum - */ - @JsonSetter("type") - public void setType(Type2Enum type) { - this.type = type; - } - - /** - * Getter for Id. - * A JSON Array of GUIDs of the metadata object - * @return Returns the List of String - */ - @JsonGetter("id") - public List getId() { - return id; - } - - /** - * Setter for Id. - * A JSON Array of GUIDs of the metadata object - * @param id Value for List of String - */ - @JsonSetter("id") - public void setId(List id) { - this.id = id; - } - - /** - * Converts this TsObjectSearchInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TsObjectSearchInput [" + "type=" + type + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TsObjectSearchInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TsObjectSearchInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(type, id); - return builder; - } - - /** - * Class to build instances of {@link TsObjectSearchInput}. - */ - public static class Builder { - private Type2Enum type; - private List id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param type Type2Enum value for type. - * @param id List of String value for id. - */ - public Builder(Type2Enum type, List id) { - this.type = type; - this.id = id; - } - - /** - * Setter for type. - * @param type Type2Enum value for type. - * @return Builder - */ - public Builder type(Type2Enum type) { - this.type = type; - return this; - } - - /** - * Setter for id. - * @param id List of String value for id. - * @return Builder - */ - public Builder id(List id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TsObjectSearchInput} object using the set fields. - * @return {@link TsObjectSearchInput} - */ - public TsObjectSearchInput build() { - return new TsObjectSearchInput(type, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TsObjectTypeSerach.java b/Java/src/main/java/localhost/models/TsObjectTypeSerach.java deleted file mode 100644 index 3775b784c..000000000 --- a/Java/src/main/java/localhost/models/TsObjectTypeSerach.java +++ /dev/null @@ -1,330 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TsObjectTypeSerach type. - */ -public class TsObjectTypeSerach { - private String id; - private String name; - private String owner; - private UserNameAndID author; - private String permission; - private String sharedPermission; - private List groupPermission; - - /** - * Default constructor. - */ - public TsObjectTypeSerach() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param name String value for name. - * @param owner String value for owner. - * @param author UserNameAndID value for author. - * @param permission String value for permission. - * @param sharedPermission String value for sharedPermission. - * @param groupPermission List of GroupPermission value for groupPermission. - */ - public TsObjectTypeSerach( - String id, - String name, - String owner, - UserNameAndID author, - String permission, - String sharedPermission, - List groupPermission) { - this.id = id; - this.name = name; - this.owner = owner; - this.author = author; - this.permission = permission; - this.sharedPermission = sharedPermission; - this.groupPermission = groupPermission; - } - - /** - * Getter for Id. - * GUID of the object - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the object - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * Name of the object - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the object - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Owner. - * Owner of the object - * @return Returns the String - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getOwner() { - return owner; - } - - /** - * Setter for Owner. - * Owner of the object - * @param owner Value for String - */ - @JsonSetter("owner") - public void setOwner(String owner) { - this.owner = owner; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for Permission. - * Indicates the permission which user or user group has on the object - * @return Returns the String - */ - @JsonGetter("permission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getPermission() { - return permission; - } - - /** - * Setter for Permission. - * Indicates the permission which user or user group has on the object - * @param permission Value for String - */ - @JsonSetter("permission") - public void setPermission(String permission) { - this.permission = permission; - } - - /** - * Getter for SharedPermission. - * Indicates the permission which user or user group has on the object through sharing of the - * object with the user or user group - * @return Returns the String - */ - @JsonGetter("sharedPermission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSharedPermission() { - return sharedPermission; - } - - /** - * Setter for SharedPermission. - * Indicates the permission which user or user group has on the object through sharing of the - * object with the user or user group - * @param sharedPermission Value for String - */ - @JsonSetter("sharedPermission") - public void setSharedPermission(String sharedPermission) { - this.sharedPermission = sharedPermission; - } - - /** - * Getter for GroupPermission. - * An array of object with details of permission on the user groups to which the user or user - * group belongs - * @return Returns the List of GroupPermission - */ - @JsonGetter("groupPermission") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroupPermission() { - return groupPermission; - } - - /** - * Setter for GroupPermission. - * An array of object with details of permission on the user groups to which the user or user - * group belongs - * @param groupPermission Value for List of GroupPermission - */ - @JsonSetter("groupPermission") - public void setGroupPermission(List groupPermission) { - this.groupPermission = groupPermission; - } - - /** - * Converts this TsObjectTypeSerach into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TsObjectTypeSerach [" + "id=" + id + ", name=" + name + ", owner=" + owner - + ", author=" + author + ", permission=" + permission + ", sharedPermission=" - + sharedPermission + ", groupPermission=" + groupPermission + "]"; - } - - /** - * Builds a new {@link TsObjectTypeSerach.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TsObjectTypeSerach.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .id(getId()) - .name(getName()) - .owner(getOwner()) - .author(getAuthor()) - .permission(getPermission()) - .sharedPermission(getSharedPermission()) - .groupPermission(getGroupPermission()); - return builder; - } - - /** - * Class to build instances of {@link TsObjectTypeSerach}. - */ - public static class Builder { - private String id; - private String name; - private String owner; - private UserNameAndID author; - private String permission; - private String sharedPermission; - private List groupPermission; - - - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for owner. - * @param owner String value for owner. - * @return Builder - */ - public Builder owner(String owner) { - this.owner = owner; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for permission. - * @param permission String value for permission. - * @return Builder - */ - public Builder permission(String permission) { - this.permission = permission; - return this; - } - - /** - * Setter for sharedPermission. - * @param sharedPermission String value for sharedPermission. - * @return Builder - */ - public Builder sharedPermission(String sharedPermission) { - this.sharedPermission = sharedPermission; - return this; - } - - /** - * Setter for groupPermission. - * @param groupPermission List of GroupPermission value for groupPermission. - * @return Builder - */ - public Builder groupPermission(List groupPermission) { - this.groupPermission = groupPermission; - return this; - } - - /** - * Builds a new {@link TsObjectTypeSerach} object using the set fields. - * @return {@link TsObjectTypeSerach} - */ - public TsObjectTypeSerach build() { - return new TsObjectTypeSerach(id, name, owner, author, permission, sharedPermission, - groupPermission); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2AdminAssignauthorRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2AdminAssignauthorRequest.java deleted file mode 100644 index b2f4c616c..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2AdminAssignauthorRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2AdminAssignauthorRequest type. - */ -public class TspublicRestV2AdminAssignauthorRequest { - private List tsObjectId; - private String name; - private String id; - - /** - * Default constructor. - */ - public TspublicRestV2AdminAssignauthorRequest() { - } - - /** - * Initialization constructor. - * @param tsObjectId List of String value for tsObjectId. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2AdminAssignauthorRequest( - List tsObjectId, - String name, - String id) { - this.tsObjectId = tsObjectId; - this.name = name; - this.id = id; - } - - /** - * Getter for TsObjectId. - * A JSON array of GUIDs of the metadata objects. - * @return Returns the List of String - */ - @JsonGetter("tsObjectId") - public List getTsObjectId() { - return tsObjectId; - } - - /** - * Setter for TsObjectId. - * A JSON array of GUIDs of the metadata objects. - * @param tsObjectId Value for List of String - */ - @JsonSetter("tsObjectId") - public void setTsObjectId(List tsObjectId) { - this.tsObjectId = tsObjectId; - } - - /** - * Getter for Name. - * User name of the user account - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * User name of the user account - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the user account - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the user account - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this TspublicRestV2AdminAssignauthorRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2AdminAssignauthorRequest [" + "tsObjectId=" + tsObjectId + ", name=" - + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2AdminAssignauthorRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2AdminAssignauthorRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(tsObjectId) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2AdminAssignauthorRequest}. - */ - public static class Builder { - private List tsObjectId; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param tsObjectId List of String value for tsObjectId. - */ - public Builder(List tsObjectId) { - this.tsObjectId = tsObjectId; - } - - /** - * Setter for tsObjectId. - * @param tsObjectId List of String value for tsObjectId. - * @return Builder - */ - public Builder tsObjectId(List tsObjectId) { - this.tsObjectId = tsObjectId; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2AdminAssignauthorRequest} object using the set fields. - * @return {@link TspublicRestV2AdminAssignauthorRequest} - */ - public TspublicRestV2AdminAssignauthorRequest build() { - return new TspublicRestV2AdminAssignauthorRequest(tsObjectId, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2AdminChangeauthorRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2AdminChangeauthorRequest.java deleted file mode 100644 index 564c1ec9f..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2AdminChangeauthorRequest.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2AdminChangeauthorRequest type. - */ -public class TspublicRestV2AdminChangeauthorRequest { - private List tsObjectId; - private FromUserNameAndIDInput fromUser; - private ToUserNameAndIDInput toUser; - - /** - * Default constructor. - */ - public TspublicRestV2AdminChangeauthorRequest() { - } - - /** - * Initialization constructor. - * @param tsObjectId List of String value for tsObjectId. - * @param fromUser FromUserNameAndIDInput value for fromUser. - * @param toUser ToUserNameAndIDInput value for toUser. - */ - public TspublicRestV2AdminChangeauthorRequest( - List tsObjectId, - FromUserNameAndIDInput fromUser, - ToUserNameAndIDInput toUser) { - this.tsObjectId = tsObjectId; - this.fromUser = fromUser; - this.toUser = toUser; - } - - /** - * Getter for TsObjectId. - * A JSON array of GUIDs of the metadata objects. To change owner of all the objects owned by a - * user, provide single input as ALL. If multiple object ids along with ALL is provided as - * input, then ALL will be considered. - * @return Returns the List of String - */ - @JsonGetter("tsObjectId") - public List getTsObjectId() { - return tsObjectId; - } - - /** - * Setter for TsObjectId. - * A JSON array of GUIDs of the metadata objects. To change owner of all the objects owned by a - * user, provide single input as ALL. If multiple object ids along with ALL is provided as - * input, then ALL will be considered. - * @param tsObjectId Value for List of String - */ - @JsonSetter("tsObjectId") - public void setTsObjectId(List tsObjectId) { - this.tsObjectId = tsObjectId; - } - - /** - * Getter for FromUser. - * A JSON object of name or GUIDs of the current owner of the objects. When both are given then - * id is considered. If a list of object ids are provided as input for TsObjectId, then only for - * those ids that have owner as the value provided in fromUser, the owner will be changed. - * Provide either name or id as input. When both are given user id will be considered. - * @return Returns the FromUserNameAndIDInput - */ - @JsonGetter("fromUser") - public FromUserNameAndIDInput getFromUser() { - return fromUser; - } - - /** - * Setter for FromUser. - * A JSON object of name or GUIDs of the current owner of the objects. When both are given then - * id is considered. If a list of object ids are provided as input for TsObjectId, then only for - * those ids that have owner as the value provided in fromUser, the owner will be changed. - * Provide either name or id as input. When both are given user id will be considered. - * @param fromUser Value for FromUserNameAndIDInput - */ - @JsonSetter("fromUser") - public void setFromUser(FromUserNameAndIDInput fromUser) { - this.fromUser = fromUser; - } - - /** - * Getter for ToUser. - * A JSON object of name or GUIDs of the new owner for the objects. When both are given then id - * is considered. - * @return Returns the ToUserNameAndIDInput - */ - @JsonGetter("toUser") - public ToUserNameAndIDInput getToUser() { - return toUser; - } - - /** - * Setter for ToUser. - * A JSON object of name or GUIDs of the new owner for the objects. When both are given then id - * is considered. - * @param toUser Value for ToUserNameAndIDInput - */ - @JsonSetter("toUser") - public void setToUser(ToUserNameAndIDInput toUser) { - this.toUser = toUser; - } - - /** - * Converts this TspublicRestV2AdminChangeauthorRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2AdminChangeauthorRequest [" + "tsObjectId=" + tsObjectId - + ", fromUser=" + fromUser + ", toUser=" + toUser + "]"; - } - - /** - * Builds a new {@link TspublicRestV2AdminChangeauthorRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2AdminChangeauthorRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(tsObjectId, fromUser, toUser); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2AdminChangeauthorRequest}. - */ - public static class Builder { - private List tsObjectId; - private FromUserNameAndIDInput fromUser; - private ToUserNameAndIDInput toUser; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param tsObjectId List of String value for tsObjectId. - * @param fromUser FromUserNameAndIDInput value for fromUser. - * @param toUser ToUserNameAndIDInput value for toUser. - */ - public Builder(List tsObjectId, FromUserNameAndIDInput fromUser, - ToUserNameAndIDInput toUser) { - this.tsObjectId = tsObjectId; - this.fromUser = fromUser; - this.toUser = toUser; - } - - /** - * Setter for tsObjectId. - * @param tsObjectId List of String value for tsObjectId. - * @return Builder - */ - public Builder tsObjectId(List tsObjectId) { - this.tsObjectId = tsObjectId; - return this; - } - - /** - * Setter for fromUser. - * @param fromUser FromUserNameAndIDInput value for fromUser. - * @return Builder - */ - public Builder fromUser(FromUserNameAndIDInput fromUser) { - this.fromUser = fromUser; - return this; - } - - /** - * Setter for toUser. - * @param toUser ToUserNameAndIDInput value for toUser. - * @return Builder - */ - public Builder toUser(ToUserNameAndIDInput toUser) { - this.toUser = toUser; - return this; - } - - /** - * Builds a new {@link TspublicRestV2AdminChangeauthorRequest} object using the set fields. - * @return {@link TspublicRestV2AdminChangeauthorRequest} - */ - public TspublicRestV2AdminChangeauthorRequest build() { - return new TspublicRestV2AdminChangeauthorRequest(tsObjectId, fromUser, toUser); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2AdminConfigurationUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2AdminConfigurationUpdateRequest.java deleted file mode 100644 index ddb74c31b..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2AdminConfigurationUpdateRequest.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2AdminConfigurationUpdateRequest type. - */ -public class TspublicRestV2AdminConfigurationUpdateRequest { - private String configuration; - - /** - * Default constructor. - */ - public TspublicRestV2AdminConfigurationUpdateRequest() { - } - - /** - * Initialization constructor. - * @param configuration String value for configuration. - */ - public TspublicRestV2AdminConfigurationUpdateRequest( - String configuration) { - this.configuration = configuration; - } - - /** - * Getter for Configuration. - * A JSON file with the key-value pair of configuration attributes to be updated. Example: - * {"defaultChartDataSize": 5000} - * @return Returns the String - */ - @JsonGetter("configuration") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * A JSON file with the key-value pair of configuration attributes to be updated. Example: - * {"defaultChartDataSize": 5000} - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Converts this TspublicRestV2AdminConfigurationUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2AdminConfigurationUpdateRequest [" + "configuration=" + configuration - + "]"; - } - - /** - * Builds a new {@link TspublicRestV2AdminConfigurationUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2AdminConfigurationUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .configuration(getConfiguration()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2AdminConfigurationUpdateRequest}. - */ - public static class Builder { - private String configuration; - - - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Builds a new {@link TspublicRestV2AdminConfigurationUpdateRequest} object using the set - * fields. - * @return {@link TspublicRestV2AdminConfigurationUpdateRequest} - */ - public TspublicRestV2AdminConfigurationUpdateRequest build() { - return new TspublicRestV2AdminConfigurationUpdateRequest(configuration); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2AdminForcelogoutRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2AdminForcelogoutRequest.java deleted file mode 100644 index 29b921338..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2AdminForcelogoutRequest.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2AdminForcelogoutRequest type. - */ -public class TspublicRestV2AdminForcelogoutRequest { - private List user; - - /** - * Default constructor. - */ - public TspublicRestV2AdminForcelogoutRequest() { - } - - /** - * Initialization constructor. - * @param user List of NameAndIdInput value for user. - */ - public TspublicRestV2AdminForcelogoutRequest( - List user) { - this.user = user; - } - - /** - * Getter for User. - * A JSON array of name of users or GUIDs of groups or both. When both are given then id is - * considered. - * @return Returns the List of NameAndIdInput - */ - @JsonGetter("user") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUser() { - return user; - } - - /** - * Setter for User. - * A JSON array of name of users or GUIDs of groups or both. When both are given then id is - * considered. - * @param user Value for List of NameAndIdInput - */ - @JsonSetter("user") - public void setUser(List user) { - this.user = user; - } - - /** - * Converts this TspublicRestV2AdminForcelogoutRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2AdminForcelogoutRequest [" + "user=" + user + "]"; - } - - /** - * Builds a new {@link TspublicRestV2AdminForcelogoutRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2AdminForcelogoutRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .user(getUser()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2AdminForcelogoutRequest}. - */ - public static class Builder { - private List user; - - - - /** - * Setter for user. - * @param user List of NameAndIdInput value for user. - * @return Builder - */ - public Builder user(List user) { - this.user = user; - return this; - } - - /** - * Builds a new {@link TspublicRestV2AdminForcelogoutRequest} object using the set fields. - * @return {@link TspublicRestV2AdminForcelogoutRequest} - */ - public TspublicRestV2AdminForcelogoutRequest build() { - return new TspublicRestV2AdminForcelogoutRequest(user); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2AdminResetpasswordRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2AdminResetpasswordRequest.java deleted file mode 100644 index e1f10f44b..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2AdminResetpasswordRequest.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2AdminResetpasswordRequest type. - */ -public class TspublicRestV2AdminResetpasswordRequest { - private String name; - private String id; - private String newPassword; - - /** - * Default constructor. - */ - public TspublicRestV2AdminResetpasswordRequest() { - } - - /** - * Initialization constructor. - * @param newPassword String value for newPassword. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2AdminResetpasswordRequest( - String newPassword, - String name, - String id) { - this.name = name; - this.id = id; - this.newPassword = newPassword; - } - - /** - * Getter for Name. - * User name of the user account - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * User name of the user account - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the user account to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the user account to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for NewPassword. - * A new password for the user. - * @return Returns the String - */ - @JsonGetter("newPassword") - public String getNewPassword() { - return newPassword; - } - - /** - * Setter for NewPassword. - * A new password for the user. - * @param newPassword Value for String - */ - @JsonSetter("newPassword") - public void setNewPassword(String newPassword) { - this.newPassword = newPassword; - } - - /** - * Converts this TspublicRestV2AdminResetpasswordRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2AdminResetpasswordRequest [" + "newPassword=" + newPassword - + ", name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2AdminResetpasswordRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2AdminResetpasswordRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(newPassword) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2AdminResetpasswordRequest}. - */ - public static class Builder { - private String newPassword; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param newPassword String value for newPassword. - */ - public Builder(String newPassword) { - this.newPassword = newPassword; - } - - /** - * Setter for newPassword. - * @param newPassword String value for newPassword. - * @return Builder - */ - public Builder newPassword(String newPassword) { - this.newPassword = newPassword; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2AdminResetpasswordRequest} object using the set fields. - * @return {@link TspublicRestV2AdminResetpasswordRequest} - */ - public TspublicRestV2AdminResetpasswordRequest build() { - return new TspublicRestV2AdminResetpasswordRequest(newPassword, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2AdminSyncprincipalRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2AdminSyncprincipalRequest.java deleted file mode 100644 index 1d2be6397..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2AdminSyncprincipalRequest.java +++ /dev/null @@ -1,255 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2AdminSyncprincipalRequest type. - */ -public class TspublicRestV2AdminSyncprincipalRequest { - private List principalObject; - private Boolean updateModified; - private Boolean deleteRemoved; - private String newUserPassword; - - /** - * Default constructor. - */ - public TspublicRestV2AdminSyncprincipalRequest() { - updateModified = false; - deleteRemoved = false; - } - - /** - * Initialization constructor. - * @param principalObject List of Object value for principalObject. - * @param updateModified Boolean value for updateModified. - * @param deleteRemoved Boolean value for deleteRemoved. - * @param newUserPassword String value for newUserPassword. - */ - public TspublicRestV2AdminSyncprincipalRequest( - List principalObject, - Boolean updateModified, - Boolean deleteRemoved, - String newUserPassword) { - this.principalObject = principalObject; - this.updateModified = updateModified; - this.deleteRemoved = deleteRemoved; - this.newUserPassword = newUserPassword; - } - - /** - * Getter for PrincipalObject. - * A JSON array of principal objects containing all users and groups present in the external - * system. Example: { "name": "Customer Success", "displayName": "Customer Success", - * "description": "CS", "created": 1568926267025, "modified": 1568926982242, - * "principalTypeEnum": "LOCAL_GROUP", "groupNames": [], "visibility": "DEFAULT" }, { "name": - * "test", "displayName": "test one", "created": 1587573621279, "modified": 1587573621674, - * "mail": "test2@test.com", "principalTypeEnum": "LOCAL_USER", "groupNames": [ "Administrator", - * "All" ], "visibility": "DEFAULT" } You can leave the created and modified dates blank for new - * users. You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in - * the principalTypeEnum keyword. Set visibility to NON_SHARABLE, if you do not want the user to - * be able to share ThoughtSpot objects with other users in this group. - * @return Returns the List of Object - */ - @JsonGetter("principalObject") - public List getPrincipalObject() { - return principalObject; - } - - /** - * Setter for PrincipalObject. - * A JSON array of principal objects containing all users and groups present in the external - * system. Example: { "name": "Customer Success", "displayName": "Customer Success", - * "description": "CS", "created": 1568926267025, "modified": 1568926982242, - * "principalTypeEnum": "LOCAL_GROUP", "groupNames": [], "visibility": "DEFAULT" }, { "name": - * "test", "displayName": "test one", "created": 1587573621279, "modified": 1587573621674, - * "mail": "test2@test.com", "principalTypeEnum": "LOCAL_USER", "groupNames": [ "Administrator", - * "All" ], "visibility": "DEFAULT" } You can leave the created and modified dates blank for new - * users. You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in - * the principalTypeEnum keyword. Set visibility to NON_SHARABLE, if you do not want the user to - * be able to share ThoughtSpot objects with other users in this group. - * @param principalObject Value for List of Object - */ - @JsonSetter("principalObject") - public void setPrincipalObject(List principalObject) { - this.principalObject = principalObject; - } - - /** - * Getter for UpdateModified. - * Specifies whether to apply the changes to users and groups already in the cluster based on - * the principal object list input. - * @return Returns the Boolean - */ - @JsonGetter("updateModified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getUpdateModified() { - return updateModified; - } - - /** - * Setter for UpdateModified. - * Specifies whether to apply the changes to users and groups already in the cluster based on - * the principal object list input. - * @param updateModified Value for Boolean - */ - @JsonSetter("updateModified") - public void setUpdateModified(Boolean updateModified) { - this.updateModified = updateModified; - } - - /** - * Getter for DeleteRemoved. - * Specifies whether to delete the users and groups already in the cluster if not present in the - * principal object list input. - * @return Returns the Boolean - */ - @JsonGetter("deleteRemoved") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getDeleteRemoved() { - return deleteRemoved; - } - - /** - * Setter for DeleteRemoved. - * Specifies whether to delete the users and groups already in the cluster if not present in the - * principal object list input. - * @param deleteRemoved Value for Boolean - */ - @JsonSetter("deleteRemoved") - public void setDeleteRemoved(Boolean deleteRemoved) { - this.deleteRemoved = deleteRemoved; - } - - /** - * Getter for NewUserPassword. - * Assign a password for new users added during the sync operation. All new users added will - * have this password. It is mandatory to provide value for this field if new users are included - * in the input list. - * @return Returns the String - */ - @JsonGetter("newUserPassword") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getNewUserPassword() { - return newUserPassword; - } - - /** - * Setter for NewUserPassword. - * Assign a password for new users added during the sync operation. All new users added will - * have this password. It is mandatory to provide value for this field if new users are included - * in the input list. - * @param newUserPassword Value for String - */ - @JsonSetter("newUserPassword") - public void setNewUserPassword(String newUserPassword) { - this.newUserPassword = newUserPassword; - } - - /** - * Converts this TspublicRestV2AdminSyncprincipalRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2AdminSyncprincipalRequest [" + "principalObject=" + principalObject - + ", updateModified=" + updateModified + ", deleteRemoved=" + deleteRemoved - + ", newUserPassword=" + newUserPassword + "]"; - } - - /** - * Builds a new {@link TspublicRestV2AdminSyncprincipalRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2AdminSyncprincipalRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(principalObject) - .updateModified(getUpdateModified()) - .deleteRemoved(getDeleteRemoved()) - .newUserPassword(getNewUserPassword()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2AdminSyncprincipalRequest}. - */ - public static class Builder { - private List principalObject; - private Boolean updateModified = false; - private Boolean deleteRemoved = false; - private String newUserPassword; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param principalObject List of Object value for principalObject. - */ - public Builder(List principalObject) { - this.principalObject = principalObject; - } - - /** - * Setter for principalObject. - * @param principalObject List of Object value for principalObject. - * @return Builder - */ - public Builder principalObject(List principalObject) { - this.principalObject = principalObject; - return this; - } - - /** - * Setter for updateModified. - * @param updateModified Boolean value for updateModified. - * @return Builder - */ - public Builder updateModified(Boolean updateModified) { - this.updateModified = updateModified; - return this; - } - - /** - * Setter for deleteRemoved. - * @param deleteRemoved Boolean value for deleteRemoved. - * @return Builder - */ - public Builder deleteRemoved(Boolean deleteRemoved) { - this.deleteRemoved = deleteRemoved; - return this; - } - - /** - * Setter for newUserPassword. - * @param newUserPassword String value for newUserPassword. - * @return Builder - */ - public Builder newUserPassword(String newUserPassword) { - this.newUserPassword = newUserPassword; - return this; - } - - /** - * Builds a new {@link TspublicRestV2AdminSyncprincipalRequest} object using the set fields. - * @return {@link TspublicRestV2AdminSyncprincipalRequest} - */ - public TspublicRestV2AdminSyncprincipalRequest build() { - return new TspublicRestV2AdminSyncprincipalRequest(principalObject, updateModified, - deleteRemoved, newUserPassword); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionAddtableRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2ConnectionAddtableRequest.java deleted file mode 100644 index 2a1a90cb8..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionAddtableRequest.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2ConnectionAddtableRequest type. - */ -public class TspublicRestV2ConnectionAddtableRequest { - private String id; - private List table; - - /** - * Default constructor. - */ - public TspublicRestV2ConnectionAddtableRequest() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param table List of AddTableInput value for table. - */ - public TspublicRestV2ConnectionAddtableRequest( - String id, - List table) { - this.id = id; - this.table = table; - } - - /** - * Getter for Id. - * GUID of the connection - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the connection - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Table. - * A JSON array of table details - * @return Returns the List of AddTableInput - */ - @JsonGetter("table") - public List getTable() { - return table; - } - - /** - * Setter for Table. - * A JSON array of table details - * @param table Value for List of AddTableInput - */ - @JsonSetter("table") - public void setTable(List table) { - this.table = table; - } - - /** - * Converts this TspublicRestV2ConnectionAddtableRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2ConnectionAddtableRequest [" + "id=" + id + ", table=" + table + "]"; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionAddtableRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2ConnectionAddtableRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, table); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2ConnectionAddtableRequest}. - */ - public static class Builder { - private String id; - private List table; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param table List of AddTableInput value for table. - */ - public Builder(String id, List table) { - this.id = id; - this.table = table; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for table. - * @param table List of AddTableInput value for table. - * @return Builder - */ - public Builder table(List table) { - this.table = table; - return this; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionAddtableRequest} object using the set fields. - * @return {@link TspublicRestV2ConnectionAddtableRequest} - */ - public TspublicRestV2ConnectionAddtableRequest build() { - return new TspublicRestV2ConnectionAddtableRequest(id, table); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionCreateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2ConnectionCreateRequest.java deleted file mode 100644 index 49e960732..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionCreateRequest.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2ConnectionCreateRequest type. - */ -public class TspublicRestV2ConnectionCreateRequest { - private Type14Enum type; - private String name; - private String description; - private String configuration; - - /** - * Default constructor. - */ - public TspublicRestV2ConnectionCreateRequest() { - } - - /** - * Initialization constructor. - * @param type Type14Enum value for type. - * @param name String value for name. - * @param configuration String value for configuration. - * @param description String value for description. - */ - public TspublicRestV2ConnectionCreateRequest( - Type14Enum type, - String name, - String configuration, - String description) { - this.type = type; - this.name = name; - this.description = description; - this.configuration = configuration; - } - - /** - * Getter for Type. - * Type of the data connection. - * @return Returns the Type14Enum - */ - @JsonGetter("type") - public Type14Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of the data connection. - * @param type Value for Type14Enum - */ - @JsonSetter("type") - public void setType(Type14Enum type) { - this.type = type; - } - - /** - * Getter for Name. - * Name of the connection - * @return Returns the String - */ - @JsonGetter("name") - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the connection - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Description. - * A short description of the connection. - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * A short description of the connection. - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Configuration. - * A JSON object of the connection metadata. The metadata must include configuration attributes - * required to create the connection. - * @return Returns the String - */ - @JsonGetter("configuration") - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * A JSON object of the connection metadata. The metadata must include configuration attributes - * required to create the connection. - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Converts this TspublicRestV2ConnectionCreateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2ConnectionCreateRequest [" + "type=" + type + ", name=" + name - + ", configuration=" + configuration + ", description=" + description + "]"; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionCreateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2ConnectionCreateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(type, name, configuration) - .description(getDescription()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2ConnectionCreateRequest}. - */ - public static class Builder { - private Type14Enum type; - private String name; - private String configuration; - private String description; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param type Type14Enum value for type. - * @param name String value for name. - * @param configuration String value for configuration. - */ - public Builder(Type14Enum type, String name, String configuration) { - this.type = type; - this.name = name; - this.configuration = configuration; - } - - /** - * Setter for type. - * @param type Type14Enum value for type. - * @return Builder - */ - public Builder type(Type14Enum type) { - this.type = type; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionCreateRequest} object using the set fields. - * @return {@link TspublicRestV2ConnectionCreateRequest} - */ - public TspublicRestV2ConnectionCreateRequest build() { - return new TspublicRestV2ConnectionCreateRequest(type, name, configuration, - description); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionRemovetableRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2ConnectionRemovetableRequest.java deleted file mode 100644 index eeb13d587..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionRemovetableRequest.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2ConnectionRemovetableRequest type. - */ -public class TspublicRestV2ConnectionRemovetableRequest { - private String id; - private List table; - - /** - * Default constructor. - */ - public TspublicRestV2ConnectionRemovetableRequest() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param table List of TableInput value for table. - */ - public TspublicRestV2ConnectionRemovetableRequest( - String id, - List table) { - this.id = id; - this.table = table; - } - - /** - * Getter for Id. - * GUID of the connection - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the connection - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Table. - * A JSON array of name or GUIDs of the table or both. At least one input is required. Provide - * either table name or id. When both are given then id is considered - * @return Returns the List of TableInput - */ - @JsonGetter("table") - public List getTable() { - return table; - } - - /** - * Setter for Table. - * A JSON array of name or GUIDs of the table or both. At least one input is required. Provide - * either table name or id. When both are given then id is considered - * @param table Value for List of TableInput - */ - @JsonSetter("table") - public void setTable(List table) { - this.table = table; - } - - /** - * Converts this TspublicRestV2ConnectionRemovetableRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2ConnectionRemovetableRequest [" + "id=" + id + ", table=" + table - + "]"; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionRemovetableRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2ConnectionRemovetableRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, table); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2ConnectionRemovetableRequest}. - */ - public static class Builder { - private String id; - private List table; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param table List of TableInput value for table. - */ - public Builder(String id, List table) { - this.id = id; - this.table = table; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for table. - * @param table List of TableInput value for table. - * @return Builder - */ - public Builder table(List table) { - this.table = table; - return this; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionRemovetableRequest} object using the set - * fields. - * @return {@link TspublicRestV2ConnectionRemovetableRequest} - */ - public TspublicRestV2ConnectionRemovetableRequest build() { - return new TspublicRestV2ConnectionRemovetableRequest(id, table); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2ConnectionSearchRequest.java deleted file mode 100644 index 24070e61e..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionSearchRequest.java +++ /dev/null @@ -1,472 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2ConnectionSearchRequest type. - */ -public class TspublicRestV2ConnectionSearchRequest { - private Integer offset; - private Integer batchNumber; - private Integer batchSize; - private SortBy1Enum sortBy; - private SortOrder1Enum sortOrder; - private Type15Enum type; - private String namePattern; - private List fetchId; - private List skipId; - private List tag; - - /** - * Default constructor. - */ - public TspublicRestV2ConnectionSearchRequest() { - offset = 0; - batchNumber = -1; - batchSize = -1; - sortBy = SortBy1Enum.DEFAULT; - } - - /** - * Initialization constructor. - * @param type Type15Enum value for type. - * @param offset Integer value for offset. - * @param batchNumber Integer value for batchNumber. - * @param batchSize Integer value for batchSize. - * @param sortBy SortBy1Enum value for sortBy. - * @param sortOrder SortOrder1Enum value for sortOrder. - * @param namePattern String value for namePattern. - * @param fetchId List of String value for fetchId. - * @param skipId List of String value for skipId. - * @param tag List of TagNameAndIdInput value for tag. - */ - public TspublicRestV2ConnectionSearchRequest( - Type15Enum type, - Integer offset, - Integer batchNumber, - Integer batchSize, - SortBy1Enum sortBy, - SortOrder1Enum sortOrder, - String namePattern, - List fetchId, - List skipId, - List tag) { - this.offset = offset; - this.batchNumber = batchNumber; - this.batchSize = batchSize; - this.sortBy = sortBy; - this.sortOrder = sortOrder; - this.type = type; - this.namePattern = namePattern; - this.fetchId = fetchId; - this.skipId = skipId; - this.tag = tag; - } - - /** - * Getter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0 - * @return Returns the Integer - */ - @JsonGetter("offset") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOffset() { - return offset; - } - - /** - * Setter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0 - * @param offset Value for Integer - */ - @JsonSetter("offset") - public void setOffset(Integer offset) { - this.offset = offset; - } - - /** - * Getter for BatchNumber. - * An alternate way to set offset for the starting point of the response. Offset field should be - * kept blank to use the value from this field. Offset value will be calculated as (batchNumber - * - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: - * Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then - * offset value will be 10. So, 10 records starting from 11th record will be considered. - * @return Returns the Integer - */ - @JsonGetter("batchNumber") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchNumber() { - return batchNumber; - } - - /** - * Setter for BatchNumber. - * An alternate way to set offset for the starting point of the response. Offset field should be - * kept blank to use the value from this field. Offset value will be calculated as (batchNumber - * - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: - * Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then - * offset value will be 10. So, 10 records starting from 11th record will be considered. - * @param batchNumber Value for Integer - */ - @JsonSetter("batchNumber") - public void setBatchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - } - - /** - * Getter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response. - * @return Returns the Integer - */ - @JsonGetter("batchSize") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchSize() { - return batchSize; - } - - /** - * Setter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response. - * @param batchSize Value for Integer - */ - @JsonSetter("batchSize") - public void setBatchSize(Integer batchSize) { - this.batchSize = batchSize; - } - - /** - * Getter for SortBy. - * Field based on which the re.sponse needs to be ordered. Valid values - * @return Returns the SortBy1Enum - */ - @JsonGetter("sortBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public SortBy1Enum getSortBy() { - return sortBy; - } - - /** - * Setter for SortBy. - * Field based on which the re.sponse needs to be ordered. Valid values - * @param sortBy Value for SortBy1Enum - */ - @JsonSetter("sortBy") - public void setSortBy(SortBy1Enum sortBy) { - this.sortBy = sortBy; - } - - /** - * Getter for SortOrder. - * Order in which sortBy should be applied. Valid values - * @return Returns the SortOrder1Enum - */ - @JsonGetter("sortOrder") - @JsonInclude(JsonInclude.Include.NON_NULL) - public SortOrder1Enum getSortOrder() { - return sortOrder; - } - - /** - * Setter for SortOrder. - * Order in which sortBy should be applied. Valid values - * @param sortOrder Value for SortOrder1Enum - */ - @JsonSetter("sortOrder") - public void setSortOrder(SortOrder1Enum sortOrder) { - this.sortOrder = sortOrder; - } - - /** - * Getter for Type. - * Type of the connect being searched. Valid values: - * SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - * @return Returns the Type15Enum - */ - @JsonGetter("type") - public Type15Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of the connect being searched. Valid values: - * SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - * @param type Value for Type15Enum - */ - @JsonSetter("type") - public void setType(Type15Enum type) { - this.type = type; - } - - /** - * Getter for NamePattern. - * A pattern to match the name of the connection. This parameter supports matching - * case-insensitive strings. For a wildcard match, use %. - * @return Returns the String - */ - @JsonGetter("namePattern") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getNamePattern() { - return namePattern; - } - - /** - * Setter for NamePattern. - * A pattern to match the name of the connection. This parameter supports matching - * case-insensitive strings. For a wildcard match, use %. - * @param namePattern Value for String - */ - @JsonSetter("namePattern") - public void setNamePattern(String namePattern) { - this.namePattern = namePattern; - } - - /** - * Getter for FetchId. - * A JSON array containing the GUIDs of the connections that you want to fetch. - * @return Returns the List of String - */ - @JsonGetter("fetchId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getFetchId() { - return fetchId; - } - - /** - * Setter for FetchId. - * A JSON array containing the GUIDs of the connections that you want to fetch. - * @param fetchId Value for List of String - */ - @JsonSetter("fetchId") - public void setFetchId(List fetchId) { - this.fetchId = fetchId; - } - - /** - * Getter for SkipId. - * A JSON array containing the GUIDs of the connections that you want to skip. - * @return Returns the List of String - */ - @JsonGetter("skipId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getSkipId() { - return skipId; - } - - /** - * Setter for SkipId. - * A JSON array containing the GUIDs of the connections that you want to skip. - * @param skipId Value for List of String - */ - @JsonSetter("skipId") - public void setSkipId(List skipId) { - this.skipId = skipId; - } - - /** - * Getter for Tag. - * A JSON array of name or GUID of tags or both. When both are given then id is considered - * @return Returns the List of TagNameAndIdInput - */ - @JsonGetter("tag") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTag() { - return tag; - } - - /** - * Setter for Tag. - * A JSON array of name or GUID of tags or both. When both are given then id is considered - * @param tag Value for List of TagNameAndIdInput - */ - @JsonSetter("tag") - public void setTag(List tag) { - this.tag = tag; - } - - /** - * Converts this TspublicRestV2ConnectionSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2ConnectionSearchRequest [" + "type=" + type + ", offset=" + offset - + ", batchNumber=" + batchNumber + ", batchSize=" + batchSize + ", sortBy=" + sortBy - + ", sortOrder=" + sortOrder + ", namePattern=" + namePattern + ", fetchId=" - + fetchId + ", skipId=" + skipId + ", tag=" + tag + "]"; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2ConnectionSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(type) - .offset(getOffset()) - .batchNumber(getBatchNumber()) - .batchSize(getBatchSize()) - .sortBy(getSortBy()) - .sortOrder(getSortOrder()) - .namePattern(getNamePattern()) - .fetchId(getFetchId()) - .skipId(getSkipId()) - .tag(getTag()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2ConnectionSearchRequest}. - */ - public static class Builder { - private Type15Enum type; - private Integer offset = 0; - private Integer batchNumber = -1; - private Integer batchSize = -1; - private SortBy1Enum sortBy = SortBy1Enum.DEFAULT; - private SortOrder1Enum sortOrder; - private String namePattern; - private List fetchId; - private List skipId; - private List tag; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param type Type15Enum value for type. - */ - public Builder(Type15Enum type) { - this.type = type; - } - - /** - * Setter for type. - * @param type Type15Enum value for type. - * @return Builder - */ - public Builder type(Type15Enum type) { - this.type = type; - return this; - } - - /** - * Setter for offset. - * @param offset Integer value for offset. - * @return Builder - */ - public Builder offset(Integer offset) { - this.offset = offset; - return this; - } - - /** - * Setter for batchNumber. - * @param batchNumber Integer value for batchNumber. - * @return Builder - */ - public Builder batchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - return this; - } - - /** - * Setter for batchSize. - * @param batchSize Integer value for batchSize. - * @return Builder - */ - public Builder batchSize(Integer batchSize) { - this.batchSize = batchSize; - return this; - } - - /** - * Setter for sortBy. - * @param sortBy SortBy1Enum value for sortBy. - * @return Builder - */ - public Builder sortBy(SortBy1Enum sortBy) { - this.sortBy = sortBy; - return this; - } - - /** - * Setter for sortOrder. - * @param sortOrder SortOrder1Enum value for sortOrder. - * @return Builder - */ - public Builder sortOrder(SortOrder1Enum sortOrder) { - this.sortOrder = sortOrder; - return this; - } - - /** - * Setter for namePattern. - * @param namePattern String value for namePattern. - * @return Builder - */ - public Builder namePattern(String namePattern) { - this.namePattern = namePattern; - return this; - } - - /** - * Setter for fetchId. - * @param fetchId List of String value for fetchId. - * @return Builder - */ - public Builder fetchId(List fetchId) { - this.fetchId = fetchId; - return this; - } - - /** - * Setter for skipId. - * @param skipId List of String value for skipId. - * @return Builder - */ - public Builder skipId(List skipId) { - this.skipId = skipId; - return this; - } - - /** - * Setter for tag. - * @param tag List of TagNameAndIdInput value for tag. - * @return Builder - */ - public Builder tag(List tag) { - this.tag = tag; - return this; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionSearchRequest} object using the set fields. - * @return {@link TspublicRestV2ConnectionSearchRequest} - */ - public TspublicRestV2ConnectionSearchRequest build() { - return new TspublicRestV2ConnectionSearchRequest(type, offset, batchNumber, batchSize, - sortBy, sortOrder, namePattern, fetchId, skipId, tag); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionTableRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2ConnectionTableRequest.java deleted file mode 100644 index 9bf1bec91..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionTableRequest.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2ConnectionTableRequest type. - */ -public class TspublicRestV2ConnectionTableRequest { - private String id; - private String configuration; - private Boolean includeColumn; - - /** - * Default constructor. - */ - public TspublicRestV2ConnectionTableRequest() { - includeColumn = true; - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param configuration String value for configuration. - * @param includeColumn Boolean value for includeColumn. - */ - public TspublicRestV2ConnectionTableRequest( - String id, - String configuration, - Boolean includeColumn) { - this.id = id; - this.configuration = configuration; - this.includeColumn = includeColumn; - } - - /** - * Getter for Id. - * The GUID of the connection - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the connection - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Configuration. - * A JSON object of the connection metadata. If this field is left empty, then the configuration - * saved in the connection is considered. To get the tables based on a different configuration, - * include required attributes in the connection configuration JSON. Example: Get tables from - * Snowflake with a different user account than specified in the connection: - * {"user":"test_user","password":"test_pwd","role":"test_role"} Get tables from Redshift for - * different database than specified in the connection: {"database":"test_db"} - * @return Returns the String - */ - @JsonGetter("configuration") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * A JSON object of the connection metadata. If this field is left empty, then the configuration - * saved in the connection is considered. To get the tables based on a different configuration, - * include required attributes in the connection configuration JSON. Example: Get tables from - * Snowflake with a different user account than specified in the connection: - * {"user":"test_user","password":"test_pwd","role":"test_role"} Get tables from Redshift for - * different database than specified in the connection: {"database":"test_db"} - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Getter for IncludeColumn. - * When set to true, the response will include column level details as well - * @return Returns the Boolean - */ - @JsonGetter("includeColumn") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludeColumn() { - return includeColumn; - } - - /** - * Setter for IncludeColumn. - * When set to true, the response will include column level details as well - * @param includeColumn Value for Boolean - */ - @JsonSetter("includeColumn") - public void setIncludeColumn(Boolean includeColumn) { - this.includeColumn = includeColumn; - } - - /** - * Converts this TspublicRestV2ConnectionTableRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2ConnectionTableRequest [" + "id=" + id + ", configuration=" - + configuration + ", includeColumn=" + includeColumn + "]"; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionTableRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2ConnectionTableRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id) - .configuration(getConfiguration()) - .includeColumn(getIncludeColumn()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2ConnectionTableRequest}. - */ - public static class Builder { - private String id; - private String configuration; - private Boolean includeColumn = true; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - */ - public Builder(String id) { - this.id = id; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Setter for includeColumn. - * @param includeColumn Boolean value for includeColumn. - * @return Builder - */ - public Builder includeColumn(Boolean includeColumn) { - this.includeColumn = includeColumn; - return this; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionTableRequest} object using the set fields. - * @return {@link TspublicRestV2ConnectionTableRequest} - */ - public TspublicRestV2ConnectionTableRequest build() { - return new TspublicRestV2ConnectionTableRequest(id, configuration, includeColumn); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionTablecoloumnRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2ConnectionTablecoloumnRequest.java deleted file mode 100644 index d87bb35f2..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionTablecoloumnRequest.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2ConnectionTablecoloumnRequest type. - */ -public class TspublicRestV2ConnectionTablecoloumnRequest { - private String id; - private String configuration; - private List table; - - /** - * Default constructor. - */ - public TspublicRestV2ConnectionTablecoloumnRequest() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param table List of ConnectionTableColumnsInput value for table. - * @param configuration String value for configuration. - */ - public TspublicRestV2ConnectionTablecoloumnRequest( - String id, - List table, - String configuration) { - this.id = id; - this.configuration = configuration; - this.table = table; - } - - /** - * Getter for Id. - * The GUID of the connection - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the connection - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Configuration. - * A JSON object of the connection metadata. If this field is left empty, then the configuration - * saved in the connection is considered. To get the tables based on a different configuration, - * include required attributes in the connection configuration JSON. Example: Get tables from - * Snowflake with a different user account than specified in the connection: - * {"user":"test_user","password":"test_pwd","role":"test_role"} Get tables from Redshift for - * different database than specified in the connection: {"database":"test_db"} - * @return Returns the String - */ - @JsonGetter("configuration") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * A JSON object of the connection metadata. If this field is left empty, then the configuration - * saved in the connection is considered. To get the tables based on a different configuration, - * include required attributes in the connection configuration JSON. Example: Get tables from - * Snowflake with a different user account than specified in the connection: - * {"user":"test_user","password":"test_pwd","role":"test_role"} Get tables from Redshift for - * different database than specified in the connection: {"database":"test_db"} - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Getter for Table. - * List of table details - * @return Returns the List of ConnectionTableColumnsInput - */ - @JsonGetter("table") - public List getTable() { - return table; - } - - /** - * Setter for Table. - * List of table details - * @param table Value for List of ConnectionTableColumnsInput - */ - @JsonSetter("table") - public void setTable(List table) { - this.table = table; - } - - /** - * Converts this TspublicRestV2ConnectionTablecoloumnRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2ConnectionTablecoloumnRequest [" + "id=" + id + ", table=" + table - + ", configuration=" + configuration + "]"; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionTablecoloumnRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2ConnectionTablecoloumnRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, table) - .configuration(getConfiguration()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2ConnectionTablecoloumnRequest}. - */ - public static class Builder { - private String id; - private List table; - private String configuration; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param table List of ConnectionTableColumnsInput value for table. - */ - public Builder(String id, List table) { - this.id = id; - this.table = table; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for table. - * @param table List of ConnectionTableColumnsInput value for table. - * @return Builder - */ - public Builder table(List table) { - this.table = table; - return this; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionTablecoloumnRequest} object using the set - * fields. - * @return {@link TspublicRestV2ConnectionTablecoloumnRequest} - */ - public TspublicRestV2ConnectionTablecoloumnRequest build() { - return new TspublicRestV2ConnectionTablecoloumnRequest(id, table, configuration); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2ConnectionUpdateRequest.java deleted file mode 100644 index 2bac8c528..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2ConnectionUpdateRequest.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2ConnectionUpdateRequest type. - */ -public class TspublicRestV2ConnectionUpdateRequest { - private String id; - private String name; - private String description; - private String configuration; - - /** - * Default constructor. - */ - public TspublicRestV2ConnectionUpdateRequest() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param configuration String value for configuration. - * @param name String value for name. - * @param description String value for description. - */ - public TspublicRestV2ConnectionUpdateRequest( - String id, - String configuration, - String name, - String description) { - this.id = id; - this.name = name; - this.description = description; - this.configuration = configuration; - } - - /** - * Getter for Id. - * GUID of the connection - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the connection - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Name. - * The text to update the name of the connection. - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * The text to update the name of the connection. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Description. - * The text to update the description of the connection. - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * The text to update the description of the connection. - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Configuration. - * A JSON object of the connection metadata. Include all the configuration attributes with - * original value along with the changes required to any attribute. - * @return Returns the String - */ - @JsonGetter("configuration") - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * A JSON object of the connection metadata. Include all the configuration attributes with - * original value along with the changes required to any attribute. - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Converts this TspublicRestV2ConnectionUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2ConnectionUpdateRequest [" + "id=" + id + ", configuration=" - + configuration + ", name=" + name + ", description=" + description + "]"; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2ConnectionUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, configuration) - .name(getName()) - .description(getDescription()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2ConnectionUpdateRequest}. - */ - public static class Builder { - private String id; - private String configuration; - private String name; - private String description; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param configuration String value for configuration. - */ - public Builder(String id, String configuration) { - this.id = id; - this.configuration = configuration; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Builds a new {@link TspublicRestV2ConnectionUpdateRequest} object using the set fields. - * @return {@link TspublicRestV2ConnectionUpdateRequest} - */ - public TspublicRestV2ConnectionUpdateRequest build() { - return new TspublicRestV2ConnectionUpdateRequest(id, configuration, name, description); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionAssociationUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2CustomactionAssociationUpdateRequest.java deleted file mode 100644 index 044af9c91..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionAssociationUpdateRequest.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2CustomactionAssociationUpdateRequest type. - */ -public class TspublicRestV2CustomactionAssociationUpdateRequest { - private String id; - private String association; - - /** - * Default constructor. - */ - public TspublicRestV2CustomactionAssociationUpdateRequest() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param association String value for association. - */ - public TspublicRestV2CustomactionAssociationUpdateRequest( - String id, - String association) { - this.id = id; - this.association = association; - } - - /** - * Getter for Id. - * GUID of the custom action - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the custom action - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Association. - * A JSON map of the attributes with association of the action to ThoughtSpot object ID Example: - * {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet - * action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ - * ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @return Returns the String - */ - @JsonGetter("association") - public String getAssociation() { - return association; - } - - /** - * Setter for Association. - * A JSON map of the attributes with association of the action to ThoughtSpot object ID Example: - * {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet - * action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ - * ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @param association Value for String - */ - @JsonSetter("association") - public void setAssociation(String association) { - this.association = association; - } - - /** - * Converts this TspublicRestV2CustomactionAssociationUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2CustomactionAssociationUpdateRequest [" + "id=" + id - + ", association=" + association + "]"; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionAssociationUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2CustomactionAssociationUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, association); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2CustomactionAssociationUpdateRequest}. - */ - public static class Builder { - private String id; - private String association; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param association String value for association. - */ - public Builder(String id, String association) { - this.id = id; - this.association = association; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for association. - * @param association String value for association. - * @return Builder - */ - public Builder association(String association) { - this.association = association; - return this; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionAssociationUpdateRequest} object using the - * set fields. - * @return {@link TspublicRestV2CustomactionAssociationUpdateRequest} - */ - public TspublicRestV2CustomactionAssociationUpdateRequest build() { - return new TspublicRestV2CustomactionAssociationUpdateRequest(id, association); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionCreateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2CustomactionCreateRequest.java deleted file mode 100644 index 8e601e8c5..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionCreateRequest.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2CustomactionCreateRequest type. - */ -public class TspublicRestV2CustomactionCreateRequest { - private String configuration; - - /** - * Default constructor. - */ - public TspublicRestV2CustomactionCreateRequest() { - } - - /** - * Initialization constructor. - * @param configuration String value for configuration. - */ - public TspublicRestV2CustomactionCreateRequest( - String configuration) { - this.configuration = configuration; - } - - /** - * Getter for Configuration. - * A JSON object with the key-value pair of configuration attributes Example: - * {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg - * test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com - * ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @return Returns the String - */ - @JsonGetter("configuration") - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * A JSON object with the key-value pair of configuration attributes Example: - * {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg - * test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com - * ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Converts this TspublicRestV2CustomactionCreateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2CustomactionCreateRequest [" + "configuration=" + configuration + "]"; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionCreateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2CustomactionCreateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(configuration); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2CustomactionCreateRequest}. - */ - public static class Builder { - private String configuration; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param configuration String value for configuration. - */ - public Builder(String configuration) { - this.configuration = configuration; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionCreateRequest} object using the set fields. - * @return {@link TspublicRestV2CustomactionCreateRequest} - */ - public TspublicRestV2CustomactionCreateRequest build() { - return new TspublicRestV2CustomactionCreateRequest(configuration); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2CustomactionSearchRequest.java deleted file mode 100644 index f6cc933af..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionSearchRequest.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2CustomactionSearchRequest type. - */ -public class TspublicRestV2CustomactionSearchRequest { - private List tag; - - /** - * Default constructor. - */ - public TspublicRestV2CustomactionSearchRequest() { - } - - /** - * Initialization constructor. - * @param tag List of String value for tag. - */ - public TspublicRestV2CustomactionSearchRequest( - List tag) { - this.tag = tag; - } - - /** - * Getter for Tag. - * A JSON array of tag GUIDs. If tags are applied to worksheets, search answers, or Liveboard - * visualizations, and custom actions are associated to these objects, you can use this - * parameter to filter the custom action data by tags. - * @return Returns the List of String - */ - @JsonGetter("tag") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTag() { - return tag; - } - - /** - * Setter for Tag. - * A JSON array of tag GUIDs. If tags are applied to worksheets, search answers, or Liveboard - * visualizations, and custom actions are associated to these objects, you can use this - * parameter to filter the custom action data by tags. - * @param tag Value for List of String - */ - @JsonSetter("tag") - public void setTag(List tag) { - this.tag = tag; - } - - /** - * Converts this TspublicRestV2CustomactionSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2CustomactionSearchRequest [" + "tag=" + tag + "]"; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2CustomactionSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .tag(getTag()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2CustomactionSearchRequest}. - */ - public static class Builder { - private List tag; - - - - /** - * Setter for tag. - * @param tag List of String value for tag. - * @return Builder - */ - public Builder tag(List tag) { - this.tag = tag; - return this; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionSearchRequest} object using the set fields. - * @return {@link TspublicRestV2CustomactionSearchRequest} - */ - public TspublicRestV2CustomactionSearchRequest build() { - return new TspublicRestV2CustomactionSearchRequest(tag); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2CustomactionUpdateRequest.java deleted file mode 100644 index c119f7c61..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2CustomactionUpdateRequest.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2CustomactionUpdateRequest type. - */ -public class TspublicRestV2CustomactionUpdateRequest { - private String id; - private String configuration; - - /** - * Default constructor. - */ - public TspublicRestV2CustomactionUpdateRequest() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param configuration String value for configuration. - */ - public TspublicRestV2CustomactionUpdateRequest( - String id, - String configuration) { - this.id = id; - this.configuration = configuration; - } - - /** - * Getter for Id. - * GUID of the custom action - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the custom action - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Configuration. - * A JSON object with the key-value pair of configuration attributes Example: - * {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg - * test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com - * ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @return Returns the String - */ - @JsonGetter("configuration") - public String getConfiguration() { - return configuration; - } - - /** - * Setter for Configuration. - * A JSON object with the key-value pair of configuration attributes Example: - * {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg - * test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com - * ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - * @param configuration Value for String - */ - @JsonSetter("configuration") - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - /** - * Converts this TspublicRestV2CustomactionUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2CustomactionUpdateRequest [" + "id=" + id + ", configuration=" - + configuration + "]"; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2CustomactionUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, configuration); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2CustomactionUpdateRequest}. - */ - public static class Builder { - private String id; - private String configuration; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param configuration String value for configuration. - */ - public Builder(String id, String configuration) { - this.id = id; - this.configuration = configuration; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for configuration. - * @param configuration String value for configuration. - * @return Builder - */ - public Builder configuration(String configuration) { - this.configuration = configuration; - return this; - } - - /** - * Builds a new {@link TspublicRestV2CustomactionUpdateRequest} object using the set fields. - * @return {@link TspublicRestV2CustomactionUpdateRequest} - */ - public TspublicRestV2CustomactionUpdateRequest build() { - return new TspublicRestV2CustomactionUpdateRequest(id, configuration); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2DataAnswerRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2DataAnswerRequest.java deleted file mode 100644 index 89c3e96f0..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2DataAnswerRequest.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2DataAnswerRequest type. - */ -public class TspublicRestV2DataAnswerRequest { - private Integer offset; - private Integer batchNumber; - private Integer batchSize; - private String id; - private FormatTypeEnum formatType; - - /** - * Default constructor. - */ - public TspublicRestV2DataAnswerRequest() { - offset = 0; - batchNumber = -1; - batchSize = -1; - formatType = FormatTypeEnum.COMPACT; - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param offset Integer value for offset. - * @param batchNumber Integer value for batchNumber. - * @param batchSize Integer value for batchSize. - * @param formatType FormatTypeEnum value for formatType. - */ - public TspublicRestV2DataAnswerRequest( - String id, - Integer offset, - Integer batchNumber, - Integer batchSize, - FormatTypeEnum formatType) { - this.offset = offset; - this.batchNumber = batchNumber; - this.batchSize = batchSize; - this.id = id; - this.formatType = formatType; - } - - /** - * Getter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. - * @return Returns the Integer - */ - @JsonGetter("offset") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOffset() { - return offset; - } - - /** - * Setter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. - * @param offset Value for Integer - */ - @JsonSetter("offset") - public void setOffset(Integer offset) { - this.offset = offset; - } - - /** - * Getter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @return Returns the Integer - */ - @JsonGetter("batchNumber") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchNumber() { - return batchNumber; - } - - /** - * Setter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @param batchNumber Value for Integer - */ - @JsonSetter("batchNumber") - public void setBatchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - } - - /** - * Getter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response - * @return Returns the Integer - */ - @JsonGetter("batchSize") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchSize() { - return batchSize; - } - - /** - * Setter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response - * @param batchSize Value for Integer - */ - @JsonSetter("batchSize") - public void setBatchSize(Integer batchSize) { - this.batchSize = batchSize; - } - - /** - * Getter for Id. - * The GUID of the Answer - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the Answer - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for FormatType. - * The format of the data in the response. FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - * @return Returns the FormatTypeEnum - */ - @JsonGetter("formatType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public FormatTypeEnum getFormatType() { - return formatType; - } - - /** - * Setter for FormatType. - * The format of the data in the response. FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - * @param formatType Value for FormatTypeEnum - */ - @JsonSetter("formatType") - public void setFormatType(FormatTypeEnum formatType) { - this.formatType = formatType; - } - - /** - * Converts this TspublicRestV2DataAnswerRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2DataAnswerRequest [" + "id=" + id + ", offset=" + offset - + ", batchNumber=" + batchNumber + ", batchSize=" + batchSize + ", formatType=" - + formatType + "]"; - } - - /** - * Builds a new {@link TspublicRestV2DataAnswerRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2DataAnswerRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id) - .offset(getOffset()) - .batchNumber(getBatchNumber()) - .batchSize(getBatchSize()) - .formatType(getFormatType()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2DataAnswerRequest}. - */ - public static class Builder { - private String id; - private Integer offset = 0; - private Integer batchNumber = -1; - private Integer batchSize = -1; - private FormatTypeEnum formatType = FormatTypeEnum.COMPACT; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - */ - public Builder(String id) { - this.id = id; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for offset. - * @param offset Integer value for offset. - * @return Builder - */ - public Builder offset(Integer offset) { - this.offset = offset; - return this; - } - - /** - * Setter for batchNumber. - * @param batchNumber Integer value for batchNumber. - * @return Builder - */ - public Builder batchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - return this; - } - - /** - * Setter for batchSize. - * @param batchSize Integer value for batchSize. - * @return Builder - */ - public Builder batchSize(Integer batchSize) { - this.batchSize = batchSize; - return this; - } - - /** - * Setter for formatType. - * @param formatType FormatTypeEnum value for formatType. - * @return Builder - */ - public Builder formatType(FormatTypeEnum formatType) { - this.formatType = formatType; - return this; - } - - /** - * Builds a new {@link TspublicRestV2DataAnswerRequest} object using the set fields. - * @return {@link TspublicRestV2DataAnswerRequest} - */ - public TspublicRestV2DataAnswerRequest build() { - return new TspublicRestV2DataAnswerRequest(id, offset, batchNumber, batchSize, - formatType); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2DataLiveboardRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2DataLiveboardRequest.java deleted file mode 100644 index ce8c79ef1..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2DataLiveboardRequest.java +++ /dev/null @@ -1,443 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2DataLiveboardRequest type. - */ -public class TspublicRestV2DataLiveboardRequest { - private Integer offset; - private Integer batchNumber; - private Integer batchSize; - private String id; - private String transientContent; - private List vizId; - private String runtimeFilter; - private String runtimeSort; - private FormatTypeEnum formatType; - - /** - * Default constructor. - */ - public TspublicRestV2DataLiveboardRequest() { - offset = 0; - batchNumber = -1; - batchSize = -1; - formatType = FormatTypeEnum.COMPACT; - } - - /** - * Initialization constructor. - * @param offset Integer value for offset. - * @param batchNumber Integer value for batchNumber. - * @param batchSize Integer value for batchSize. - * @param id String value for id. - * @param transientContent String value for transientContent. - * @param vizId List of String value for vizId. - * @param runtimeFilter String value for runtimeFilter. - * @param runtimeSort String value for runtimeSort. - * @param formatType FormatTypeEnum value for formatType. - */ - public TspublicRestV2DataLiveboardRequest( - Integer offset, - Integer batchNumber, - Integer batchSize, - String id, - String transientContent, - List vizId, - String runtimeFilter, - String runtimeSort, - FormatTypeEnum formatType) { - this.offset = offset; - this.batchNumber = batchNumber; - this.batchSize = batchSize; - this.id = id; - this.transientContent = transientContent; - this.vizId = vizId; - this.runtimeFilter = runtimeFilter; - this.runtimeSort = runtimeSort; - this.formatType = formatType; - } - - /** - * Getter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. - * @return Returns the Integer - */ - @JsonGetter("offset") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOffset() { - return offset; - } - - /** - * Setter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. - * @param offset Value for Integer - */ - @JsonSetter("offset") - public void setOffset(Integer offset) { - this.offset = offset; - } - - /** - * Getter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @return Returns the Integer - */ - @JsonGetter("batchNumber") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchNumber() { - return batchNumber; - } - - /** - * Setter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @param batchNumber Value for Integer - */ - @JsonSetter("batchNumber") - public void setBatchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - } - - /** - * Getter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response - * @return Returns the Integer - */ - @JsonGetter("batchSize") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchSize() { - return batchSize; - } - - /** - * Setter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response - * @param batchSize Value for Integer - */ - @JsonSetter("batchSize") - public void setBatchSize(Integer batchSize) { - this.batchSize = batchSize; - } - - /** - * Getter for Id. - * The GUID of the Liveboard - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the Liveboard - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for TransientContent. - * If you have embedded ThoughtSpot in your host application, and you want to download Liveboard - * data with unsaved changes then, pass the transient content from the browser fetch request, - * using the getExportRequestForCurrentPinboard method. For more information, see - * https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If - * value for this field is provided, then id will not be considered. - * @return Returns the String - */ - @JsonGetter("transientContent") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTransientContent() { - return transientContent; - } - - /** - * Setter for TransientContent. - * If you have embedded ThoughtSpot in your host application, and you want to download Liveboard - * data with unsaved changes then, pass the transient content from the browser fetch request, - * using the getExportRequestForCurrentPinboard method. For more information, see - * https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If - * value for this field is provided, then id will not be considered. - * @param transientContent Value for String - */ - @JsonSetter("transientContent") - public void setTransientContent(String transientContent) { - this.transientContent = transientContent; - } - - /** - * Getter for VizId. - * A JSON array of GUIDs of the visualizations in the Liveboard. - * @return Returns the List of String - */ - @JsonGetter("vizId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getVizId() { - return vizId; - } - - /** - * Setter for VizId. - * A JSON array of GUIDs of the visualizations in the Liveboard. - * @param vizId Value for List of String - */ - @JsonSetter("vizId") - public void setVizId(List vizId) { - this.vizId = vizId; - } - - /** - * Getter for RuntimeFilter. - * JSON object which contains filter condition to filter the data at the time of data retrieval. - * Example: - * {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]} - * For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters - * @return Returns the String - */ - @JsonGetter("runtimeFilter") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getRuntimeFilter() { - return runtimeFilter; - } - - /** - * Setter for RuntimeFilter. - * JSON object which contains filter condition to filter the data at the time of data retrieval. - * Example: - * {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]} - * For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters - * @param runtimeFilter Value for String - */ - @JsonSetter("runtimeFilter") - public void setRuntimeFilter(String runtimeFilter) { - this.runtimeFilter = runtimeFilter; - } - - /** - * Getter for RuntimeSort. - * JSON object which provides columns to sort the data at the time of data retrieval. Example: - * {"sortCol1":"region","asc1":true,"sortCol2":"date"} For more information, see - * https://developers.thoughtspot.com/docs/?pageid=runtime-filters. - * @return Returns the String - */ - @JsonGetter("runtimeSort") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getRuntimeSort() { - return runtimeSort; - } - - /** - * Setter for RuntimeSort. - * JSON object which provides columns to sort the data at the time of data retrieval. Example: - * {"sortCol1":"region","asc1":true,"sortCol2":"date"} For more information, see - * https://developers.thoughtspot.com/docs/?pageid=runtime-filters. - * @param runtimeSort Value for String - */ - @JsonSetter("runtimeSort") - public void setRuntimeSort(String runtimeSort) { - this.runtimeSort = runtimeSort; - } - - /** - * Getter for FormatType. - * The format of the data in the response. FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - * @return Returns the FormatTypeEnum - */ - @JsonGetter("formatType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public FormatTypeEnum getFormatType() { - return formatType; - } - - /** - * Setter for FormatType. - * The format of the data in the response. FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - * @param formatType Value for FormatTypeEnum - */ - @JsonSetter("formatType") - public void setFormatType(FormatTypeEnum formatType) { - this.formatType = formatType; - } - - /** - * Converts this TspublicRestV2DataLiveboardRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2DataLiveboardRequest [" + "offset=" + offset + ", batchNumber=" - + batchNumber + ", batchSize=" + batchSize + ", id=" + id + ", transientContent=" - + transientContent + ", vizId=" + vizId + ", runtimeFilter=" + runtimeFilter - + ", runtimeSort=" + runtimeSort + ", formatType=" + formatType + "]"; - } - - /** - * Builds a new {@link TspublicRestV2DataLiveboardRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2DataLiveboardRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .offset(getOffset()) - .batchNumber(getBatchNumber()) - .batchSize(getBatchSize()) - .id(getId()) - .transientContent(getTransientContent()) - .vizId(getVizId()) - .runtimeFilter(getRuntimeFilter()) - .runtimeSort(getRuntimeSort()) - .formatType(getFormatType()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2DataLiveboardRequest}. - */ - public static class Builder { - private Integer offset = 0; - private Integer batchNumber = -1; - private Integer batchSize = -1; - private String id; - private String transientContent; - private List vizId; - private String runtimeFilter; - private String runtimeSort; - private FormatTypeEnum formatType = FormatTypeEnum.COMPACT; - - - - /** - * Setter for offset. - * @param offset Integer value for offset. - * @return Builder - */ - public Builder offset(Integer offset) { - this.offset = offset; - return this; - } - - /** - * Setter for batchNumber. - * @param batchNumber Integer value for batchNumber. - * @return Builder - */ - public Builder batchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - return this; - } - - /** - * Setter for batchSize. - * @param batchSize Integer value for batchSize. - * @return Builder - */ - public Builder batchSize(Integer batchSize) { - this.batchSize = batchSize; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for transientContent. - * @param transientContent String value for transientContent. - * @return Builder - */ - public Builder transientContent(String transientContent) { - this.transientContent = transientContent; - return this; - } - - /** - * Setter for vizId. - * @param vizId List of String value for vizId. - * @return Builder - */ - public Builder vizId(List vizId) { - this.vizId = vizId; - return this; - } - - /** - * Setter for runtimeFilter. - * @param runtimeFilter String value for runtimeFilter. - * @return Builder - */ - public Builder runtimeFilter(String runtimeFilter) { - this.runtimeFilter = runtimeFilter; - return this; - } - - /** - * Setter for runtimeSort. - * @param runtimeSort String value for runtimeSort. - * @return Builder - */ - public Builder runtimeSort(String runtimeSort) { - this.runtimeSort = runtimeSort; - return this; - } - - /** - * Setter for formatType. - * @param formatType FormatTypeEnum value for formatType. - * @return Builder - */ - public Builder formatType(FormatTypeEnum formatType) { - this.formatType = formatType; - return this; - } - - /** - * Builds a new {@link TspublicRestV2DataLiveboardRequest} object using the set fields. - * @return {@link TspublicRestV2DataLiveboardRequest} - */ - public TspublicRestV2DataLiveboardRequest build() { - return new TspublicRestV2DataLiveboardRequest(offset, batchNumber, batchSize, id, - transientContent, vizId, runtimeFilter, runtimeSort, formatType); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2DataSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2DataSearchRequest.java deleted file mode 100644 index 892beb39a..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2DataSearchRequest.java +++ /dev/null @@ -1,322 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2DataSearchRequest type. - */ -public class TspublicRestV2DataSearchRequest { - private Integer offset; - private Integer batchNumber; - private Integer batchSize; - private String queryString; - private String dataObjectId; - private FormatTypeEnum formatType; - - /** - * Default constructor. - */ - public TspublicRestV2DataSearchRequest() { - offset = -1; - batchNumber = -1; - batchSize = -1; - formatType = FormatTypeEnum.COMPACT; - } - - /** - * Initialization constructor. - * @param queryString String value for queryString. - * @param dataObjectId String value for dataObjectId. - * @param offset Integer value for offset. - * @param batchNumber Integer value for batchNumber. - * @param batchSize Integer value for batchSize. - * @param formatType FormatTypeEnum value for formatType. - */ - public TspublicRestV2DataSearchRequest( - String queryString, - String dataObjectId, - Integer offset, - Integer batchNumber, - Integer batchSize, - FormatTypeEnum formatType) { - this.offset = offset; - this.batchNumber = batchNumber; - this.batchSize = batchSize; - this.queryString = queryString; - this.dataObjectId = dataObjectId; - this.formatType = formatType; - } - - /** - * Getter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. - * @return Returns the Integer - */ - @JsonGetter("offset") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOffset() { - return offset; - } - - /** - * Setter for Offset. - * The offset point, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. - * @param offset Value for Integer - */ - @JsonSetter("offset") - public void setOffset(Integer offset) { - this.offset = offset; - } - - /** - * Getter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @return Returns the Integer - */ - @JsonGetter("batchNumber") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchNumber() { - return batchNumber; - } - - /** - * Setter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @param batchNumber Value for Integer - */ - @JsonSetter("batchNumber") - public void setBatchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - } - - /** - * Getter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response - * @return Returns the Integer - */ - @JsonGetter("batchSize") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchSize() { - return batchSize; - } - - /** - * Setter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is - * included in the response - * @param batchSize Value for Integer - */ - @JsonSetter("batchSize") - public void setBatchSize(Integer batchSize) { - this.batchSize = batchSize; - } - - /** - * Getter for QueryString. - * The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' - * @return Returns the String - */ - @JsonGetter("queryString") - public String getQueryString() { - return queryString; - } - - /** - * Setter for QueryString. - * The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' - * @param queryString Value for String - */ - @JsonSetter("queryString") - public void setQueryString(String queryString) { - this.queryString = queryString; - } - - /** - * Getter for DataObjectId. - * The GUID of the data object, either a worksheet, a view, or a table. - * @return Returns the String - */ - @JsonGetter("dataObjectId") - public String getDataObjectId() { - return dataObjectId; - } - - /** - * Setter for DataObjectId. - * The GUID of the data object, either a worksheet, a view, or a table. - * @param dataObjectId Value for String - */ - @JsonSetter("dataObjectId") - public void setDataObjectId(String dataObjectId) { - this.dataObjectId = dataObjectId; - } - - /** - * Getter for FormatType. - * The format of the data in the response. FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - * @return Returns the FormatTypeEnum - */ - @JsonGetter("formatType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public FormatTypeEnum getFormatType() { - return formatType; - } - - /** - * Setter for FormatType. - * The format of the data in the response. FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - * @param formatType Value for FormatTypeEnum - */ - @JsonSetter("formatType") - public void setFormatType(FormatTypeEnum formatType) { - this.formatType = formatType; - } - - /** - * Converts this TspublicRestV2DataSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2DataSearchRequest [" + "queryString=" + queryString - + ", dataObjectId=" + dataObjectId + ", offset=" + offset + ", batchNumber=" - + batchNumber + ", batchSize=" + batchSize + ", formatType=" + formatType + "]"; - } - - /** - * Builds a new {@link TspublicRestV2DataSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2DataSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(queryString, dataObjectId) - .offset(getOffset()) - .batchNumber(getBatchNumber()) - .batchSize(getBatchSize()) - .formatType(getFormatType()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2DataSearchRequest}. - */ - public static class Builder { - private String queryString; - private String dataObjectId; - private Integer offset = -1; - private Integer batchNumber = -1; - private Integer batchSize = -1; - private FormatTypeEnum formatType = FormatTypeEnum.COMPACT; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param queryString String value for queryString. - * @param dataObjectId String value for dataObjectId. - */ - public Builder(String queryString, String dataObjectId) { - this.queryString = queryString; - this.dataObjectId = dataObjectId; - } - - /** - * Setter for queryString. - * @param queryString String value for queryString. - * @return Builder - */ - public Builder queryString(String queryString) { - this.queryString = queryString; - return this; - } - - /** - * Setter for dataObjectId. - * @param dataObjectId String value for dataObjectId. - * @return Builder - */ - public Builder dataObjectId(String dataObjectId) { - this.dataObjectId = dataObjectId; - return this; - } - - /** - * Setter for offset. - * @param offset Integer value for offset. - * @return Builder - */ - public Builder offset(Integer offset) { - this.offset = offset; - return this; - } - - /** - * Setter for batchNumber. - * @param batchNumber Integer value for batchNumber. - * @return Builder - */ - public Builder batchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - return this; - } - - /** - * Setter for batchSize. - * @param batchSize Integer value for batchSize. - * @return Builder - */ - public Builder batchSize(Integer batchSize) { - this.batchSize = batchSize; - return this; - } - - /** - * Setter for formatType. - * @param formatType FormatTypeEnum value for formatType. - * @return Builder - */ - public Builder formatType(FormatTypeEnum formatType) { - this.formatType = formatType; - return this; - } - - /** - * Builds a new {@link TspublicRestV2DataSearchRequest} object using the set fields. - * @return {@link TspublicRestV2DataSearchRequest} - */ - public TspublicRestV2DataSearchRequest build() { - return new TspublicRestV2DataSearchRequest(queryString, dataObjectId, offset, - batchNumber, batchSize, formatType); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableCreateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableCreateRequest.java deleted file mode 100644 index 6703c42d4..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableCreateRequest.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2DatabaseTableCreateRequest type. - */ -public class TspublicRestV2DatabaseTableCreateRequest { - private Boolean createDatabase; - private String schema; - - /** - * Default constructor. - */ - public TspublicRestV2DatabaseTableCreateRequest() { - createDatabase = true; - } - - /** - * Initialization constructor. - * @param createDatabase Boolean value for createDatabase. - * @param schema String value for schema. - */ - public TspublicRestV2DatabaseTableCreateRequest( - Boolean createDatabase, - String schema) { - this.createDatabase = createDatabase; - this.schema = schema; - } - - /** - * Getter for CreateDatabase. - * Flag to indicate if the database and schema should be created if they do not exist in Falcon. - * (Valid values: True/False) - * @return Returns the Boolean - */ - @JsonGetter("createDatabase") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getCreateDatabase() { - return createDatabase; - } - - /** - * Setter for CreateDatabase. - * Flag to indicate if the database and schema should be created if they do not exist in Falcon. - * (Valid values: True/False) - * @param createDatabase Value for Boolean - */ - @JsonSetter("createDatabase") - public void setCreateDatabase(Boolean createDatabase) { - this.createDatabase = createDatabase; - } - - /** - * Getter for Schema. - * DDL of the table to be created. Example: - * {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} - * @return Returns the String - */ - @JsonGetter("schema") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getSchema() { - return schema; - } - - /** - * Setter for Schema. - * DDL of the table to be created. Example: - * {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} - * @param schema Value for String - */ - @JsonSetter("schema") - public void setSchema(String schema) { - this.schema = schema; - } - - /** - * Converts this TspublicRestV2DatabaseTableCreateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2DatabaseTableCreateRequest [" + "createDatabase=" + createDatabase - + ", schema=" + schema + "]"; - } - - /** - * Builds a new {@link TspublicRestV2DatabaseTableCreateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2DatabaseTableCreateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .createDatabase(getCreateDatabase()) - .schema(getSchema()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2DatabaseTableCreateRequest}. - */ - public static class Builder { - private Boolean createDatabase = true; - private String schema; - - - - /** - * Setter for createDatabase. - * @param createDatabase Boolean value for createDatabase. - * @return Builder - */ - public Builder createDatabase(Boolean createDatabase) { - this.createDatabase = createDatabase; - return this; - } - - /** - * Setter for schema. - * @param schema String value for schema. - * @return Builder - */ - public Builder schema(String schema) { - this.schema = schema; - return this; - } - - /** - * Builds a new {@link TspublicRestV2DatabaseTableCreateRequest} object using the set - * fields. - * @return {@link TspublicRestV2DatabaseTableCreateRequest} - */ - public TspublicRestV2DatabaseTableCreateRequest build() { - return new TspublicRestV2DatabaseTableCreateRequest(createDatabase, schema); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableRunqueryRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableRunqueryRequest.java deleted file mode 100644 index 25635b388..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2DatabaseTableRunqueryRequest.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2DatabaseTableRunqueryRequest type. - */ -public class TspublicRestV2DatabaseTableRunqueryRequest { - private List statement; - - /** - * Default constructor. - */ - public TspublicRestV2DatabaseTableRunqueryRequest() { - } - - /** - * Initialization constructor. - * @param statement List of String value for statement. - */ - public TspublicRestV2DatabaseTableRunqueryRequest( - List statement) { - this.statement = statement; - } - - /** - * Getter for Statement. - * A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end - * with semi-colon (;). The TQL operations that can be run through this API are restricted to - * create database and schema, alter table, delete and update table rows. If a TQL statement - * fails, then the subsequent statements in the array are not run. Example: ["alter table - * test_db.test_schema.test_table drop contraint primary key;";"alter table - * test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] - * @return Returns the List of String - */ - @JsonGetter("statement") - public List getStatement() { - return statement; - } - - /** - * Setter for Statement. - * A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end - * with semi-colon (;). The TQL operations that can be run through this API are restricted to - * create database and schema, alter table, delete and update table rows. If a TQL statement - * fails, then the subsequent statements in the array are not run. Example: ["alter table - * test_db.test_schema.test_table drop contraint primary key;";"alter table - * test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] - * @param statement Value for List of String - */ - @JsonSetter("statement") - public void setStatement(List statement) { - this.statement = statement; - } - - /** - * Converts this TspublicRestV2DatabaseTableRunqueryRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2DatabaseTableRunqueryRequest [" + "statement=" + statement + "]"; - } - - /** - * Builds a new {@link TspublicRestV2DatabaseTableRunqueryRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2DatabaseTableRunqueryRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(statement); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2DatabaseTableRunqueryRequest}. - */ - public static class Builder { - private List statement; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param statement List of String value for statement. - */ - public Builder(List statement) { - this.statement = statement; - } - - /** - * Setter for statement. - * @param statement List of String value for statement. - * @return Builder - */ - public Builder statement(List statement) { - this.statement = statement; - return this; - } - - /** - * Builds a new {@link TspublicRestV2DatabaseTableRunqueryRequest} object using the set - * fields. - * @return {@link TspublicRestV2DatabaseTableRunqueryRequest} - */ - public TspublicRestV2DatabaseTableRunqueryRequest build() { - return new TspublicRestV2DatabaseTableRunqueryRequest(statement); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupAddgroupRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupAddgroupRequest.java deleted file mode 100644 index 7c3003a13..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupAddgroupRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupAddgroupRequest type. - */ -public class TspublicRestV2GroupAddgroupRequest { - private String name; - private String id; - private List groups; - - /** - * Default constructor. - */ - public TspublicRestV2GroupAddgroupRequest() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2GroupAddgroupRequest( - List groups, - String name, - String id) { - this.name = name; - this.id = id; - this.groups = groups; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the group to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the group to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Converts this TspublicRestV2GroupAddgroupRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupAddgroupRequest [" + "groups=" + groups + ", name=" + name - + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupAddgroupRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupAddgroupRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(groups) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupAddgroupRequest}. - */ - public static class Builder { - private List groups; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - */ - public Builder(List groups) { - this.groups = groups; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupAddgroupRequest} object using the set fields. - * @return {@link TspublicRestV2GroupAddgroupRequest} - */ - public TspublicRestV2GroupAddgroupRequest build() { - return new TspublicRestV2GroupAddgroupRequest(groups, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupAddprivilegeRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupAddprivilegeRequest.java deleted file mode 100644 index 2786f74da..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupAddprivilegeRequest.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupAddprivilegeRequest type. - */ -public class TspublicRestV2GroupAddprivilegeRequest { - private String name; - private String id; - private List privileges; - - /** - * Default constructor. - */ - public TspublicRestV2GroupAddprivilegeRequest() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param privileges List of PrivilegeEnum value for privileges. - */ - public TspublicRestV2GroupAddprivilegeRequest( - String name, - String id, - List privileges) { - this.name = name; - this.id = id; - this.privileges = privileges; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the group to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the group to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Privileges. - * A JSON array of name of users or GUIDs of users or both. When both are given then id is - * considered - * @return Returns the List of PrivilegeEnum - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * A JSON array of name of users or GUIDs of users or both. When both are given then id is - * considered - * @param privileges Value for List of PrivilegeEnum - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Converts this TspublicRestV2GroupAddprivilegeRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupAddprivilegeRequest [" + "name=" + name + ", id=" + id - + ", privileges=" + privileges + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupAddprivilegeRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupAddprivilegeRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .privileges(getPrivileges()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupAddprivilegeRequest}. - */ - public static class Builder { - private String name; - private String id; - private List privileges; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of PrivilegeEnum value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupAddprivilegeRequest} object using the set fields. - * @return {@link TspublicRestV2GroupAddprivilegeRequest} - */ - public TspublicRestV2GroupAddprivilegeRequest build() { - return new TspublicRestV2GroupAddprivilegeRequest(name, id, privileges); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupAdduserRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupAdduserRequest.java deleted file mode 100644 index c20765b4b..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupAdduserRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupAdduserRequest type. - */ -public class TspublicRestV2GroupAdduserRequest { - private String name; - private String id; - private List users; - - /** - * Default constructor. - */ - public TspublicRestV2GroupAdduserRequest() { - } - - /** - * Initialization constructor. - * @param users List of UserNameAndIDInput value for users. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2GroupAdduserRequest( - List users, - String name, - String id) { - this.name = name; - this.id = id; - this.users = users; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the group to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the group to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Users. - * Array of user name that you want to update in user group. - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("users") - public List getUsers() { - return users; - } - - /** - * Setter for Users. - * Array of user name that you want to update in user group. - * @param users Value for List of UserNameAndIDInput - */ - @JsonSetter("users") - public void setUsers(List users) { - this.users = users; - } - - /** - * Converts this TspublicRestV2GroupAdduserRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupAdduserRequest [" + "users=" + users + ", name=" + name + ", id=" - + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupAdduserRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupAdduserRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(users) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupAdduserRequest}. - */ - public static class Builder { - private List users; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param users List of UserNameAndIDInput value for users. - */ - public Builder(List users) { - this.users = users; - } - - /** - * Setter for users. - * @param users List of UserNameAndIDInput value for users. - * @return Builder - */ - public Builder users(List users) { - this.users = users; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupAdduserRequest} object using the set fields. - * @return {@link TspublicRestV2GroupAdduserRequest} - */ - public TspublicRestV2GroupAdduserRequest build() { - return new TspublicRestV2GroupAdduserRequest(users, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupCreateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupCreateRequest.java deleted file mode 100644 index a02b3edc5..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupCreateRequest.java +++ /dev/null @@ -1,423 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupCreateRequest type. - */ -public class TspublicRestV2GroupCreateRequest { - private String name; - private String displayName; - private Visibility2Enum visibility; - private String description; - private List privileges; - private Integer orgId; - private List groups; - private List users; - private Type10Enum type; - - /** - * Default constructor. - */ - public TspublicRestV2GroupCreateRequest() { - visibility = Visibility2Enum.DEFAULT; - type = Type10Enum.LOCAL_GROUP; - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param displayName String value for displayName. - * @param visibility Visibility2Enum value for visibility. - * @param description String value for description. - * @param privileges List of PrivilegeEnum value for privileges. - * @param orgId Integer value for orgId. - * @param groups List of GroupNameAndIDInput value for groups. - * @param users List of UserNameAndIDInput value for users. - * @param type Type10Enum value for type. - */ - public TspublicRestV2GroupCreateRequest( - String name, - String displayName, - Visibility2Enum visibility, - String description, - List privileges, - Integer orgId, - List groups, - List users, - Type10Enum type) { - this.name = name; - this.displayName = displayName; - this.visibility = visibility; - this.description = description; - this.privileges = privileges; - this.orgId = orgId; - this.groups = groups; - this.users = users; - this.type = type; - } - - /** - * Getter for Name. - * Name of the user group. The group name string must be unique. - * @return Returns the String - */ - @JsonGetter("name") - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user group. The group name string must be unique. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for DisplayName. - * A unique display name string for the user group, for example, Developer group. - * @return Returns the String - */ - @JsonGetter("displayName") - public String getDisplayName() { - return displayName; - } - - /** - * Setter for DisplayName. - * A unique display name string for the user group, for example, Developer group. - * @param displayName Value for String - */ - @JsonSetter("displayName") - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - /** - * Getter for Visibility. - * Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT - * attribute makes the user group visible for other user groups and allows them to share - * objects. - * @return Returns the Visibility2Enum - */ - @JsonGetter("visibility") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Visibility2Enum getVisibility() { - return visibility; - } - - /** - * Setter for Visibility. - * Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT - * attribute makes the user group visible for other user groups and allows them to share - * objects. - * @param visibility Value for Visibility2Enum - */ - @JsonSetter("visibility") - public void setVisibility(Visibility2Enum visibility) { - this.visibility = visibility; - } - - /** - * Getter for Description. - * Description text for the group. - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description text for the group. - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Privileges. - * A JSON array of privileges assigned to the group - * @return Returns the List of PrivilegeEnum - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * A JSON array of privileges assigned to the group - * @param privileges Value for List of PrivilegeEnum - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Getter for OrgId. - * Unique identifier of the organization. If no value is provided then group will be created in - * the organization associated with the login session. - * @return Returns the Integer - */ - @JsonGetter("orgId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOrgId() { - return orgId; - } - - /** - * Setter for OrgId. - * Unique identifier of the organization. If no value is provided then group will be created in - * the organization associated with the login session. - * @param orgId Value for Integer - */ - @JsonSetter("orgId") - public void setOrgId(Integer orgId) { - this.orgId = orgId; - } - - /** - * Getter for Groups. - * Array of objects of groups that the group belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the group belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Getter for Users. - * Array of names of user names that the group belong to. - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("users") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUsers() { - return users; - } - - /** - * Setter for Users. - * Array of names of user names that the group belong to. - * @param users Value for List of UserNameAndIDInput - */ - @JsonSetter("users") - public void setUsers(List users) { - this.users = users; - } - - /** - * Getter for Type. - * Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot - * system. - * @return Returns the Type10Enum - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Type10Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot - * system. - * @param type Value for Type10Enum - */ - @JsonSetter("type") - public void setType(Type10Enum type) { - this.type = type; - } - - /** - * Converts this TspublicRestV2GroupCreateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupCreateRequest [" + "name=" + name + ", displayName=" - + displayName + ", visibility=" + visibility + ", description=" + description - + ", privileges=" + privileges + ", orgId=" + orgId + ", groups=" + groups - + ", users=" + users + ", type=" + type + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupCreateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupCreateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(name, displayName) - .visibility(getVisibility()) - .description(getDescription()) - .privileges(getPrivileges()) - .orgId(getOrgId()) - .groups(getGroups()) - .users(getUsers()) - .type(getType()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupCreateRequest}. - */ - public static class Builder { - private String name; - private String displayName; - private Visibility2Enum visibility = Visibility2Enum.DEFAULT; - private String description; - private List privileges; - private Integer orgId; - private List groups; - private List users; - private Type10Enum type = Type10Enum.LOCAL_GROUP; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param displayName String value for displayName. - */ - public Builder(String name, String displayName) { - this.name = name; - this.displayName = displayName; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for displayName. - * @param displayName String value for displayName. - * @return Builder - */ - public Builder displayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Setter for visibility. - * @param visibility Visibility2Enum value for visibility. - * @return Builder - */ - public Builder visibility(Visibility2Enum visibility) { - this.visibility = visibility; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of PrivilegeEnum value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Setter for orgId. - * @param orgId Integer value for orgId. - * @return Builder - */ - public Builder orgId(Integer orgId) { - this.orgId = orgId; - return this; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for users. - * @param users List of UserNameAndIDInput value for users. - * @return Builder - */ - public Builder users(List users) { - this.users = users; - return this; - } - - /** - * Setter for type. - * @param type Type10Enum value for type. - * @return Builder - */ - public Builder type(Type10Enum type) { - this.type = type; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupCreateRequest} object using the set fields. - * @return {@link TspublicRestV2GroupCreateRequest} - */ - public TspublicRestV2GroupCreateRequest build() { - return new TspublicRestV2GroupCreateRequest(name, displayName, visibility, description, - privileges, orgId, groups, users, type); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupRemovegroupRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupRemovegroupRequest.java deleted file mode 100644 index 50e171223..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupRemovegroupRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupRemovegroupRequest type. - */ -public class TspublicRestV2GroupRemovegroupRequest { - private String name; - private String id; - private List groups; - - /** - * Default constructor. - */ - public TspublicRestV2GroupRemovegroupRequest() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2GroupRemovegroupRequest( - List groups, - String name, - String id) { - this.name = name; - this.id = id; - this.groups = groups; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the group to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the group to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Converts this TspublicRestV2GroupRemovegroupRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupRemovegroupRequest [" + "groups=" + groups + ", name=" + name - + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupRemovegroupRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupRemovegroupRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(groups) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupRemovegroupRequest}. - */ - public static class Builder { - private List groups; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - */ - public Builder(List groups) { - this.groups = groups; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupRemovegroupRequest} object using the set fields. - * @return {@link TspublicRestV2GroupRemovegroupRequest} - */ - public TspublicRestV2GroupRemovegroupRequest build() { - return new TspublicRestV2GroupRemovegroupRequest(groups, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveprivilegeRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveprivilegeRequest.java deleted file mode 100644 index 7a1c321ac..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveprivilegeRequest.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupRemoveprivilegeRequest type. - */ -public class TspublicRestV2GroupRemoveprivilegeRequest { - private String name; - private String id; - private List privileges; - - /** - * Default constructor. - */ - public TspublicRestV2GroupRemoveprivilegeRequest() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param privileges List of PrivilegeEnum value for privileges. - */ - public TspublicRestV2GroupRemoveprivilegeRequest( - String name, - String id, - List privileges) { - this.name = name; - this.id = id; - this.privileges = privileges; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the group to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the group to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Privileges. - * A JSON array of name of users or GUIDs of users or both. When both are given then id is - * considered - * @return Returns the List of PrivilegeEnum - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * A JSON array of name of users or GUIDs of users or both. When both are given then id is - * considered - * @param privileges Value for List of PrivilegeEnum - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Converts this TspublicRestV2GroupRemoveprivilegeRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupRemoveprivilegeRequest [" + "name=" + name + ", id=" + id - + ", privileges=" + privileges + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupRemoveprivilegeRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupRemoveprivilegeRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .privileges(getPrivileges()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupRemoveprivilegeRequest}. - */ - public static class Builder { - private String name; - private String id; - private List privileges; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of PrivilegeEnum value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupRemoveprivilegeRequest} object using the set - * fields. - * @return {@link TspublicRestV2GroupRemoveprivilegeRequest} - */ - public TspublicRestV2GroupRemoveprivilegeRequest build() { - return new TspublicRestV2GroupRemoveprivilegeRequest(name, id, privileges); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveuserRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveuserRequest.java deleted file mode 100644 index 9bf2a0609..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupRemoveuserRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupRemoveuserRequest type. - */ -public class TspublicRestV2GroupRemoveuserRequest { - private String name; - private String id; - private List users; - - /** - * Default constructor. - */ - public TspublicRestV2GroupRemoveuserRequest() { - } - - /** - * Initialization constructor. - * @param users List of UserNameAndIDInput value for users. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2GroupRemoveuserRequest( - List users, - String name, - String id) { - this.name = name; - this.id = id; - this.users = users; - } - - /** - * Getter for Name. - * Name of the group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the group to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the group to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Users. - * Array of user name that you want to delete from user group. - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("users") - public List getUsers() { - return users; - } - - /** - * Setter for Users. - * Array of user name that you want to delete from user group. - * @param users Value for List of UserNameAndIDInput - */ - @JsonSetter("users") - public void setUsers(List users) { - this.users = users; - } - - /** - * Converts this TspublicRestV2GroupRemoveuserRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupRemoveuserRequest [" + "users=" + users + ", name=" + name - + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupRemoveuserRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupRemoveuserRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(users) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupRemoveuserRequest}. - */ - public static class Builder { - private List users; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param users List of UserNameAndIDInput value for users. - */ - public Builder(List users) { - this.users = users; - } - - /** - * Setter for users. - * @param users List of UserNameAndIDInput value for users. - * @return Builder - */ - public Builder users(List users) { - this.users = users; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupRemoveuserRequest} object using the set fields. - * @return {@link TspublicRestV2GroupRemoveuserRequest} - */ - public TspublicRestV2GroupRemoveuserRequest build() { - return new TspublicRestV2GroupRemoveuserRequest(users, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupSearchRequest.java deleted file mode 100644 index a04f82bde..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupSearchRequest.java +++ /dev/null @@ -1,446 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupSearchRequest type. - */ -public class TspublicRestV2GroupSearchRequest { - private List outputFields; - private String name; - private String id; - private String displayName; - private String visibility; - private String description; - private List privileges; - private List groups; - private List users; - private String type; - - /** - * Default constructor. - */ - public TspublicRestV2GroupSearchRequest() { - } - - /** - * Initialization constructor. - * @param outputFields List of String value for outputFields. - * @param name String value for name. - * @param id String value for id. - * @param displayName String value for displayName. - * @param visibility String value for visibility. - * @param description String value for description. - * @param privileges List of PrivilegeEnum value for privileges. - * @param groups List of GroupNameAndIDInput value for groups. - * @param users List of UserNameAndIDInput value for users. - * @param type String value for type. - */ - public TspublicRestV2GroupSearchRequest( - List outputFields, - String name, - String id, - String displayName, - String visibility, - String description, - List privileges, - List groups, - List users, - String type) { - this.outputFields = outputFields; - this.name = name; - this.id = id; - this.displayName = displayName; - this.visibility = visibility; - this.description = description; - this.privileges = privileges; - this.groups = groups; - this.users = users; - this.type = type; - } - - /** - * Getter for OutputFields. - * Array of field names that need to be included in the response - * @return Returns the List of String - */ - @JsonGetter("outputFields") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getOutputFields() { - return outputFields; - } - - /** - * Setter for OutputFields. - * Array of field names that need to be included in the response - * @param outputFields Value for List of String - */ - @JsonSetter("outputFields") - public void setOutputFields(List outputFields) { - this.outputFields = outputFields; - } - - /** - * Getter for Name. - * Name of the user group - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user group - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the group to update - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the group to update - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for DisplayName. - * A unique display name string for the user group, for example, Developer group. - * @return Returns the String - */ - @JsonGetter("displayName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDisplayName() { - return displayName; - } - - /** - * Setter for DisplayName. - * A unique display name string for the user group, for example, Developer group. - * @param displayName Value for String - */ - @JsonSetter("displayName") - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - /** - * Getter for Visibility. - * Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT - * attribute makes the user group visible for other user groups and allows them to share - * objects. - * @return Returns the String - */ - @JsonGetter("visibility") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getVisibility() { - return visibility; - } - - /** - * Setter for Visibility. - * Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT - * attribute makes the user group visible for other user groups and allows them to share - * objects. - * @param visibility Value for String - */ - @JsonSetter("visibility") - public void setVisibility(String visibility) { - this.visibility = visibility; - } - - /** - * Getter for Description. - * Description text for the group. - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description text for the group. - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Privileges. - * A JSON array of privileges assigned to the group - * @return Returns the List of PrivilegeEnum - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * A JSON array of privileges assigned to the group - * @param privileges Value for List of PrivilegeEnum - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Getter for Users. - * Array of user name that associated with group. - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("users") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUsers() { - return users; - } - - /** - * Setter for Users. - * Array of user name that associated with group. - * @param users Value for List of UserNameAndIDInput - */ - @JsonSetter("users") - public void setUsers(List users) { - this.users = users; - } - - /** - * Getter for Type. - * Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot - * system. - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot - * system. - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Converts this TspublicRestV2GroupSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupSearchRequest [" + "outputFields=" + outputFields + ", name=" - + name + ", id=" + id + ", displayName=" + displayName + ", visibility=" - + visibility + ", description=" + description + ", privileges=" + privileges - + ", groups=" + groups + ", users=" + users + ", type=" + type + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .outputFields(getOutputFields()) - .name(getName()) - .id(getId()) - .displayName(getDisplayName()) - .visibility(getVisibility()) - .description(getDescription()) - .privileges(getPrivileges()) - .groups(getGroups()) - .users(getUsers()) - .type(getType()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupSearchRequest}. - */ - public static class Builder { - private List outputFields; - private String name; - private String id; - private String displayName; - private String visibility; - private String description; - private List privileges; - private List groups; - private List users; - private String type; - - - - /** - * Setter for outputFields. - * @param outputFields List of String value for outputFields. - * @return Builder - */ - public Builder outputFields(List outputFields) { - this.outputFields = outputFields; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for displayName. - * @param displayName String value for displayName. - * @return Builder - */ - public Builder displayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Setter for visibility. - * @param visibility String value for visibility. - * @return Builder - */ - public Builder visibility(String visibility) { - this.visibility = visibility; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of PrivilegeEnum value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for users. - * @param users List of UserNameAndIDInput value for users. - * @return Builder - */ - public Builder users(List users) { - this.users = users; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupSearchRequest} object using the set fields. - * @return {@link TspublicRestV2GroupSearchRequest} - */ - public TspublicRestV2GroupSearchRequest build() { - return new TspublicRestV2GroupSearchRequest(outputFields, name, id, displayName, - visibility, description, privileges, groups, users, type); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2GroupUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2GroupUpdateRequest.java deleted file mode 100644 index c012b42a1..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2GroupUpdateRequest.java +++ /dev/null @@ -1,448 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2GroupUpdateRequest type. - */ -public class TspublicRestV2GroupUpdateRequest { - private String name; - private String id; - private String displayName; - private Visibility2Enum visibility; - private String description; - private List privileges; - private List groups; - private List users; - private List assignedLiveboards; - private Type10Enum type; - - /** - * Default constructor. - */ - public TspublicRestV2GroupUpdateRequest() { - visibility = Visibility2Enum.DEFAULT; - type = Type10Enum.LOCAL_GROUP; - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param displayName String value for displayName. - * @param visibility Visibility2Enum value for visibility. - * @param description String value for description. - * @param privileges List of PrivilegeEnum value for privileges. - * @param groups List of GroupNameAndIDInput value for groups. - * @param users List of UserNameAndIDInput value for users. - * @param assignedLiveboards List of String value for assignedLiveboards. - * @param type Type10Enum value for type. - */ - public TspublicRestV2GroupUpdateRequest( - String name, - String id, - String displayName, - Visibility2Enum visibility, - String description, - List privileges, - List groups, - List users, - List assignedLiveboards, - Type10Enum type) { - this.name = name; - this.id = id; - this.displayName = displayName; - this.visibility = visibility; - this.description = description; - this.privileges = privileges; - this.groups = groups; - this.users = users; - this.assignedLiveboards = assignedLiveboards; - this.type = type; - } - - /** - * Getter for Name. - * Name of the user group. The group name string must be unique. - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user group. The group name string must be unique. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * he GUID of the user account to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * he GUID of the user account to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for DisplayName. - * A unique display name string for the user group, for example, Developer group. - * @return Returns the String - */ - @JsonGetter("displayName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDisplayName() { - return displayName; - } - - /** - * Setter for DisplayName. - * A unique display name string for the user group, for example, Developer group. - * @param displayName Value for String - */ - @JsonSetter("displayName") - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - /** - * Getter for Visibility. - * Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT - * attribute makes the user group visible for other user groups and allows them to share - * objects. - * @return Returns the Visibility2Enum - */ - @JsonGetter("visibility") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Visibility2Enum getVisibility() { - return visibility; - } - - /** - * Setter for Visibility. - * Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT - * attribute makes the user group visible for other user groups and allows them to share - * objects. - * @param visibility Value for Visibility2Enum - */ - @JsonSetter("visibility") - public void setVisibility(Visibility2Enum visibility) { - this.visibility = visibility; - } - - /** - * Getter for Description. - * Description text for the group. - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description text for the group. - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Privileges. - * A JSON array of privileges assigned to the group - * @return Returns the List of PrivilegeEnum - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * A JSON array of privileges assigned to the group - * @param privileges Value for List of PrivilegeEnum - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Getter for Users. - * Array of object, A JSON array of name of users of users. - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("users") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getUsers() { - return users; - } - - /** - * Setter for Users. - * Array of object, A JSON array of name of users of users. - * @param users Value for List of UserNameAndIDInput - */ - @JsonSetter("users") - public void setUsers(List users) { - this.users = users; - } - - /** - * Getter for AssignedLiveboards. - * Array of string. An array of liveboard ids to be assigned to the group. - * @return Returns the List of String - */ - @JsonGetter("assignedLiveboards") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getAssignedLiveboards() { - return assignedLiveboards; - } - - /** - * Setter for AssignedLiveboards. - * Array of string. An array of liveboard ids to be assigned to the group. - * @param assignedLiveboards Value for List of String - */ - @JsonSetter("assignedLiveboards") - public void setAssignedLiveboards(List assignedLiveboards) { - this.assignedLiveboards = assignedLiveboards; - } - - /** - * Getter for Type. - * Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot - * system. - * @return Returns the Type10Enum - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Type10Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot - * system. - * @param type Value for Type10Enum - */ - @JsonSetter("type") - public void setType(Type10Enum type) { - this.type = type; - } - - /** - * Converts this TspublicRestV2GroupUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2GroupUpdateRequest [" + "name=" + name + ", id=" + id - + ", displayName=" + displayName + ", visibility=" + visibility + ", description=" - + description + ", privileges=" + privileges + ", groups=" + groups + ", users=" - + users + ", assignedLiveboards=" + assignedLiveboards + ", type=" + type + "]"; - } - - /** - * Builds a new {@link TspublicRestV2GroupUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2GroupUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .displayName(getDisplayName()) - .visibility(getVisibility()) - .description(getDescription()) - .privileges(getPrivileges()) - .groups(getGroups()) - .users(getUsers()) - .assignedLiveboards(getAssignedLiveboards()) - .type(getType()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2GroupUpdateRequest}. - */ - public static class Builder { - private String name; - private String id; - private String displayName; - private Visibility2Enum visibility = Visibility2Enum.DEFAULT; - private String description; - private List privileges; - private List groups; - private List users; - private List assignedLiveboards; - private Type10Enum type = Type10Enum.LOCAL_GROUP; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for displayName. - * @param displayName String value for displayName. - * @return Builder - */ - public Builder displayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Setter for visibility. - * @param visibility Visibility2Enum value for visibility. - * @return Builder - */ - public Builder visibility(Visibility2Enum visibility) { - this.visibility = visibility; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of PrivilegeEnum value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for users. - * @param users List of UserNameAndIDInput value for users. - * @return Builder - */ - public Builder users(List users) { - this.users = users; - return this; - } - - /** - * Setter for assignedLiveboards. - * @param assignedLiveboards List of String value for assignedLiveboards. - * @return Builder - */ - public Builder assignedLiveboards(List assignedLiveboards) { - this.assignedLiveboards = assignedLiveboards; - return this; - } - - /** - * Setter for type. - * @param type Type10Enum value for type. - * @return Builder - */ - public Builder type(Type10Enum type) { - this.type = type; - return this; - } - - /** - * Builds a new {@link TspublicRestV2GroupUpdateRequest} object using the set fields. - * @return {@link TspublicRestV2GroupUpdateRequest} - */ - public TspublicRestV2GroupUpdateRequest build() { - return new TspublicRestV2GroupUpdateRequest(name, id, displayName, visibility, - description, privileges, groups, users, assignedLiveboards, type); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MaterializationRefreshviewRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MaterializationRefreshviewRequest.java deleted file mode 100644 index 4bf3c6fd7..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MaterializationRefreshviewRequest.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2MaterializationRefreshviewRequest type. - */ -public class TspublicRestV2MaterializationRefreshviewRequest { - private String id; - - /** - * Default constructor. - */ - public TspublicRestV2MaterializationRefreshviewRequest() { - } - - /** - * Initialization constructor. - * @param id String value for id. - */ - public TspublicRestV2MaterializationRefreshviewRequest( - String id) { - this.id = id; - } - - /** - * Getter for Id. - * GUID of metadata object - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of metadata object - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this TspublicRestV2MaterializationRefreshviewRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MaterializationRefreshviewRequest [" + "id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MaterializationRefreshviewRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MaterializationRefreshviewRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MaterializationRefreshviewRequest}. - */ - public static class Builder { - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - */ - public Builder(String id) { - this.id = id; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MaterializationRefreshviewRequest} object using the set - * fields. - * @return {@link TspublicRestV2MaterializationRefreshviewRequest} - */ - public TspublicRestV2MaterializationRefreshviewRequest build() { - return new TspublicRestV2MaterializationRefreshviewRequest(id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataDependencyRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataDependencyRequest.java deleted file mode 100644 index f6e66e75e..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataDependencyRequest.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataDependencyRequest type. - */ -public class TspublicRestV2MetadataDependencyRequest { - private Type13Enum type; - private List id; - private Integer batchSize; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataDependencyRequest() { - batchSize = -1; - } - - /** - * Initialization constructor. - * @param type Type13Enum value for type. - * @param id List of String value for id. - * @param batchSize Integer value for batchSize. - */ - public TspublicRestV2MetadataDependencyRequest( - Type13Enum type, - List id, - Integer batchSize) { - this.type = type; - this.id = id; - this.batchSize = batchSize; - } - - /** - * Getter for Type. - * Type of the data object - * @return Returns the Type13Enum - */ - @JsonGetter("type") - public Type13Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of the data object - * @param type Value for Type13Enum - */ - @JsonSetter("type") - public void setType(Type13Enum type) { - this.type = type; - } - - /** - * Getter for Id. - * A JSON array of GUIDs of the objects - * @return Returns the List of String - */ - @JsonGetter("id") - public List getId() { - return id; - } - - /** - * Setter for Id. - * A JSON array of GUIDs of the objects - * @param id Value for List of String - */ - @JsonSetter("id") - public void setId(List id) { - this.id = id; - } - - /** - * Getter for BatchSize. - * The maximum number of batches to fetch in a query. If this attribute is not defined, the - * value specified in the cluster configuration is used. To get the list of all dependent - * objects in a single query, define the batch size attribute as -1 - * @return Returns the Integer - */ - @JsonGetter("batchSize") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchSize() { - return batchSize; - } - - /** - * Setter for BatchSize. - * The maximum number of batches to fetch in a query. If this attribute is not defined, the - * value specified in the cluster configuration is used. To get the list of all dependent - * objects in a single query, define the batch size attribute as -1 - * @param batchSize Value for Integer - */ - @JsonSetter("batchSize") - public void setBatchSize(Integer batchSize) { - this.batchSize = batchSize; - } - - /** - * Converts this TspublicRestV2MetadataDependencyRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataDependencyRequest [" + "type=" + type + ", id=" + id - + ", batchSize=" + batchSize + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataDependencyRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataDependencyRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(type, id) - .batchSize(getBatchSize()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataDependencyRequest}. - */ - public static class Builder { - private Type13Enum type; - private List id; - private Integer batchSize = -1; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param type Type13Enum value for type. - * @param id List of String value for id. - */ - public Builder(Type13Enum type, List id) { - this.type = type; - this.id = id; - } - - /** - * Setter for type. - * @param type Type13Enum value for type. - * @return Builder - */ - public Builder type(Type13Enum type) { - this.type = type; - return this; - } - - /** - * Setter for id. - * @param id List of String value for id. - * @return Builder - */ - public Builder id(List id) { - this.id = id; - return this; - } - - /** - * Setter for batchSize. - * @param batchSize Integer value for batchSize. - * @return Builder - */ - public Builder batchSize(Integer batchSize) { - this.batchSize = batchSize; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataDependencyRequest} object using the set fields. - * @return {@link TspublicRestV2MetadataDependencyRequest} - */ - public TspublicRestV2MetadataDependencyRequest build() { - return new TspublicRestV2MetadataDependencyRequest(type, id, batchSize); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataDetailSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataDetailSearchRequest.java deleted file mode 100644 index f9837cb46..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataDetailSearchRequest.java +++ /dev/null @@ -1,273 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataDetailSearchRequest type. - */ -public class TspublicRestV2MetadataDetailSearchRequest { - private Type6Enum type; - private List id; - private Boolean showHidden; - private Boolean dropQuestionDetails; - private String version; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataDetailSearchRequest() { - showHidden = false; - dropQuestionDetails = false; - } - - /** - * Initialization constructor. - * @param type Type6Enum value for type. - * @param id List of String value for id. - * @param showHidden Boolean value for showHidden. - * @param dropQuestionDetails Boolean value for dropQuestionDetails. - * @param version String value for version. - */ - public TspublicRestV2MetadataDetailSearchRequest( - Type6Enum type, - List id, - Boolean showHidden, - Boolean dropQuestionDetails, - String version) { - this.type = type; - this.id = id; - this.showHidden = showHidden; - this.dropQuestionDetails = dropQuestionDetails; - this.version = version; - } - - /** - * Getter for Type. - * Type of the metadata object being searched. - * @return Returns the Type6Enum - */ - @JsonGetter("type") - public Type6Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of the metadata object being searched. - * @param type Value for Type6Enum - */ - @JsonSetter("type") - public void setType(Type6Enum type) { - this.type = type; - } - - /** - * Getter for Id. - * A JSON array of GUIDs of the objects. - * @return Returns the List of String - */ - @JsonGetter("id") - public List getId() { - return id; - } - - /** - * Setter for Id. - * A JSON array of GUIDs of the objects. - * @param id Value for List of String - */ - @JsonSetter("id") - public void setId(List id) { - this.id = id; - } - - /** - * Getter for ShowHidden. - * When set to true, returns details of the hidden objects, such as a column in a worksheet or a - * table. - * @return Returns the Boolean - */ - @JsonGetter("showHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getShowHidden() { - return showHidden; - } - - /** - * Setter for ShowHidden. - * When set to true, returns details of the hidden objects, such as a column in a worksheet or a - * table. - * @param showHidden Value for Boolean - */ - @JsonSetter("showHidden") - public void setShowHidden(Boolean showHidden) { - this.showHidden = showHidden; - } - - /** - * Getter for DropQuestionDetails. - * When set to true, the search assist data associated with a worksheet is not included in the - * API response. This attribute is applicable only for DATAOBJECT data type. - * @return Returns the Boolean - */ - @JsonGetter("dropQuestionDetails") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getDropQuestionDetails() { - return dropQuestionDetails; - } - - /** - * Setter for DropQuestionDetails. - * When set to true, the search assist data associated with a worksheet is not included in the - * API response. This attribute is applicable only for DATAOBJECT data type. - * @param dropQuestionDetails Value for Boolean - */ - @JsonSetter("dropQuestionDetails") - public void setDropQuestionDetails(Boolean dropQuestionDetails) { - this.dropQuestionDetails = dropQuestionDetails; - } - - /** - * Getter for Version. - * Specify the version to retrieve the objects from. By default, the API returns metadata for - * all versions of the object. - * @return Returns the String - */ - @JsonGetter("version") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getVersion() { - return version; - } - - /** - * Setter for Version. - * Specify the version to retrieve the objects from. By default, the API returns metadata for - * all versions of the object. - * @param version Value for String - */ - @JsonSetter("version") - public void setVersion(String version) { - this.version = version; - } - - /** - * Converts this TspublicRestV2MetadataDetailSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataDetailSearchRequest [" + "type=" + type + ", id=" + id - + ", showHidden=" + showHidden + ", dropQuestionDetails=" + dropQuestionDetails - + ", version=" + version + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataDetailSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataDetailSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(type, id) - .showHidden(getShowHidden()) - .dropQuestionDetails(getDropQuestionDetails()) - .version(getVersion()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataDetailSearchRequest}. - */ - public static class Builder { - private Type6Enum type; - private List id; - private Boolean showHidden = false; - private Boolean dropQuestionDetails = false; - private String version; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param type Type6Enum value for type. - * @param id List of String value for id. - */ - public Builder(Type6Enum type, List id) { - this.type = type; - this.id = id; - } - - /** - * Setter for type. - * @param type Type6Enum value for type. - * @return Builder - */ - public Builder type(Type6Enum type) { - this.type = type; - return this; - } - - /** - * Setter for id. - * @param id List of String value for id. - * @return Builder - */ - public Builder id(List id) { - this.id = id; - return this; - } - - /** - * Setter for showHidden. - * @param showHidden Boolean value for showHidden. - * @return Builder - */ - public Builder showHidden(Boolean showHidden) { - this.showHidden = showHidden; - return this; - } - - /** - * Setter for dropQuestionDetails. - * @param dropQuestionDetails Boolean value for dropQuestionDetails. - * @return Builder - */ - public Builder dropQuestionDetails(Boolean dropQuestionDetails) { - this.dropQuestionDetails = dropQuestionDetails; - return this; - } - - /** - * Setter for version. - * @param version String value for version. - * @return Builder - */ - public Builder version(String version) { - this.version = version; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataDetailSearchRequest} object using the set - * fields. - * @return {@link TspublicRestV2MetadataDetailSearchRequest} - */ - public TspublicRestV2MetadataDetailSearchRequest build() { - return new TspublicRestV2MetadataDetailSearchRequest(type, id, showHidden, - dropQuestionDetails, version); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteAssignRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteAssignRequest.java deleted file mode 100644 index bacdfa9a1..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteAssignRequest.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataFavoriteAssignRequest type. - */ -public class TspublicRestV2MetadataFavoriteAssignRequest { - private String userName; - private String userId; - private List tsObject; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataFavoriteAssignRequest() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - * @param userName String value for userName. - * @param userId String value for userId. - */ - public TspublicRestV2MetadataFavoriteAssignRequest( - List tsObject, - String userName, - String userId) { - this.userName = userName; - this.userId = userId; - this.tsObject = tsObject; - } - - /** - * Getter for UserName. - * Name of the user - * @return Returns the String - */ - @JsonGetter("userName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserName() { - return userName; - } - - /** - * Setter for UserName. - * Name of the user - * @param userName Value for String - */ - @JsonSetter("userName") - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * Getter for UserId. - * The GUID of the user - * @return Returns the String - */ - @JsonGetter("userId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserId() { - return userId; - } - - /** - * Setter for UserId. - * The GUID of the user - * @param userId Value for String - */ - @JsonSetter("userId") - public void setUserId(String userId) { - this.userId = userId; - } - - /** - * Getter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @return Returns the List of TsObjectInput - */ - @JsonGetter("tsObject") - public List getTsObject() { - return tsObject; - } - - /** - * Setter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @param tsObject Value for List of TsObjectInput - */ - @JsonSetter("tsObject") - public void setTsObject(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Converts this TspublicRestV2MetadataFavoriteAssignRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataFavoriteAssignRequest [" + "tsObject=" + tsObject - + ", userName=" + userName + ", userId=" + userId + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataFavoriteAssignRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataFavoriteAssignRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(tsObject) - .userName(getUserName()) - .userId(getUserId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataFavoriteAssignRequest}. - */ - public static class Builder { - private List tsObject; - private String userName; - private String userId; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - */ - public Builder(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Setter for tsObject. - * @param tsObject List of TsObjectInput value for tsObject. - * @return Builder - */ - public Builder tsObject(List tsObject) { - this.tsObject = tsObject; - return this; - } - - /** - * Setter for userName. - * @param userName String value for userName. - * @return Builder - */ - public Builder userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Setter for userId. - * @param userId String value for userId. - * @return Builder - */ - public Builder userId(String userId) { - this.userId = userId; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataFavoriteAssignRequest} object using the set - * fields. - * @return {@link TspublicRestV2MetadataFavoriteAssignRequest} - */ - public TspublicRestV2MetadataFavoriteAssignRequest build() { - return new TspublicRestV2MetadataFavoriteAssignRequest(tsObject, userName, userId); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteUnassignRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteUnassignRequest.java deleted file mode 100644 index c8bc35a81..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataFavoriteUnassignRequest.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataFavoriteUnassignRequest type. - */ -public class TspublicRestV2MetadataFavoriteUnassignRequest { - private String userName; - private String userId; - private List tsObject; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataFavoriteUnassignRequest() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - * @param userName String value for userName. - * @param userId String value for userId. - */ - public TspublicRestV2MetadataFavoriteUnassignRequest( - List tsObject, - String userName, - String userId) { - this.userName = userName; - this.userId = userId; - this.tsObject = tsObject; - } - - /** - * Getter for UserName. - * Name of the user - * @return Returns the String - */ - @JsonGetter("userName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserName() { - return userName; - } - - /** - * Setter for UserName. - * Name of the user - * @param userName Value for String - */ - @JsonSetter("userName") - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * Getter for UserId. - * The GUID of the user - * @return Returns the String - */ - @JsonGetter("userId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserId() { - return userId; - } - - /** - * Setter for UserId. - * The GUID of the user - * @param userId Value for String - */ - @JsonSetter("userId") - public void setUserId(String userId) { - this.userId = userId; - } - - /** - * Getter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @return Returns the List of TsObjectInput - */ - @JsonGetter("tsObject") - public List getTsObject() { - return tsObject; - } - - /** - * Setter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @param tsObject Value for List of TsObjectInput - */ - @JsonSetter("tsObject") - public void setTsObject(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Converts this TspublicRestV2MetadataFavoriteUnassignRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataFavoriteUnassignRequest [" + "tsObject=" + tsObject - + ", userName=" + userName + ", userId=" + userId + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataFavoriteUnassignRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataFavoriteUnassignRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(tsObject) - .userName(getUserName()) - .userId(getUserId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataFavoriteUnassignRequest}. - */ - public static class Builder { - private List tsObject; - private String userName; - private String userId; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - */ - public Builder(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Setter for tsObject. - * @param tsObject List of TsObjectInput value for tsObject. - * @return Builder - */ - public Builder tsObject(List tsObject) { - this.tsObject = tsObject; - return this; - } - - /** - * Setter for userName. - * @param userName String value for userName. - * @return Builder - */ - public Builder userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Setter for userId. - * @param userId String value for userId. - * @return Builder - */ - public Builder userId(String userId) { - this.userId = userId; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataFavoriteUnassignRequest} object using the set - * fields. - * @return {@link TspublicRestV2MetadataFavoriteUnassignRequest} - */ - public TspublicRestV2MetadataFavoriteUnassignRequest build() { - return new TspublicRestV2MetadataFavoriteUnassignRequest(tsObject, userName, userId); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataHeaderSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataHeaderSearchRequest.java deleted file mode 100644 index 819bae93e..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataHeaderSearchRequest.java +++ /dev/null @@ -1,759 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataHeaderSearchRequest type. - */ -public class TspublicRestV2MetadataHeaderSearchRequest { - private List outputFields; - private Integer offset; - private Integer batchNumber; - private Integer batchSize; - private SortByEnum sortBy; - private SortOrderEnum sortOrder; - private Type3Enum type; - private String namePattern; - private List fetchId; - private List skipId; - private Boolean showHidden; - private Boolean autoCreated; - private List accessLevel; - private List tag; - private List favoriteFor; - private List author; - private List lastModifiedBy; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataHeaderSearchRequest() { - offset = 0; - batchSize = -1; - sortBy = SortByEnum.DEFAULT; - sortOrder = SortOrderEnum.DEFAULT; - showHidden = false; - } - - /** - * Initialization constructor. - * @param type Type3Enum value for type. - * @param outputFields List of String value for outputFields. - * @param offset Integer value for offset. - * @param batchNumber Integer value for batchNumber. - * @param batchSize Integer value for batchSize. - * @param sortBy SortByEnum value for sortBy. - * @param sortOrder SortOrderEnum value for sortOrder. - * @param namePattern String value for namePattern. - * @param fetchId List of String value for fetchId. - * @param skipId List of String value for skipId. - * @param showHidden Boolean value for showHidden. - * @param autoCreated Boolean value for autoCreated. - * @param accessLevel List of AccessLevelInput value for accessLevel. - * @param tag List of TagNameAndIdInput value for tag. - * @param favoriteFor List of NameAndIdInput value for favoriteFor. - * @param author List of NameAndIdInput value for author. - * @param lastModifiedBy List of NameAndIdInput value for lastModifiedBy. - */ - public TspublicRestV2MetadataHeaderSearchRequest( - Type3Enum type, - List outputFields, - Integer offset, - Integer batchNumber, - Integer batchSize, - SortByEnum sortBy, - SortOrderEnum sortOrder, - String namePattern, - List fetchId, - List skipId, - Boolean showHidden, - Boolean autoCreated, - List accessLevel, - List tag, - List favoriteFor, - List author, - List lastModifiedBy) { - this.outputFields = outputFields; - this.offset = offset; - this.batchNumber = batchNumber; - this.batchSize = batchSize; - this.sortBy = sortBy; - this.sortOrder = sortOrder; - this.type = type; - this.namePattern = namePattern; - this.fetchId = fetchId; - this.skipId = skipId; - this.showHidden = showHidden; - this.autoCreated = autoCreated; - this.accessLevel = accessLevel; - this.tag = tag; - this.favoriteFor = favoriteFor; - this.author = author; - this.lastModifiedBy = lastModifiedBy; - } - - /** - * Getter for OutputFields. - * Array of header field names that need to be included in the header response - * @return Returns the List of String - */ - @JsonGetter("outputFields") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getOutputFields() { - return outputFields; - } - - /** - * Setter for OutputFields. - * Array of header field names that need to be included in the header response - * @param outputFields Value for List of String - */ - @JsonSetter("outputFields") - public void setOutputFields(List outputFields) { - this.outputFields = outputFields; - } - - /** - * Getter for Offset. - * The batch offset, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. Default: 0 - * @return Returns the Integer - */ - @JsonGetter("offset") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOffset() { - return offset; - } - - /** - * Setter for Offset. - * The batch offset, starting from where the records should be included in the response. If no - * input is provided then offset starts from 0. Default: 0 - * @param offset Value for Integer - */ - @JsonSetter("offset") - public void setOffset(Integer offset) { - this.offset = offset; - } - - /** - * Getter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @return Returns the Integer - */ - @JsonGetter("batchNumber") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchNumber() { - return batchNumber; - } - - /** - * Setter for BatchNumber. - * An alternate way to set offset for the starting point of the response. The value in offset - * field will not be considered if batchNumber field has value greater than 0. Offset value will - * be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for - * batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set - * as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th - * record will be considered. - * @param batchNumber Value for Integer - */ - @JsonSetter("batchNumber") - public void setBatchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - } - - /** - * Getter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided then first page is included in the response. - * @return Returns the Integer - */ - @JsonGetter("batchSize") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getBatchSize() { - return batchSize; - } - - /** - * Setter for BatchSize. - * The number of records that should be included in the response starting from offset position. - * If no input is provided then first page is included in the response. - * @param batchSize Value for Integer - */ - @JsonSetter("batchSize") - public void setBatchSize(Integer batchSize) { - this.batchSize = batchSize; - } - - /** - * Getter for SortBy. - * Field based on which the response needs to be ordered. - * @return Returns the SortByEnum - */ - @JsonGetter("sortBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public SortByEnum getSortBy() { - return sortBy; - } - - /** - * Setter for SortBy. - * Field based on which the response needs to be ordered. - * @param sortBy Value for SortByEnum - */ - @JsonSetter("sortBy") - public void setSortBy(SortByEnum sortBy) { - this.sortBy = sortBy; - } - - /** - * Getter for SortOrder. - * Order in which sortBy should be applied. - * @return Returns the SortOrderEnum - */ - @JsonGetter("sortOrder") - @JsonInclude(JsonInclude.Include.NON_NULL) - public SortOrderEnum getSortOrder() { - return sortOrder; - } - - /** - * Setter for SortOrder. - * Order in which sortBy should be applied. - * @param sortOrder Value for SortOrderEnum - */ - @JsonSetter("sortOrder") - public void setSortOrder(SortOrderEnum sortOrder) { - this.sortOrder = sortOrder; - } - - /** - * Getter for Type. - * Type of the metadata object being searched. - * @return Returns the Type3Enum - */ - @JsonGetter("type") - public Type3Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of the metadata object being searched. - * @param type Value for Type3Enum - */ - @JsonSetter("type") - public void setType(Type3Enum type) { - this.type = type; - } - - /** - * Getter for NamePattern. - * A pattern to match the name of the metadata object. This parameter supports matching - * case-insensitive strings. For a wildcard match, use %. - * @return Returns the String - */ - @JsonGetter("namePattern") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getNamePattern() { - return namePattern; - } - - /** - * Setter for NamePattern. - * A pattern to match the name of the metadata object. This parameter supports matching - * case-insensitive strings. For a wildcard match, use %. - * @param namePattern Value for String - */ - @JsonSetter("namePattern") - public void setNamePattern(String namePattern) { - this.namePattern = namePattern; - } - - /** - * Getter for FetchId. - * A JSON array containing the GUIDs of the metadata objects that you want to fetch. - * @return Returns the List of String - */ - @JsonGetter("fetchId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getFetchId() { - return fetchId; - } - - /** - * Setter for FetchId. - * A JSON array containing the GUIDs of the metadata objects that you want to fetch. - * @param fetchId Value for List of String - */ - @JsonSetter("fetchId") - public void setFetchId(List fetchId) { - this.fetchId = fetchId; - } - - /** - * Getter for SkipId. - * A JSON array containing the GUIDs of the metadata objects that you want to skip. - * @return Returns the List of String - */ - @JsonGetter("skipId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getSkipId() { - return skipId; - } - - /** - * Setter for SkipId. - * A JSON array containing the GUIDs of the metadata objects that you want to skip. - * @param skipId Value for List of String - */ - @JsonSetter("skipId") - public void setSkipId(List skipId) { - this.skipId = skipId; - } - - /** - * Getter for ShowHidden. - * When set to true, returns details of the hidden objects, such as a column in a worksheet or a - * table. - * @return Returns the Boolean - */ - @JsonGetter("showHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getShowHidden() { - return showHidden; - } - - /** - * Setter for ShowHidden. - * When set to true, returns details of the hidden objects, such as a column in a worksheet or a - * table. - * @param showHidden Value for Boolean - */ - @JsonSetter("showHidden") - public void setShowHidden(Boolean showHidden) { - this.showHidden = showHidden; - } - - /** - * Getter for AutoCreated. - * A flag to indicate whether to list only the auto created objects. When no value is provided - * as input then all objects are returned. - * @return Returns the Boolean - */ - @JsonGetter("autoCreated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getAutoCreated() { - return autoCreated; - } - - /** - * Setter for AutoCreated. - * A flag to indicate whether to list only the auto created objects. When no value is provided - * as input then all objects are returned. - * @param autoCreated Value for Boolean - */ - @JsonSetter("autoCreated") - public void setAutoCreated(Boolean autoCreated) { - this.autoCreated = autoCreated; - } - - /** - * Getter for AccessLevel. - * A JSON array of objects with user details for which the metadata objects should be considered - * from the repository If you specify ID or name of user and set the type parameter to USER, the - * API returns metadata objects associated with the user If you specify ID or name of user group - * and set the type parameter to USER_GROUP, the API returns metadata objects for all the users - * mapped to the specified user group. If the id or name parameter is not defined, but the type - * attribute is set to USER or USER_GROUP, then the API will not return and response. If no - * input is provided for any field for this object, then the API returns headers for all users. - * If both name and id is provided, then id will be considered. - * @return Returns the List of AccessLevelInput - */ - @JsonGetter("accessLevel") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getAccessLevel() { - return accessLevel; - } - - /** - * Setter for AccessLevel. - * A JSON array of objects with user details for which the metadata objects should be considered - * from the repository If you specify ID or name of user and set the type parameter to USER, the - * API returns metadata objects associated with the user If you specify ID or name of user group - * and set the type parameter to USER_GROUP, the API returns metadata objects for all the users - * mapped to the specified user group. If the id or name parameter is not defined, but the type - * attribute is set to USER or USER_GROUP, then the API will not return and response. If no - * input is provided for any field for this object, then the API returns headers for all users. - * If both name and id is provided, then id will be considered. - * @param accessLevel Value for List of AccessLevelInput - */ - @JsonSetter("accessLevel") - public void setAccessLevel(List accessLevel) { - this.accessLevel = accessLevel; - } - - /** - * Getter for Tag. - * A JSON array of name or GUID of tags or both. When both are given then id is considered. - * @return Returns the List of TagNameAndIdInput - */ - @JsonGetter("tag") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTag() { - return tag; - } - - /** - * Setter for Tag. - * A JSON array of name or GUID of tags or both. When both are given then id is considered. - * @param tag Value for List of TagNameAndIdInput - */ - @JsonSetter("tag") - public void setTag(List tag) { - this.tag = tag; - } - - /** - * Getter for FavoriteFor. - * A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. - * When both are given then id is considered. - * @return Returns the List of NameAndIdInput - */ - @JsonGetter("favoriteFor") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getFavoriteFor() { - return favoriteFor; - } - - /** - * Setter for FavoriteFor. - * A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. - * When both are given then id is considered. - * @param favoriteFor Value for List of NameAndIdInput - */ - @JsonSetter("favoriteFor") - public void setFavoriteFor(List favoriteFor) { - this.favoriteFor = favoriteFor; - } - - /** - * Getter for Author. - * A JSON array of name or GUID of the user or both who created the object. When both are given - * then id is considered - * @return Returns the List of NameAndIdInput - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getAuthor() { - return author; - } - - /** - * Setter for Author. - * A JSON array of name or GUID of the user or both who created the object. When both are given - * then id is considered - * @param author Value for List of NameAndIdInput - */ - @JsonSetter("author") - public void setAuthor(List author) { - this.author = author; - } - - /** - * Getter for LastModifiedBy. - * A JSON array of name or GUID of the user or both who last modified the object. When both are - * given then id is considered. - * @return Returns the List of NameAndIdInput - */ - @JsonGetter("lastModifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getLastModifiedBy() { - return lastModifiedBy; - } - - /** - * Setter for LastModifiedBy. - * A JSON array of name or GUID of the user or both who last modified the object. When both are - * given then id is considered. - * @param lastModifiedBy Value for List of NameAndIdInput - */ - @JsonSetter("lastModifiedBy") - public void setLastModifiedBy(List lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - - /** - * Converts this TspublicRestV2MetadataHeaderSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataHeaderSearchRequest [" + "type=" + type + ", outputFields=" - + outputFields + ", offset=" + offset + ", batchNumber=" + batchNumber - + ", batchSize=" + batchSize + ", sortBy=" + sortBy + ", sortOrder=" + sortOrder - + ", namePattern=" + namePattern + ", fetchId=" + fetchId + ", skipId=" + skipId - + ", showHidden=" + showHidden + ", autoCreated=" + autoCreated + ", accessLevel=" - + accessLevel + ", tag=" + tag + ", favoriteFor=" + favoriteFor + ", author=" - + author + ", lastModifiedBy=" + lastModifiedBy + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataHeaderSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataHeaderSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(type) - .outputFields(getOutputFields()) - .offset(getOffset()) - .batchNumber(getBatchNumber()) - .batchSize(getBatchSize()) - .sortBy(getSortBy()) - .sortOrder(getSortOrder()) - .namePattern(getNamePattern()) - .fetchId(getFetchId()) - .skipId(getSkipId()) - .showHidden(getShowHidden()) - .autoCreated(getAutoCreated()) - .accessLevel(getAccessLevel()) - .tag(getTag()) - .favoriteFor(getFavoriteFor()) - .author(getAuthor()) - .lastModifiedBy(getLastModifiedBy()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataHeaderSearchRequest}. - */ - public static class Builder { - private Type3Enum type; - private List outputFields; - private Integer offset = 0; - private Integer batchNumber; - private Integer batchSize = -1; - private SortByEnum sortBy = SortByEnum.DEFAULT; - private SortOrderEnum sortOrder = SortOrderEnum.DEFAULT; - private String namePattern; - private List fetchId; - private List skipId; - private Boolean showHidden = false; - private Boolean autoCreated; - private List accessLevel; - private List tag; - private List favoriteFor; - private List author; - private List lastModifiedBy; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param type Type3Enum value for type. - */ - public Builder(Type3Enum type) { - this.type = type; - } - - /** - * Setter for type. - * @param type Type3Enum value for type. - * @return Builder - */ - public Builder type(Type3Enum type) { - this.type = type; - return this; - } - - /** - * Setter for outputFields. - * @param outputFields List of String value for outputFields. - * @return Builder - */ - public Builder outputFields(List outputFields) { - this.outputFields = outputFields; - return this; - } - - /** - * Setter for offset. - * @param offset Integer value for offset. - * @return Builder - */ - public Builder offset(Integer offset) { - this.offset = offset; - return this; - } - - /** - * Setter for batchNumber. - * @param batchNumber Integer value for batchNumber. - * @return Builder - */ - public Builder batchNumber(Integer batchNumber) { - this.batchNumber = batchNumber; - return this; - } - - /** - * Setter for batchSize. - * @param batchSize Integer value for batchSize. - * @return Builder - */ - public Builder batchSize(Integer batchSize) { - this.batchSize = batchSize; - return this; - } - - /** - * Setter for sortBy. - * @param sortBy SortByEnum value for sortBy. - * @return Builder - */ - public Builder sortBy(SortByEnum sortBy) { - this.sortBy = sortBy; - return this; - } - - /** - * Setter for sortOrder. - * @param sortOrder SortOrderEnum value for sortOrder. - * @return Builder - */ - public Builder sortOrder(SortOrderEnum sortOrder) { - this.sortOrder = sortOrder; - return this; - } - - /** - * Setter for namePattern. - * @param namePattern String value for namePattern. - * @return Builder - */ - public Builder namePattern(String namePattern) { - this.namePattern = namePattern; - return this; - } - - /** - * Setter for fetchId. - * @param fetchId List of String value for fetchId. - * @return Builder - */ - public Builder fetchId(List fetchId) { - this.fetchId = fetchId; - return this; - } - - /** - * Setter for skipId. - * @param skipId List of String value for skipId. - * @return Builder - */ - public Builder skipId(List skipId) { - this.skipId = skipId; - return this; - } - - /** - * Setter for showHidden. - * @param showHidden Boolean value for showHidden. - * @return Builder - */ - public Builder showHidden(Boolean showHidden) { - this.showHidden = showHidden; - return this; - } - - /** - * Setter for autoCreated. - * @param autoCreated Boolean value for autoCreated. - * @return Builder - */ - public Builder autoCreated(Boolean autoCreated) { - this.autoCreated = autoCreated; - return this; - } - - /** - * Setter for accessLevel. - * @param accessLevel List of AccessLevelInput value for accessLevel. - * @return Builder - */ - public Builder accessLevel(List accessLevel) { - this.accessLevel = accessLevel; - return this; - } - - /** - * Setter for tag. - * @param tag List of TagNameAndIdInput value for tag. - * @return Builder - */ - public Builder tag(List tag) { - this.tag = tag; - return this; - } - - /** - * Setter for favoriteFor. - * @param favoriteFor List of NameAndIdInput value for favoriteFor. - * @return Builder - */ - public Builder favoriteFor(List favoriteFor) { - this.favoriteFor = favoriteFor; - return this; - } - - /** - * Setter for author. - * @param author List of NameAndIdInput value for author. - * @return Builder - */ - public Builder author(List author) { - this.author = author; - return this; - } - - /** - * Setter for lastModifiedBy. - * @param lastModifiedBy List of NameAndIdInput value for lastModifiedBy. - * @return Builder - */ - public Builder lastModifiedBy(List lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataHeaderSearchRequest} object using the set - * fields. - * @return {@link TspublicRestV2MetadataHeaderSearchRequest} - */ - public TspublicRestV2MetadataHeaderSearchRequest build() { - return new TspublicRestV2MetadataHeaderSearchRequest(type, outputFields, offset, - batchNumber, batchSize, sortBy, sortOrder, namePattern, fetchId, skipId, - showHidden, autoCreated, accessLevel, tag, favoriteFor, author, lastModifiedBy); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardAssignRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardAssignRequest.java deleted file mode 100644 index 03639c4d0..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardAssignRequest.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2MetadataHomeliveboardAssignRequest type. - */ -public class TspublicRestV2MetadataHomeliveboardAssignRequest { - private String userName; - private String userId; - private String liveboardId; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataHomeliveboardAssignRequest() { - } - - /** - * Initialization constructor. - * @param userName String value for userName. - * @param userId String value for userId. - * @param liveboardId String value for liveboardId. - */ - public TspublicRestV2MetadataHomeliveboardAssignRequest( - String userName, - String userId, - String liveboardId) { - this.userName = userName; - this.userId = userId; - this.liveboardId = liveboardId; - } - - /** - * Getter for UserName. - * Name of the user - * @return Returns the String - */ - @JsonGetter("userName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserName() { - return userName; - } - - /** - * Setter for UserName. - * Name of the user - * @param userName Value for String - */ - @JsonSetter("userName") - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * Getter for UserId. - * The GUID of the user - * @return Returns the String - */ - @JsonGetter("userId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserId() { - return userId; - } - - /** - * Setter for UserId. - * The GUID of the user - * @param userId Value for String - */ - @JsonSetter("userId") - public void setUserId(String userId) { - this.userId = userId; - } - - /** - * Getter for LiveboardId. - * The GUID of the liveboard - * @return Returns the String - */ - @JsonGetter("liveboardId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getLiveboardId() { - return liveboardId; - } - - /** - * Setter for LiveboardId. - * The GUID of the liveboard - * @param liveboardId Value for String - */ - @JsonSetter("liveboardId") - public void setLiveboardId(String liveboardId) { - this.liveboardId = liveboardId; - } - - /** - * Converts this TspublicRestV2MetadataHomeliveboardAssignRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataHomeliveboardAssignRequest [" + "userName=" + userName - + ", userId=" + userId + ", liveboardId=" + liveboardId + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataHomeliveboardAssignRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataHomeliveboardAssignRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .userName(getUserName()) - .userId(getUserId()) - .liveboardId(getLiveboardId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataHomeliveboardAssignRequest}. - */ - public static class Builder { - private String userName; - private String userId; - private String liveboardId; - - - - /** - * Setter for userName. - * @param userName String value for userName. - * @return Builder - */ - public Builder userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Setter for userId. - * @param userId String value for userId. - * @return Builder - */ - public Builder userId(String userId) { - this.userId = userId; - return this; - } - - /** - * Setter for liveboardId. - * @param liveboardId String value for liveboardId. - * @return Builder - */ - public Builder liveboardId(String liveboardId) { - this.liveboardId = liveboardId; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataHomeliveboardAssignRequest} object using the - * set fields. - * @return {@link TspublicRestV2MetadataHomeliveboardAssignRequest} - */ - public TspublicRestV2MetadataHomeliveboardAssignRequest build() { - return new TspublicRestV2MetadataHomeliveboardAssignRequest(userName, userId, - liveboardId); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardUnassignRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardUnassignRequest.java deleted file mode 100644 index 3f0266f72..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataHomeliveboardUnassignRequest.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2MetadataHomeliveboardUnassignRequest type. - */ -public class TspublicRestV2MetadataHomeliveboardUnassignRequest { - private String userName; - private String userId; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataHomeliveboardUnassignRequest() { - } - - /** - * Initialization constructor. - * @param userName String value for userName. - * @param userId String value for userId. - */ - public TspublicRestV2MetadataHomeliveboardUnassignRequest( - String userName, - String userId) { - this.userName = userName; - this.userId = userId; - } - - /** - * Getter for UserName. - * Name of the user - * @return Returns the String - */ - @JsonGetter("userName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserName() { - return userName; - } - - /** - * Setter for UserName. - * Name of the user - * @param userName Value for String - */ - @JsonSetter("userName") - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * Getter for UserId. - * The GUID of the user - * @return Returns the String - */ - @JsonGetter("userId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getUserId() { - return userId; - } - - /** - * Setter for UserId. - * The GUID of the user - * @param userId Value for String - */ - @JsonSetter("userId") - public void setUserId(String userId) { - this.userId = userId; - } - - /** - * Converts this TspublicRestV2MetadataHomeliveboardUnassignRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataHomeliveboardUnassignRequest [" + "userName=" + userName - + ", userId=" + userId + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataHomeliveboardUnassignRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataHomeliveboardUnassignRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .userName(getUserName()) - .userId(getUserId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataHomeliveboardUnassignRequest}. - */ - public static class Builder { - private String userName; - private String userId; - - - - /** - * Setter for userName. - * @param userName String value for userName. - * @return Builder - */ - public Builder userName(String userName) { - this.userName = userName; - return this; - } - - /** - * Setter for userId. - * @param userId String value for userId. - * @return Builder - */ - public Builder userId(String userId) { - this.userId = userId; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataHomeliveboardUnassignRequest} object using the - * set fields. - * @return {@link TspublicRestV2MetadataHomeliveboardUnassignRequest} - */ - public TspublicRestV2MetadataHomeliveboardUnassignRequest build() { - return new TspublicRestV2MetadataHomeliveboardUnassignRequest(userName, userId); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagAssignRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagAssignRequest.java deleted file mode 100644 index ad11951de..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagAssignRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataTagAssignRequest type. - */ -public class TspublicRestV2MetadataTagAssignRequest { - private String name; - private String id; - private List tsObject; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataTagAssignRequest() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2MetadataTagAssignRequest( - List tsObject, - String name, - String id) { - this.name = name; - this.id = id; - this.tsObject = tsObject; - } - - /** - * Getter for Name. - * Name of the tag - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the tag - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the tag - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the tag - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @return Returns the List of TsObjectInput - */ - @JsonGetter("tsObject") - public List getTsObject() { - return tsObject; - } - - /** - * Setter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @param tsObject Value for List of TsObjectInput - */ - @JsonSetter("tsObject") - public void setTsObject(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Converts this TspublicRestV2MetadataTagAssignRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataTagAssignRequest [" + "tsObject=" + tsObject + ", name=" - + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagAssignRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataTagAssignRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(tsObject) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataTagAssignRequest}. - */ - public static class Builder { - private List tsObject; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - */ - public Builder(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Setter for tsObject. - * @param tsObject List of TsObjectInput value for tsObject. - * @return Builder - */ - public Builder tsObject(List tsObject) { - this.tsObject = tsObject; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagAssignRequest} object using the set fields. - * @return {@link TspublicRestV2MetadataTagAssignRequest} - */ - public TspublicRestV2MetadataTagAssignRequest build() { - return new TspublicRestV2MetadataTagAssignRequest(tsObject, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagCreateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagCreateRequest.java deleted file mode 100644 index cb1a15835..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagCreateRequest.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2MetadataTagCreateRequest type. - */ -public class TspublicRestV2MetadataTagCreateRequest { - private String name; - private String color; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataTagCreateRequest() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param color String value for color. - */ - public TspublicRestV2MetadataTagCreateRequest( - String name, - String color) { - this.name = name; - this.color = color; - } - - /** - * Getter for Name. - * Name of the tag - * @return Returns the String - */ - @JsonGetter("name") - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the tag - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Color. - * Hex color code to be assigned to the tag - * @return Returns the String - */ - @JsonGetter("color") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getColor() { - return color; - } - - /** - * Setter for Color. - * Hex color code to be assigned to the tag - * @param color Value for String - */ - @JsonSetter("color") - public void setColor(String color) { - this.color = color; - } - - /** - * Converts this TspublicRestV2MetadataTagCreateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataTagCreateRequest [" + "name=" + name + ", color=" + color - + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagCreateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataTagCreateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(name) - .color(getColor()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataTagCreateRequest}. - */ - public static class Builder { - private String name; - private String color; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param name String value for name. - */ - public Builder(String name) { - this.name = name; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for color. - * @param color String value for color. - * @return Builder - */ - public Builder color(String color) { - this.color = color; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagCreateRequest} object using the set fields. - * @return {@link TspublicRestV2MetadataTagCreateRequest} - */ - public TspublicRestV2MetadataTagCreateRequest build() { - return new TspublicRestV2MetadataTagCreateRequest(name, color); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUnassignRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUnassignRequest.java deleted file mode 100644 index 3abca62ae..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUnassignRequest.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataTagUnassignRequest type. - */ -public class TspublicRestV2MetadataTagUnassignRequest { - private String name; - private String id; - private List tsObject; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataTagUnassignRequest() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2MetadataTagUnassignRequest( - List tsObject, - String name, - String id) { - this.name = name; - this.id = id; - this.tsObject = tsObject; - } - - /** - * Getter for Name. - * Name of the tag - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the tag - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the tag - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the tag - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @return Returns the List of TsObjectInput - */ - @JsonGetter("tsObject") - public List getTsObject() { - return tsObject; - } - - /** - * Setter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @param tsObject Value for List of TsObjectInput - */ - @JsonSetter("tsObject") - public void setTsObject(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Converts this TspublicRestV2MetadataTagUnassignRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataTagUnassignRequest [" + "tsObject=" + tsObject + ", name=" - + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagUnassignRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataTagUnassignRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(tsObject) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataTagUnassignRequest}. - */ - public static class Builder { - private List tsObject; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectInput value for tsObject. - */ - public Builder(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Setter for tsObject. - * @param tsObject List of TsObjectInput value for tsObject. - * @return Builder - */ - public Builder tsObject(List tsObject) { - this.tsObject = tsObject; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagUnassignRequest} object using the set - * fields. - * @return {@link TspublicRestV2MetadataTagUnassignRequest} - */ - public TspublicRestV2MetadataTagUnassignRequest build() { - return new TspublicRestV2MetadataTagUnassignRequest(tsObject, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUpdateRequest.java deleted file mode 100644 index 10413fbb5..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTagUpdateRequest.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2MetadataTagUpdateRequest type. - */ -public class TspublicRestV2MetadataTagUpdateRequest { - private String name; - private String id; - private String color; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataTagUpdateRequest() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param color String value for color. - */ - public TspublicRestV2MetadataTagUpdateRequest( - String name, - String id, - String color) { - this.name = name; - this.id = id; - this.color = color; - } - - /** - * Getter for Name. - * Name of the tag - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the tag - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the tag - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the tag - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Color. - * Hex color code to be assigned to the tag - * @return Returns the String - */ - @JsonGetter("color") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getColor() { - return color; - } - - /** - * Setter for Color. - * Hex color code to be assigned to the tag - * @param color Value for String - */ - @JsonSetter("color") - public void setColor(String color) { - this.color = color; - } - - /** - * Converts this TspublicRestV2MetadataTagUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataTagUpdateRequest [" + "name=" + name + ", id=" + id - + ", color=" + color + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataTagUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .color(getColor()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataTagUpdateRequest}. - */ - public static class Builder { - private String name; - private String id; - private String color; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for color. - * @param color String value for color. - * @return Builder - */ - public Builder color(String color) { - this.color = color; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTagUpdateRequest} object using the set fields. - * @return {@link TspublicRestV2MetadataTagUpdateRequest} - */ - public TspublicRestV2MetadataTagUpdateRequest build() { - return new TspublicRestV2MetadataTagUpdateRequest(name, id, color); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlExportRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlExportRequest.java deleted file mode 100644 index 626d7b640..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlExportRequest.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataTmlExportRequest type. - */ -public class TspublicRestV2MetadataTmlExportRequest { - private List id; - private FormatType3Enum formatType; - private Boolean exportAssociated; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataTmlExportRequest() { - formatType = FormatType3Enum.YAML; - exportAssociated = false; - } - - /** - * Initialization constructor. - * @param id List of String value for id. - * @param formatType FormatType3Enum value for formatType. - * @param exportAssociated Boolean value for exportAssociated. - */ - public TspublicRestV2MetadataTmlExportRequest( - List id, - FormatType3Enum formatType, - Boolean exportAssociated) { - this.id = id; - this.formatType = formatType; - this.exportAssociated = exportAssociated; - } - - /** - * Getter for Id. - * A JSON array of GUIDs of the objects. - * @return Returns the List of String - */ - @JsonGetter("id") - public List getId() { - return id; - } - - /** - * Setter for Id. - * A JSON array of GUIDs of the objects. - * @param id Value for List of String - */ - @JsonSetter("id") - public void setId(List id) { - this.id = id; - } - - /** - * Getter for FormatType. - * The format in which to export the objects - * @return Returns the FormatType3Enum - */ - @JsonGetter("formatType") - @JsonInclude(JsonInclude.Include.NON_NULL) - public FormatType3Enum getFormatType() { - return formatType; - } - - /** - * Setter for FormatType. - * The format in which to export the objects - * @param formatType Value for FormatType3Enum - */ - @JsonSetter("formatType") - public void setFormatType(FormatType3Enum formatType) { - this.formatType = formatType; - } - - /** - * Getter for ExportAssociated. - * Specifies if you would like to export the associated objects. To export the objects - * associated with the objects specified in id, set the value to true. When set to true, the API - * exports any underlying worksheets, tables, or views for a given object. By default, the API - * does not export these underlying objects - * @return Returns the Boolean - */ - @JsonGetter("exportAssociated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getExportAssociated() { - return exportAssociated; - } - - /** - * Setter for ExportAssociated. - * Specifies if you would like to export the associated objects. To export the objects - * associated with the objects specified in id, set the value to true. When set to true, the API - * exports any underlying worksheets, tables, or views for a given object. By default, the API - * does not export these underlying objects - * @param exportAssociated Value for Boolean - */ - @JsonSetter("exportAssociated") - public void setExportAssociated(Boolean exportAssociated) { - this.exportAssociated = exportAssociated; - } - - /** - * Converts this TspublicRestV2MetadataTmlExportRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataTmlExportRequest [" + "id=" + id + ", formatType=" - + formatType + ", exportAssociated=" + exportAssociated + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTmlExportRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataTmlExportRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id) - .formatType(getFormatType()) - .exportAssociated(getExportAssociated()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataTmlExportRequest}. - */ - public static class Builder { - private List id; - private FormatType3Enum formatType = FormatType3Enum.YAML; - private Boolean exportAssociated = false; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id List of String value for id. - */ - public Builder(List id) { - this.id = id; - } - - /** - * Setter for id. - * @param id List of String value for id. - * @return Builder - */ - public Builder id(List id) { - this.id = id; - return this; - } - - /** - * Setter for formatType. - * @param formatType FormatType3Enum value for formatType. - * @return Builder - */ - public Builder formatType(FormatType3Enum formatType) { - this.formatType = formatType; - return this; - } - - /** - * Setter for exportAssociated. - * @param exportAssociated Boolean value for exportAssociated. - * @return Builder - */ - public Builder exportAssociated(Boolean exportAssociated) { - this.exportAssociated = exportAssociated; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTmlExportRequest} object using the set fields. - * @return {@link TspublicRestV2MetadataTmlExportRequest} - */ - public TspublicRestV2MetadataTmlExportRequest build() { - return new TspublicRestV2MetadataTmlExportRequest(id, formatType, exportAssociated); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlImportRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlImportRequest.java deleted file mode 100644 index 98043dc02..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2MetadataTmlImportRequest.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2MetadataTmlImportRequest type. - */ -public class TspublicRestV2MetadataTmlImportRequest { - private List objectTML; - private ImportPolicyEnum importPolicy; - private Boolean forceCreate; - - /** - * Default constructor. - */ - public TspublicRestV2MetadataTmlImportRequest() { - importPolicy = ImportPolicyEnum.PARTIAL; - forceCreate = false; - } - - /** - * Initialization constructor. - * @param objectTML List of String value for objectTML. - * @param importPolicy ImportPolicyEnum value for importPolicy. - * @param forceCreate Boolean value for forceCreate. - */ - public TspublicRestV2MetadataTmlImportRequest( - List objectTML, - ImportPolicyEnum importPolicy, - Boolean forceCreate) { - this.objectTML = objectTML; - this.importPolicy = importPolicy; - this.forceCreate = forceCreate; - } - - /** - * Getter for ObjectTML. - * A string array of TML objects to upload, in YAML or JSON format. If TML is in YAML format, - * then use escape characters for quotes and new line characters. Example TML: guid: - * 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: - * PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: - * C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: - * DONT_INDEX\n db_column_properties:\n data_type: INT64\n If TML is in JSON format, then use - * escape characters for quotes. Example TML: {\\"guid\\": - * \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", - * \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", - * \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": - * \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": - * \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, - * \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', - * @return Returns the List of String - */ - @JsonGetter("objectTML") - public List getObjectTML() { - return objectTML; - } - - /** - * Setter for ObjectTML. - * A string array of TML objects to upload, in YAML or JSON format. If TML is in YAML format, - * then use escape characters for quotes and new line characters. Example TML: guid: - * 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: - * PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: - * C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: - * DONT_INDEX\n db_column_properties:\n data_type: INT64\n If TML is in JSON format, then use - * escape characters for quotes. Example TML: {\\"guid\\": - * \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", - * \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", - * \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": - * \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": - * \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, - * \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', - * @param objectTML Value for List of String - */ - @JsonSetter("objectTML") - public void setObjectTML(List objectTML) { - this.objectTML = objectTML; - } - - /** - * Getter for ImportPolicy. - * Policy to follow during import - * @return Returns the ImportPolicyEnum - */ - @JsonGetter("importPolicy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public ImportPolicyEnum getImportPolicy() { - return importPolicy; - } - - /** - * Setter for ImportPolicy. - * Policy to follow during import - * @param importPolicy Value for ImportPolicyEnum - */ - @JsonSetter("importPolicy") - public void setImportPolicy(ImportPolicyEnum importPolicy) { - this.importPolicy = importPolicy; - } - - /** - * Getter for ForceCreate. - * Specifies if you are updating or creating objects. To create new objects, specify true. By - * default, ThoughtSpot updates existing objects that have the same GUID as the objects you are - * importing. When set to true, the GUID property in the imported TML is replaced on the server, - * and the response headers will include the id_guid property with the GUID of the new object. - * The new object will be assigned a new GUID, even if the imported TML file included a guid - * value. Thus, there is no need to include the guid in the TML file if you are using - * forceCreate=true. - * @return Returns the Boolean - */ - @JsonGetter("forceCreate") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getForceCreate() { - return forceCreate; - } - - /** - * Setter for ForceCreate. - * Specifies if you are updating or creating objects. To create new objects, specify true. By - * default, ThoughtSpot updates existing objects that have the same GUID as the objects you are - * importing. When set to true, the GUID property in the imported TML is replaced on the server, - * and the response headers will include the id_guid property with the GUID of the new object. - * The new object will be assigned a new GUID, even if the imported TML file included a guid - * value. Thus, there is no need to include the guid in the TML file if you are using - * forceCreate=true. - * @param forceCreate Value for Boolean - */ - @JsonSetter("forceCreate") - public void setForceCreate(Boolean forceCreate) { - this.forceCreate = forceCreate; - } - - /** - * Converts this TspublicRestV2MetadataTmlImportRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2MetadataTmlImportRequest [" + "objectTML=" + objectTML - + ", importPolicy=" + importPolicy + ", forceCreate=" + forceCreate + "]"; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTmlImportRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2MetadataTmlImportRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(objectTML) - .importPolicy(getImportPolicy()) - .forceCreate(getForceCreate()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2MetadataTmlImportRequest}. - */ - public static class Builder { - private List objectTML; - private ImportPolicyEnum importPolicy = ImportPolicyEnum.PARTIAL; - private Boolean forceCreate = false; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param objectTML List of String value for objectTML. - */ - public Builder(List objectTML) { - this.objectTML = objectTML; - } - - /** - * Setter for objectTML. - * @param objectTML List of String value for objectTML. - * @return Builder - */ - public Builder objectTML(List objectTML) { - this.objectTML = objectTML; - return this; - } - - /** - * Setter for importPolicy. - * @param importPolicy ImportPolicyEnum value for importPolicy. - * @return Builder - */ - public Builder importPolicy(ImportPolicyEnum importPolicy) { - this.importPolicy = importPolicy; - return this; - } - - /** - * Setter for forceCreate. - * @param forceCreate Boolean value for forceCreate. - * @return Builder - */ - public Builder forceCreate(Boolean forceCreate) { - this.forceCreate = forceCreate; - return this; - } - - /** - * Builds a new {@link TspublicRestV2MetadataTmlImportRequest} object using the set fields. - * @return {@link TspublicRestV2MetadataTmlImportRequest} - */ - public TspublicRestV2MetadataTmlImportRequest build() { - return new TspublicRestV2MetadataTmlImportRequest(objectTML, importPolicy, forceCreate); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2OrgCreateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2OrgCreateRequest.java deleted file mode 100644 index 4c167f3e6..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2OrgCreateRequest.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2OrgCreateRequest type. - */ -public class TspublicRestV2OrgCreateRequest { - private String name; - private String description; - - /** - * Default constructor. - */ - public TspublicRestV2OrgCreateRequest() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param description String value for description. - */ - public TspublicRestV2OrgCreateRequest( - String name, - String description) { - this.name = name; - this.description = description; - } - - /** - * Getter for Name. - * Name of the organization. - * @return Returns the String - */ - @JsonGetter("name") - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the organization. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Description. - * Description text for the organization. - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description text for the organization. - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Converts this TspublicRestV2OrgCreateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2OrgCreateRequest [" + "name=" + name + ", description=" + description - + "]"; - } - - /** - * Builds a new {@link TspublicRestV2OrgCreateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2OrgCreateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(name) - .description(getDescription()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2OrgCreateRequest}. - */ - public static class Builder { - private String name; - private String description; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param name String value for name. - */ - public Builder(String name) { - this.name = name; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Builds a new {@link TspublicRestV2OrgCreateRequest} object using the set fields. - * @return {@link TspublicRestV2OrgCreateRequest} - */ - public TspublicRestV2OrgCreateRequest build() { - return new TspublicRestV2OrgCreateRequest(name, description); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2OrgSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2OrgSearchRequest.java deleted file mode 100644 index 6d8e7b40a..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2OrgSearchRequest.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2OrgSearchRequest type. - */ -public class TspublicRestV2OrgSearchRequest { - private String name; - private Integer id; - private Boolean showDeleted; - - /** - * Default constructor. - */ - public TspublicRestV2OrgSearchRequest() { - showDeleted = false; - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id Integer value for id. - * @param showDeleted Boolean value for showDeleted. - */ - public TspublicRestV2OrgSearchRequest( - String name, - Integer id, - Boolean showDeleted) { - this.name = name; - this.id = id; - this.showDeleted = showDeleted; - } - - /** - * Getter for Name. - * Name of the organization. - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the organization. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The ID of the organization. - * @return Returns the Integer - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getId() { - return id; - } - - /** - * Setter for Id. - * The ID of the organization. - * @param id Value for Integer - */ - @JsonSetter("id") - public void setId(Integer id) { - this.id = id; - } - - /** - * Getter for ShowDeleted. - * When set to true, the response will include the details of deleted organization also. - * @return Returns the Boolean - */ - @JsonGetter("showDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getShowDeleted() { - return showDeleted; - } - - /** - * Setter for ShowDeleted. - * When set to true, the response will include the details of deleted organization also. - * @param showDeleted Value for Boolean - */ - @JsonSetter("showDeleted") - public void setShowDeleted(Boolean showDeleted) { - this.showDeleted = showDeleted; - } - - /** - * Converts this TspublicRestV2OrgSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2OrgSearchRequest [" + "name=" + name + ", id=" + id + ", showDeleted=" - + showDeleted + "]"; - } - - /** - * Builds a new {@link TspublicRestV2OrgSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2OrgSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .showDeleted(getShowDeleted()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2OrgSearchRequest}. - */ - public static class Builder { - private String name; - private Integer id; - private Boolean showDeleted = false; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id Integer value for id. - * @return Builder - */ - public Builder id(Integer id) { - this.id = id; - return this; - } - - /** - * Setter for showDeleted. - * @param showDeleted Boolean value for showDeleted. - * @return Builder - */ - public Builder showDeleted(Boolean showDeleted) { - this.showDeleted = showDeleted; - return this; - } - - /** - * Builds a new {@link TspublicRestV2OrgSearchRequest} object using the set fields. - * @return {@link TspublicRestV2OrgSearchRequest} - */ - public TspublicRestV2OrgSearchRequest build() { - return new TspublicRestV2OrgSearchRequest(name, id, showDeleted); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2OrgUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2OrgUpdateRequest.java deleted file mode 100644 index 47e71651c..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2OrgUpdateRequest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2OrgUpdateRequest type. - */ -public class TspublicRestV2OrgUpdateRequest { - private String name; - private Integer id; - private String description; - private Boolean active; - - /** - * Default constructor. - */ - public TspublicRestV2OrgUpdateRequest() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id Integer value for id. - * @param description String value for description. - * @param active Boolean value for active. - */ - public TspublicRestV2OrgUpdateRequest( - String name, - Integer id, - String description, - Boolean active) { - this.name = name; - this.id = id; - this.description = description; - this.active = active; - } - - /** - * Getter for Name. - * Name of the organization. - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the organization. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The ID of the organization. - * @return Returns the Integer - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getId() { - return id; - } - - /** - * Setter for Id. - * The ID of the organization. - * @param id Value for Integer - */ - @JsonSetter("id") - public void setId(Integer id) { - this.id = id; - } - - /** - * Getter for Description. - * Description text for the organization. - * @return Returns the String - */ - @JsonGetter("description") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDescription() { - return description; - } - - /** - * Setter for Description. - * Description text for the organization. - * @param description Value for String - */ - @JsonSetter("description") - public void setDescription(String description) { - this.description = description; - } - - /** - * Getter for Active. - * Status of the organization. - * @return Returns the Boolean - */ - @JsonGetter("active") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getActive() { - return active; - } - - /** - * Setter for Active. - * Status of the organization. - * @param active Value for Boolean - */ - @JsonSetter("active") - public void setActive(Boolean active) { - this.active = active; - } - - /** - * Converts this TspublicRestV2OrgUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2OrgUpdateRequest [" + "name=" + name + ", id=" + id + ", description=" - + description + ", active=" + active + "]"; - } - - /** - * Builds a new {@link TspublicRestV2OrgUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2OrgUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .description(getDescription()) - .active(getActive()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2OrgUpdateRequest}. - */ - public static class Builder { - private String name; - private Integer id; - private String description; - private Boolean active; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id Integer value for id. - * @return Builder - */ - public Builder id(Integer id) { - this.id = id; - return this; - } - - /** - * Setter for description. - * @param description String value for description. - * @return Builder - */ - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * Setter for active. - * @param active Boolean value for active. - * @return Builder - */ - public Builder active(Boolean active) { - this.active = active; - return this; - } - - /** - * Builds a new {@link TspublicRestV2OrgUpdateRequest} object using the set fields. - * @return {@link TspublicRestV2OrgUpdateRequest} - */ - public TspublicRestV2OrgUpdateRequest build() { - return new TspublicRestV2OrgUpdateRequest(name, id, description, active); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.java deleted file mode 100644 index b1e65cd3f..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionPrincipalSearchRequest.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2SecurityPermissionPrincipalSearchRequest type. - */ -public class TspublicRestV2SecurityPermissionPrincipalSearchRequest { - private List principal; - private List tsObject; - - /** - * Default constructor. - */ - public TspublicRestV2SecurityPermissionPrincipalSearchRequest() { - } - - /** - * Initialization constructor. - * @param principal List of UserNameAndIDInput value for principal. - * @param tsObject List of TsObjectSearchInput value for tsObject. - */ - public TspublicRestV2SecurityPermissionPrincipalSearchRequest( - List principal, - List tsObject) { - this.principal = principal; - this.tsObject = tsObject; - } - - /** - * Getter for Principal. - * A JSON array of principal names or GUIDs to be included in the request. When both are given - * then id is considered. - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("principal") - public List getPrincipal() { - return principal; - } - - /** - * Setter for Principal. - * A JSON array of principal names or GUIDs to be included in the request. When both are given - * then id is considered. - * @param principal Value for List of UserNameAndIDInput - */ - @JsonSetter("principal") - public void setPrincipal(List principal) { - this.principal = principal; - } - - /** - * Getter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @return Returns the List of TsObjectSearchInput - */ - @JsonGetter("tsObject") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTsObject() { - return tsObject; - } - - /** - * Setter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @param tsObject Value for List of TsObjectSearchInput - */ - @JsonSetter("tsObject") - public void setTsObject(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Converts this TspublicRestV2SecurityPermissionPrincipalSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2SecurityPermissionPrincipalSearchRequest [" + "principal=" + principal - + ", tsObject=" + tsObject + "]"; - } - - /** - * Builds a new {@link TspublicRestV2SecurityPermissionPrincipalSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2SecurityPermissionPrincipalSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(principal) - .tsObject(getTsObject()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2SecurityPermissionPrincipalSearchRequest}. - */ - public static class Builder { - private List principal; - private List tsObject; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param principal List of UserNameAndIDInput value for principal. - */ - public Builder(List principal) { - this.principal = principal; - } - - /** - * Setter for principal. - * @param principal List of UserNameAndIDInput value for principal. - * @return Builder - */ - public Builder principal(List principal) { - this.principal = principal; - return this; - } - - /** - * Setter for tsObject. - * @param tsObject List of TsObjectSearchInput value for tsObject. - * @return Builder - */ - public Builder tsObject(List tsObject) { - this.tsObject = tsObject; - return this; - } - - /** - * Builds a new {@link TspublicRestV2SecurityPermissionPrincipalSearchRequest} object using - * the set fields. - * @return {@link TspublicRestV2SecurityPermissionPrincipalSearchRequest} - */ - public TspublicRestV2SecurityPermissionPrincipalSearchRequest build() { - return new TspublicRestV2SecurityPermissionPrincipalSearchRequest(principal, tsObject); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.java deleted file mode 100644 index dfa6c63c1..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2SecurityPermissionTsobjectSearchRequest.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2SecurityPermissionTsobjectSearchRequest type. - */ -public class TspublicRestV2SecurityPermissionTsobjectSearchRequest { - private List tsObject; - private List principal; - private Boolean includeDependent; - - /** - * Default constructor. - */ - public TspublicRestV2SecurityPermissionTsobjectSearchRequest() { - includeDependent = false; - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectSearchInput value for tsObject. - * @param principal List of UserNameAndIDInput value for principal. - * @param includeDependent Boolean value for includeDependent. - */ - public TspublicRestV2SecurityPermissionTsobjectSearchRequest( - List tsObject, - List principal, - Boolean includeDependent) { - this.tsObject = tsObject; - this.principal = principal; - this.includeDependent = includeDependent; - } - - /** - * Getter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @return Returns the List of TsObjectSearchInput - */ - @JsonGetter("tsObject") - public List getTsObject() { - return tsObject; - } - - /** - * Setter for TsObject. - * A JSON Array of GUIDs and type of metadata object. - * @param tsObject Value for List of TsObjectSearchInput - */ - @JsonSetter("tsObject") - public void setTsObject(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Getter for Principal. - * A JSON array of principal names or GUIDs. When both are given then id is considered. - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("principal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrincipal() { - return principal; - } - - /** - * Setter for Principal. - * A JSON array of principal names or GUIDs. When both are given then id is considered. - * @param principal Value for List of UserNameAndIDInput - */ - @JsonSetter("principal") - public void setPrincipal(List principal) { - this.principal = principal; - } - - /** - * Getter for IncludeDependent. - * When this field is set to true, the API response includes the permission details for the - * dependent objects. - * @return Returns the Boolean - */ - @JsonGetter("includeDependent") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludeDependent() { - return includeDependent; - } - - /** - * Setter for IncludeDependent. - * When this field is set to true, the API response includes the permission details for the - * dependent objects. - * @param includeDependent Value for Boolean - */ - @JsonSetter("includeDependent") - public void setIncludeDependent(Boolean includeDependent) { - this.includeDependent = includeDependent; - } - - /** - * Converts this TspublicRestV2SecurityPermissionTsobjectSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2SecurityPermissionTsobjectSearchRequest [" + "tsObject=" + tsObject - + ", principal=" + principal + ", includeDependent=" + includeDependent + "]"; - } - - /** - * Builds a new {@link TspublicRestV2SecurityPermissionTsobjectSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2SecurityPermissionTsobjectSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(tsObject) - .principal(getPrincipal()) - .includeDependent(getIncludeDependent()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2SecurityPermissionTsobjectSearchRequest}. - */ - public static class Builder { - private List tsObject; - private List principal; - private Boolean includeDependent = false; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param tsObject List of TsObjectSearchInput value for tsObject. - */ - public Builder(List tsObject) { - this.tsObject = tsObject; - } - - /** - * Setter for tsObject. - * @param tsObject List of TsObjectSearchInput value for tsObject. - * @return Builder - */ - public Builder tsObject(List tsObject) { - this.tsObject = tsObject; - return this; - } - - /** - * Setter for principal. - * @param principal List of UserNameAndIDInput value for principal. - * @return Builder - */ - public Builder principal(List principal) { - this.principal = principal; - return this; - } - - /** - * Setter for includeDependent. - * @param includeDependent Boolean value for includeDependent. - * @return Builder - */ - public Builder includeDependent(Boolean includeDependent) { - this.includeDependent = includeDependent; - return this; - } - - /** - * Builds a new {@link TspublicRestV2SecurityPermissionTsobjectSearchRequest} object using - * the set fields. - * @return {@link TspublicRestV2SecurityPermissionTsobjectSearchRequest} - */ - public TspublicRestV2SecurityPermissionTsobjectSearchRequest build() { - return new TspublicRestV2SecurityPermissionTsobjectSearchRequest(tsObject, principal, - includeDependent); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2SecurityShareTsobjectRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2SecurityShareTsobjectRequest.java deleted file mode 100644 index eadaddcf7..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2SecurityShareTsobjectRequest.java +++ /dev/null @@ -1,355 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2SecurityShareTsobjectRequest type. - */ -public class TspublicRestV2SecurityShareTsobjectRequest { - private Type18Enum type; - private List id; - private String permission; - private List emailId; - private Boolean notify; - private String message; - private Boolean includeCustomEmbedUrl; - - /** - * Default constructor. - */ - public TspublicRestV2SecurityShareTsobjectRequest() { - notify = true; - includeCustomEmbedUrl = false; - } - - /** - * Initialization constructor. - * @param type Type18Enum value for type. - * @param id List of String value for id. - * @param permission String value for permission. - * @param emailId List of String value for emailId. - * @param notify Boolean value for notify. - * @param message String value for message. - * @param includeCustomEmbedUrl Boolean value for includeCustomEmbedUrl. - */ - public TspublicRestV2SecurityShareTsobjectRequest( - Type18Enum type, - List id, - String permission, - List emailId, - Boolean notify, - String message, - Boolean includeCustomEmbedUrl) { - this.type = type; - this.id = id; - this.permission = permission; - this.emailId = emailId; - this.notify = notify; - this.message = message; - this.includeCustomEmbedUrl = includeCustomEmbedUrl; - } - - /** - * Getter for Type. - * Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - * @return Returns the Type18Enum - */ - @JsonGetter("type") - public Type18Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - * @param type Value for Type18Enum - */ - @JsonSetter("type") - public void setType(Type18Enum type) { - this.type = type; - } - - /** - * Getter for Id. - * A JSON array of the GUIDs of the objects to be shared - * @return Returns the List of String - */ - @JsonGetter("id") - public List getId() { - return id; - } - - /** - * Setter for Id. - * A JSON array of the GUIDs of the objects to be shared - * @param id Value for List of String - */ - @JsonSetter("id") - public void setId(List id) { - this.id = id; - } - - /** - * Getter for Permission. - * A JSON object with GUIDs of user and user group, and the type of access privilge. You can - * provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user - * group can view the shared object, whereas MODIFY access enables users to modify the object. - * To remove access to a shared object, you can set the shareMode in the permission string to - * NO_ACCESS. Example: {"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": - * "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, - * "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} - * @return Returns the String - */ - @JsonGetter("permission") - public String getPermission() { - return permission; - } - - /** - * Setter for Permission. - * A JSON object with GUIDs of user and user group, and the type of access privilge. You can - * provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user - * group can view the shared object, whereas MODIFY access enables users to modify the object. - * To remove access to a shared object, you can set the shareMode in the permission string to - * NO_ACCESS. Example: {"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": - * "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, - * "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} - * @param permission Value for String - */ - @JsonSetter("permission") - public void setPermission(String permission) { - this.permission = permission; - } - - /** - * Getter for EmailId. - * The email addresses that should ne notified when the objects are shared. - * @return Returns the List of String - */ - @JsonGetter("emailId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getEmailId() { - return emailId; - } - - /** - * Setter for EmailId. - * The email addresses that should ne notified when the objects are shared. - * @param emailId Value for List of String - */ - @JsonSetter("emailId") - public void setEmailId(List emailId) { - this.emailId = emailId; - } - - /** - * Getter for Notify. - * When set to true, a notification is sent to the users after an object is shared. - * @return Returns the Boolean - */ - @JsonGetter("notify") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getNotify() { - return notify; - } - - /** - * Setter for Notify. - * When set to true, a notification is sent to the users after an object is shared. - * @param notify Value for Boolean - */ - @JsonSetter("notify") - public void setNotify(Boolean notify) { - this.notify = notify; - } - - /** - * Getter for Message. - * The message text to send in the notification email. - * @return Returns the String - */ - @JsonGetter("message") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getMessage() { - return message; - } - - /** - * Setter for Message. - * The message text to send in the notification email. - * @param message Value for String - */ - @JsonSetter("message") - public void setMessage(String message) { - this.message = message; - } - - /** - * Getter for IncludeCustomEmbedUrl. - * When set to true, ThoughtSpot sends a link with the host application context to allow users - * to access the shared object from their ThoughtSpot embedded instance. - * @return Returns the Boolean - */ - @JsonGetter("includeCustomEmbedUrl") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludeCustomEmbedUrl() { - return includeCustomEmbedUrl; - } - - /** - * Setter for IncludeCustomEmbedUrl. - * When set to true, ThoughtSpot sends a link with the host application context to allow users - * to access the shared object from their ThoughtSpot embedded instance. - * @param includeCustomEmbedUrl Value for Boolean - */ - @JsonSetter("includeCustomEmbedUrl") - public void setIncludeCustomEmbedUrl(Boolean includeCustomEmbedUrl) { - this.includeCustomEmbedUrl = includeCustomEmbedUrl; - } - - /** - * Converts this TspublicRestV2SecurityShareTsobjectRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2SecurityShareTsobjectRequest [" + "type=" + type + ", id=" + id - + ", permission=" + permission + ", emailId=" + emailId + ", notify=" + notify - + ", message=" + message + ", includeCustomEmbedUrl=" + includeCustomEmbedUrl + "]"; - } - - /** - * Builds a new {@link TspublicRestV2SecurityShareTsobjectRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2SecurityShareTsobjectRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(type, id, permission) - .emailId(getEmailId()) - .notify(getNotify()) - .message(getMessage()) - .includeCustomEmbedUrl(getIncludeCustomEmbedUrl()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2SecurityShareTsobjectRequest}. - */ - public static class Builder { - private Type18Enum type; - private List id; - private String permission; - private List emailId; - private Boolean notify = true; - private String message; - private Boolean includeCustomEmbedUrl = false; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param type Type18Enum value for type. - * @param id List of String value for id. - * @param permission String value for permission. - */ - public Builder(Type18Enum type, List id, String permission) { - this.type = type; - this.id = id; - this.permission = permission; - } - - /** - * Setter for type. - * @param type Type18Enum value for type. - * @return Builder - */ - public Builder type(Type18Enum type) { - this.type = type; - return this; - } - - /** - * Setter for id. - * @param id List of String value for id. - * @return Builder - */ - public Builder id(List id) { - this.id = id; - return this; - } - - /** - * Setter for permission. - * @param permission String value for permission. - * @return Builder - */ - public Builder permission(String permission) { - this.permission = permission; - return this; - } - - /** - * Setter for emailId. - * @param emailId List of String value for emailId. - * @return Builder - */ - public Builder emailId(List emailId) { - this.emailId = emailId; - return this; - } - - /** - * Setter for notify. - * @param notify Boolean value for notify. - * @return Builder - */ - public Builder notify(Boolean notify) { - this.notify = notify; - return this; - } - - /** - * Setter for message. - * @param message String value for message. - * @return Builder - */ - public Builder message(String message) { - this.message = message; - return this; - } - - /** - * Setter for includeCustomEmbedUrl. - * @param includeCustomEmbedUrl Boolean value for includeCustomEmbedUrl. - * @return Builder - */ - public Builder includeCustomEmbedUrl(Boolean includeCustomEmbedUrl) { - this.includeCustomEmbedUrl = includeCustomEmbedUrl; - return this; - } - - /** - * Builds a new {@link TspublicRestV2SecurityShareTsobjectRequest} object using the set - * fields. - * @return {@link TspublicRestV2SecurityShareTsobjectRequest} - */ - public TspublicRestV2SecurityShareTsobjectRequest build() { - return new TspublicRestV2SecurityShareTsobjectRequest(type, id, permission, emailId, - notify, message, includeCustomEmbedUrl); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2SecurityShareVisualizationRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2SecurityShareVisualizationRequest.java deleted file mode 100644 index 1a1782154..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2SecurityShareVisualizationRequest.java +++ /dev/null @@ -1,343 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2SecurityShareVisualizationRequest type. - */ -public class TspublicRestV2SecurityShareVisualizationRequest { - private String id; - private String vizId; - private List principalId; - private List emailId; - private Boolean notify; - private String message; - private Boolean includeCustomEmbedUrl; - - /** - * Default constructor. - */ - public TspublicRestV2SecurityShareVisualizationRequest() { - notify = true; - includeCustomEmbedUrl = false; - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param vizId String value for vizId. - * @param principalId List of String value for principalId. - * @param emailId List of String value for emailId. - * @param notify Boolean value for notify. - * @param message String value for message. - * @param includeCustomEmbedUrl Boolean value for includeCustomEmbedUrl. - */ - public TspublicRestV2SecurityShareVisualizationRequest( - String id, - String vizId, - List principalId, - List emailId, - Boolean notify, - String message, - Boolean includeCustomEmbedUrl) { - this.id = id; - this.vizId = vizId; - this.principalId = principalId; - this.emailId = emailId; - this.notify = notify; - this.message = message; - this.includeCustomEmbedUrl = includeCustomEmbedUrl; - } - - /** - * Getter for Id. - * A JSON array of the GUIDs of the objects to be shared - * @return Returns the String - */ - @JsonGetter("id") - public String getId() { - return id; - } - - /** - * Setter for Id. - * A JSON array of the GUIDs of the objects to be shared - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for VizId. - * The GUID of visualization - * @return Returns the String - */ - @JsonGetter("vizId") - public String getVizId() { - return vizId; - } - - /** - * Setter for VizId. - * The GUID of visualization - * @param vizId Value for String - */ - @JsonSetter("vizId") - public void setVizId(String vizId) { - this.vizId = vizId; - } - - /** - * Getter for PrincipalId. - * The GUID of the users and user groups with which you want to share the visualization - * @return Returns the List of String - */ - @JsonGetter("principalId") - public List getPrincipalId() { - return principalId; - } - - /** - * Setter for PrincipalId. - * The GUID of the users and user groups with which you want to share the visualization - * @param principalId Value for List of String - */ - @JsonSetter("principalId") - public void setPrincipalId(List principalId) { - this.principalId = principalId; - } - - /** - * Getter for EmailId. - * The email addresses that should ne notified when the objects are shared - * @return Returns the List of String - */ - @JsonGetter("emailId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getEmailId() { - return emailId; - } - - /** - * Setter for EmailId. - * The email addresses that should ne notified when the objects are shared - * @param emailId Value for List of String - */ - @JsonSetter("emailId") - public void setEmailId(List emailId) { - this.emailId = emailId; - } - - /** - * Getter for Notify. - * When set to true, a notification is sent to the users after an object is shared. - * @return Returns the Boolean - */ - @JsonGetter("notify") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getNotify() { - return notify; - } - - /** - * Setter for Notify. - * When set to true, a notification is sent to the users after an object is shared. - * @param notify Value for Boolean - */ - @JsonSetter("notify") - public void setNotify(Boolean notify) { - this.notify = notify; - } - - /** - * Getter for Message. - * The message text to send in the notification email. - * @return Returns the String - */ - @JsonGetter("message") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getMessage() { - return message; - } - - /** - * Setter for Message. - * The message text to send in the notification email. - * @param message Value for String - */ - @JsonSetter("message") - public void setMessage(String message) { - this.message = message; - } - - /** - * Getter for IncludeCustomEmbedUrl. - * When set to true, ThoughtSpot sends a link with the host application context to allow users - * to access the shared object from their ThoughtSpot embedded instance. - * @return Returns the Boolean - */ - @JsonGetter("includeCustomEmbedUrl") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIncludeCustomEmbedUrl() { - return includeCustomEmbedUrl; - } - - /** - * Setter for IncludeCustomEmbedUrl. - * When set to true, ThoughtSpot sends a link with the host application context to allow users - * to access the shared object from their ThoughtSpot embedded instance. - * @param includeCustomEmbedUrl Value for Boolean - */ - @JsonSetter("includeCustomEmbedUrl") - public void setIncludeCustomEmbedUrl(Boolean includeCustomEmbedUrl) { - this.includeCustomEmbedUrl = includeCustomEmbedUrl; - } - - /** - * Converts this TspublicRestV2SecurityShareVisualizationRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2SecurityShareVisualizationRequest [" + "id=" + id + ", vizId=" + vizId - + ", principalId=" + principalId + ", emailId=" + emailId + ", notify=" + notify - + ", message=" + message + ", includeCustomEmbedUrl=" + includeCustomEmbedUrl + "]"; - } - - /** - * Builds a new {@link TspublicRestV2SecurityShareVisualizationRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2SecurityShareVisualizationRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(id, vizId, principalId) - .emailId(getEmailId()) - .notify(getNotify()) - .message(getMessage()) - .includeCustomEmbedUrl(getIncludeCustomEmbedUrl()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2SecurityShareVisualizationRequest}. - */ - public static class Builder { - private String id; - private String vizId; - private List principalId; - private List emailId; - private Boolean notify = true; - private String message; - private Boolean includeCustomEmbedUrl = false; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param id String value for id. - * @param vizId String value for vizId. - * @param principalId List of String value for principalId. - */ - public Builder(String id, String vizId, List principalId) { - this.id = id; - this.vizId = vizId; - this.principalId = principalId; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for vizId. - * @param vizId String value for vizId. - * @return Builder - */ - public Builder vizId(String vizId) { - this.vizId = vizId; - return this; - } - - /** - * Setter for principalId. - * @param principalId List of String value for principalId. - * @return Builder - */ - public Builder principalId(List principalId) { - this.principalId = principalId; - return this; - } - - /** - * Setter for emailId. - * @param emailId List of String value for emailId. - * @return Builder - */ - public Builder emailId(List emailId) { - this.emailId = emailId; - return this; - } - - /** - * Setter for notify. - * @param notify Boolean value for notify. - * @return Builder - */ - public Builder notify(Boolean notify) { - this.notify = notify; - return this; - } - - /** - * Setter for message. - * @param message String value for message. - * @return Builder - */ - public Builder message(String message) { - this.message = message; - return this; - } - - /** - * Setter for includeCustomEmbedUrl. - * @param includeCustomEmbedUrl Boolean value for includeCustomEmbedUrl. - * @return Builder - */ - public Builder includeCustomEmbedUrl(Boolean includeCustomEmbedUrl) { - this.includeCustomEmbedUrl = includeCustomEmbedUrl; - return this; - } - - /** - * Builds a new {@link TspublicRestV2SecurityShareVisualizationRequest} object using the set - * fields. - * @return {@link TspublicRestV2SecurityShareVisualizationRequest} - */ - public TspublicRestV2SecurityShareVisualizationRequest build() { - return new TspublicRestV2SecurityShareVisualizationRequest(id, vizId, principalId, - emailId, notify, message, includeCustomEmbedUrl); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2UserAddgroupRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2UserAddgroupRequest.java deleted file mode 100644 index d1b122d19..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2UserAddgroupRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2UserAddgroupRequest type. - */ -public class TspublicRestV2UserAddgroupRequest { - private String name; - private String id; - private List groups; - - /** - * Default constructor. - */ - public TspublicRestV2UserAddgroupRequest() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2UserAddgroupRequest( - List groups, - String name, - String id) { - this.name = name; - this.id = id; - this.groups = groups; - } - - /** - * Getter for Name. - * User name of the user account - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * User name of the user account - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the user account - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the user account - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Converts this TspublicRestV2UserAddgroupRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2UserAddgroupRequest [" + "groups=" + groups + ", name=" + name - + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2UserAddgroupRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2UserAddgroupRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(groups) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2UserAddgroupRequest}. - */ - public static class Builder { - private List groups; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - */ - public Builder(List groups) { - this.groups = groups; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2UserAddgroupRequest} object using the set fields. - * @return {@link TspublicRestV2UserAddgroupRequest} - */ - public TspublicRestV2UserAddgroupRequest build() { - return new TspublicRestV2UserAddgroupRequest(groups, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2UserAddorgRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2UserAddorgRequest.java deleted file mode 100644 index 8c85aa834..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2UserAddorgRequest.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2UserAddorgRequest type. - */ -public class TspublicRestV2UserAddorgRequest { - private Integer orgId; - private List users; - - /** - * Default constructor. - */ - public TspublicRestV2UserAddorgRequest() { - } - - /** - * Initialization constructor. - * @param users List of UserNameAndIDInput value for users. - * @param orgId Integer value for orgId. - */ - public TspublicRestV2UserAddorgRequest( - List users, - Integer orgId) { - this.orgId = orgId; - this.users = users; - } - - /** - * Getter for OrgId. - * The ID of the organization. - * @return Returns the Integer - */ - @JsonGetter("orgId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getOrgId() { - return orgId; - } - - /** - * Setter for OrgId. - * The ID of the organization. - * @param orgId Value for Integer - */ - @JsonSetter("orgId") - public void setOrgId(Integer orgId) { - this.orgId = orgId; - } - - /** - * Getter for Users. - * Array of objects. A JSON array of name of users or GUIDs of users or both. When both are - * given then id is considered - * @return Returns the List of UserNameAndIDInput - */ - @JsonGetter("users") - public List getUsers() { - return users; - } - - /** - * Setter for Users. - * Array of objects. A JSON array of name of users or GUIDs of users or both. When both are - * given then id is considered - * @param users Value for List of UserNameAndIDInput - */ - @JsonSetter("users") - public void setUsers(List users) { - this.users = users; - } - - /** - * Converts this TspublicRestV2UserAddorgRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2UserAddorgRequest [" + "users=" + users + ", orgId=" + orgId + "]"; - } - - /** - * Builds a new {@link TspublicRestV2UserAddorgRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2UserAddorgRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(users) - .orgId(getOrgId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2UserAddorgRequest}. - */ - public static class Builder { - private List users; - private Integer orgId; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param users List of UserNameAndIDInput value for users. - */ - public Builder(List users) { - this.users = users; - } - - /** - * Setter for users. - * @param users List of UserNameAndIDInput value for users. - * @return Builder - */ - public Builder users(List users) { - this.users = users; - return this; - } - - /** - * Setter for orgId. - * @param orgId Integer value for orgId. - * @return Builder - */ - public Builder orgId(Integer orgId) { - this.orgId = orgId; - return this; - } - - /** - * Builds a new {@link TspublicRestV2UserAddorgRequest} object using the set fields. - * @return {@link TspublicRestV2UserAddorgRequest} - */ - public TspublicRestV2UserAddorgRequest build() { - return new TspublicRestV2UserAddorgRequest(users, orgId); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2UserChangepasswordRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2UserChangepasswordRequest.java deleted file mode 100644 index 45a2a2980..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2UserChangepasswordRequest.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for TspublicRestV2UserChangepasswordRequest type. - */ -public class TspublicRestV2UserChangepasswordRequest { - private String name; - private String id; - private String currentPassword; - private String newPassword; - - /** - * Default constructor. - */ - public TspublicRestV2UserChangepasswordRequest() { - } - - /** - * Initialization constructor. - * @param currentPassword String value for currentPassword. - * @param newPassword String value for newPassword. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2UserChangepasswordRequest( - String currentPassword, - String newPassword, - String name, - String id) { - this.name = name; - this.id = id; - this.currentPassword = currentPassword; - this.newPassword = newPassword; - } - - /** - * Getter for Name. - * User name of the user account. - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * User name of the user account. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the user account to query. - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the user account to query. - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for CurrentPassword. - * The current password of the user. - * @return Returns the String - */ - @JsonGetter("currentPassword") - public String getCurrentPassword() { - return currentPassword; - } - - /** - * Setter for CurrentPassword. - * The current password of the user. - * @param currentPassword Value for String - */ - @JsonSetter("currentPassword") - public void setCurrentPassword(String currentPassword) { - this.currentPassword = currentPassword; - } - - /** - * Getter for NewPassword. - * A new password for the user. - * @return Returns the String - */ - @JsonGetter("newPassword") - public String getNewPassword() { - return newPassword; - } - - /** - * Setter for NewPassword. - * A new password for the user. - * @param newPassword Value for String - */ - @JsonSetter("newPassword") - public void setNewPassword(String newPassword) { - this.newPassword = newPassword; - } - - /** - * Converts this TspublicRestV2UserChangepasswordRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2UserChangepasswordRequest [" + "currentPassword=" + currentPassword - + ", newPassword=" + newPassword + ", name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2UserChangepasswordRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2UserChangepasswordRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(currentPassword, newPassword) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2UserChangepasswordRequest}. - */ - public static class Builder { - private String currentPassword; - private String newPassword; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param currentPassword String value for currentPassword. - * @param newPassword String value for newPassword. - */ - public Builder(String currentPassword, String newPassword) { - this.currentPassword = currentPassword; - this.newPassword = newPassword; - } - - /** - * Setter for currentPassword. - * @param currentPassword String value for currentPassword. - * @return Builder - */ - public Builder currentPassword(String currentPassword) { - this.currentPassword = currentPassword; - return this; - } - - /** - * Setter for newPassword. - * @param newPassword String value for newPassword. - * @return Builder - */ - public Builder newPassword(String newPassword) { - this.newPassword = newPassword; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2UserChangepasswordRequest} object using the set fields. - * @return {@link TspublicRestV2UserChangepasswordRequest} - */ - public TspublicRestV2UserChangepasswordRequest build() { - return new TspublicRestV2UserChangepasswordRequest(currentPassword, newPassword, name, - id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2UserRemovegroupRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2UserRemovegroupRequest.java deleted file mode 100644 index a4bdbedec..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2UserRemovegroupRequest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2UserRemovegroupRequest type. - */ -public class TspublicRestV2UserRemovegroupRequest { - private String name; - private String id; - private List groups; - - /** - * Default constructor. - */ - public TspublicRestV2UserRemovegroupRequest() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - * @param name String value for name. - * @param id String value for id. - */ - public TspublicRestV2UserRemovegroupRequest( - List groups, - String name, - String id) { - this.name = name; - this.id = id; - this.groups = groups; - } - - /** - * Getter for Name. - * User name of the user account - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * User name of the user account - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the user account - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the user account - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Converts this TspublicRestV2UserRemovegroupRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2UserRemovegroupRequest [" + "groups=" + groups + ", name=" + name - + ", id=" + id + "]"; - } - - /** - * Builds a new {@link TspublicRestV2UserRemovegroupRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2UserRemovegroupRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder(groups) - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2UserRemovegroupRequest}. - */ - public static class Builder { - private List groups; - private String name; - private String id; - - /** - * Initialization constructor. - */ - public Builder() { - } - - /** - * Initialization constructor. - * @param groups List of GroupNameAndIDInput value for groups. - */ - public Builder(List groups) { - this.groups = groups; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link TspublicRestV2UserRemovegroupRequest} object using the set fields. - * @return {@link TspublicRestV2UserRemovegroupRequest} - */ - public TspublicRestV2UserRemovegroupRequest build() { - return new TspublicRestV2UserRemovegroupRequest(groups, name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2UserSearchRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2UserSearchRequest.java deleted file mode 100644 index dab187fdf..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2UserSearchRequest.java +++ /dev/null @@ -1,568 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2UserSearchRequest type. - */ -public class TspublicRestV2UserSearchRequest { - private List outputFields; - private String name; - private String id; - private String displayName; - private String visibility; - private String mail; - private List groups; - private List privileges; - private String state; - private Boolean notifyOnShare; - private Boolean showWalkMe; - private Boolean analystOnboardingComplete; - private String type; - - /** - * Default constructor. - */ - public TspublicRestV2UserSearchRequest() { - } - - /** - * Initialization constructor. - * @param outputFields List of String value for outputFields. - * @param name String value for name. - * @param id String value for id. - * @param displayName String value for displayName. - * @param visibility String value for visibility. - * @param mail String value for mail. - * @param groups List of GroupNameAndIDInput value for groups. - * @param privileges List of PrivilegeEnum value for privileges. - * @param state String value for state. - * @param notifyOnShare Boolean value for notifyOnShare. - * @param showWalkMe Boolean value for showWalkMe. - * @param analystOnboardingComplete Boolean value for analystOnboardingComplete. - * @param type String value for type. - */ - public TspublicRestV2UserSearchRequest( - List outputFields, - String name, - String id, - String displayName, - String visibility, - String mail, - List groups, - List privileges, - String state, - Boolean notifyOnShare, - Boolean showWalkMe, - Boolean analystOnboardingComplete, - String type) { - this.outputFields = outputFields; - this.name = name; - this.id = id; - this.displayName = displayName; - this.visibility = visibility; - this.mail = mail; - this.groups = groups; - this.privileges = privileges; - this.state = state; - this.notifyOnShare = notifyOnShare; - this.showWalkMe = showWalkMe; - this.analystOnboardingComplete = analystOnboardingComplete; - this.type = type; - } - - /** - * Getter for OutputFields. - * Array of field names that need to be included in the response - * @return Returns the List of String - */ - @JsonGetter("outputFields") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getOutputFields() { - return outputFields; - } - - /** - * Setter for OutputFields. - * Array of field names that need to be included in the response - * @param outputFields Value for List of String - */ - @JsonSetter("outputFields") - public void setOutputFields(List outputFields) { - this.outputFields = outputFields; - } - - /** - * Getter for Name. - * User name of the user account - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * User name of the user account - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the user account - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the user account - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for DisplayName. - * A unique display name string for the user, usually their first and last name. - * @return Returns the String - */ - @JsonGetter("displayName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDisplayName() { - return displayName; - } - - /** - * Setter for DisplayName. - * A unique display name string for the user, usually their first and last name. - * @param displayName Value for String - */ - @JsonSetter("displayName") - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - /** - * Getter for Visibility. - * Visibility of the user account. The visibility attribute is set to DEFAULT when creating a - * user. The DEFAULT attribute makes a user visible to other users and user groups, and thus - * allows them to share objects. - * @return Returns the String - */ - @JsonGetter("visibility") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getVisibility() { - return visibility; - } - - /** - * Setter for Visibility. - * Visibility of the user account. The visibility attribute is set to DEFAULT when creating a - * user. The DEFAULT attribute makes a user visible to other users and user groups, and thus - * allows them to share objects. - * @param visibility Value for String - */ - @JsonSetter("visibility") - public void setVisibility(String visibility) { - this.visibility = visibility; - } - - /** - * Getter for Mail. - * email of the user. - * @return Returns the String - */ - @JsonGetter("mail") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getMail() { - return mail; - } - - /** - * Setter for Mail. - * email of the user. - * @param mail Value for String - */ - @JsonSetter("mail") - public void setMail(String mail) { - this.mail = mail; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Getter for Privileges. - * Privileges assigned to user account - * @return Returns the List of PrivilegeEnum - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * Privileges assigned to user account - * @param privileges Value for List of PrivilegeEnum - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Getter for State. - * Status of user account. acitve or inactive. - * @return Returns the String - */ - @JsonGetter("state") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getState() { - return state; - } - - /** - * Setter for State. - * Status of user account. acitve or inactive. - * @param state Value for String - */ - @JsonSetter("state") - public void setState(String state) { - this.state = state; - } - - /** - * Getter for NotifyOnShare. - * User preference for receiving email notifications when another ThoughtSpot user shares - * answers or pinboards. - * @return Returns the Boolean - */ - @JsonGetter("notifyOnShare") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getNotifyOnShare() { - return notifyOnShare; - } - - /** - * Setter for NotifyOnShare. - * User preference for receiving email notifications when another ThoughtSpot user shares - * answers or pinboards. - * @param notifyOnShare Value for Boolean - */ - @JsonSetter("notifyOnShare") - public void setNotifyOnShare(Boolean notifyOnShare) { - this.notifyOnShare = notifyOnShare; - } - - /** - * Getter for ShowWalkMe. - * The user preference for revisiting the onboarding experience. - * @return Returns the Boolean - */ - @JsonGetter("showWalkMe") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getShowWalkMe() { - return showWalkMe; - } - - /** - * Setter for ShowWalkMe. - * The user preference for revisiting the onboarding experience. - * @param showWalkMe Value for Boolean - */ - @JsonSetter("showWalkMe") - public void setShowWalkMe(Boolean showWalkMe) { - this.showWalkMe = showWalkMe; - } - - /** - * Getter for AnalystOnboardingComplete. - * ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding - * experience leads users through a set of actions to help users get started and accomplish - * their tasks quickly. The users can turn off the Onboarding experience and access it again - * when they need assistance with the ThoughtSpot UI. - * @return Returns the Boolean - */ - @JsonGetter("analystOnboardingComplete") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getAnalystOnboardingComplete() { - return analystOnboardingComplete; - } - - /** - * Setter for AnalystOnboardingComplete. - * ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding - * experience leads users through a set of actions to help users get started and accomplish - * their tasks quickly. The users can turn off the Onboarding experience and access it again - * when they need assistance with the ThoughtSpot UI. - * @param analystOnboardingComplete Value for Boolean - */ - @JsonSetter("analystOnboardingComplete") - public void setAnalystOnboardingComplete(Boolean analystOnboardingComplete) { - this.analystOnboardingComplete = analystOnboardingComplete; - } - - /** - * Getter for Type. - * Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot - * system. - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot - * system. - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Converts this TspublicRestV2UserSearchRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2UserSearchRequest [" + "outputFields=" + outputFields + ", name=" - + name + ", id=" + id + ", displayName=" + displayName + ", visibility=" - + visibility + ", mail=" + mail + ", groups=" + groups + ", privileges=" - + privileges + ", state=" + state + ", notifyOnShare=" + notifyOnShare - + ", showWalkMe=" + showWalkMe + ", analystOnboardingComplete=" - + analystOnboardingComplete + ", type=" + type + "]"; - } - - /** - * Builds a new {@link TspublicRestV2UserSearchRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2UserSearchRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .outputFields(getOutputFields()) - .name(getName()) - .id(getId()) - .displayName(getDisplayName()) - .visibility(getVisibility()) - .mail(getMail()) - .groups(getGroups()) - .privileges(getPrivileges()) - .state(getState()) - .notifyOnShare(getNotifyOnShare()) - .showWalkMe(getShowWalkMe()) - .analystOnboardingComplete(getAnalystOnboardingComplete()) - .type(getType()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2UserSearchRequest}. - */ - public static class Builder { - private List outputFields; - private String name; - private String id; - private String displayName; - private String visibility; - private String mail; - private List groups; - private List privileges; - private String state; - private Boolean notifyOnShare; - private Boolean showWalkMe; - private Boolean analystOnboardingComplete; - private String type; - - - - /** - * Setter for outputFields. - * @param outputFields List of String value for outputFields. - * @return Builder - */ - public Builder outputFields(List outputFields) { - this.outputFields = outputFields; - return this; - } - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for displayName. - * @param displayName String value for displayName. - * @return Builder - */ - public Builder displayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Setter for visibility. - * @param visibility String value for visibility. - * @return Builder - */ - public Builder visibility(String visibility) { - this.visibility = visibility; - return this; - } - - /** - * Setter for mail. - * @param mail String value for mail. - * @return Builder - */ - public Builder mail(String mail) { - this.mail = mail; - return this; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of PrivilegeEnum value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Setter for state. - * @param state String value for state. - * @return Builder - */ - public Builder state(String state) { - this.state = state; - return this; - } - - /** - * Setter for notifyOnShare. - * @param notifyOnShare Boolean value for notifyOnShare. - * @return Builder - */ - public Builder notifyOnShare(Boolean notifyOnShare) { - this.notifyOnShare = notifyOnShare; - return this; - } - - /** - * Setter for showWalkMe. - * @param showWalkMe Boolean value for showWalkMe. - * @return Builder - */ - public Builder showWalkMe(Boolean showWalkMe) { - this.showWalkMe = showWalkMe; - return this; - } - - /** - * Setter for analystOnboardingComplete. - * @param analystOnboardingComplete Boolean value for analystOnboardingComplete. - * @return Builder - */ - public Builder analystOnboardingComplete(Boolean analystOnboardingComplete) { - this.analystOnboardingComplete = analystOnboardingComplete; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Builds a new {@link TspublicRestV2UserSearchRequest} object using the set fields. - * @return {@link TspublicRestV2UserSearchRequest} - */ - public TspublicRestV2UserSearchRequest build() { - return new TspublicRestV2UserSearchRequest(outputFields, name, id, displayName, - visibility, mail, groups, privileges, state, notifyOnShare, showWalkMe, - analystOnboardingComplete, type); - } - } -} diff --git a/Java/src/main/java/localhost/models/TspublicRestV2UserUpdateRequest.java b/Java/src/main/java/localhost/models/TspublicRestV2UserUpdateRequest.java deleted file mode 100644 index 6f13d5788..000000000 --- a/Java/src/main/java/localhost/models/TspublicRestV2UserUpdateRequest.java +++ /dev/null @@ -1,498 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for TspublicRestV2UserUpdateRequest type. - */ -public class TspublicRestV2UserUpdateRequest { - private String name; - private String id; - private String displayName; - private Visibility1Enum visibility; - private String mail; - private State1Enum state; - private Boolean notifyOnShare; - private Boolean showWalkMe; - private Boolean analystOnboardingComplete; - private Type9Enum type; - private List groups; - - /** - * Default constructor. - */ - public TspublicRestV2UserUpdateRequest() { - visibility = Visibility1Enum.DEFAULT; - state = State1Enum.ACTIVE; - notifyOnShare = true; - showWalkMe = true; - analystOnboardingComplete = false; - type = Type9Enum.LOCAL_USER; - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param displayName String value for displayName. - * @param visibility Visibility1Enum value for visibility. - * @param mail String value for mail. - * @param state State1Enum value for state. - * @param notifyOnShare Boolean value for notifyOnShare. - * @param showWalkMe Boolean value for showWalkMe. - * @param analystOnboardingComplete Boolean value for analystOnboardingComplete. - * @param type Type9Enum value for type. - * @param groups List of GroupNameAndIDInput value for groups. - */ - public TspublicRestV2UserUpdateRequest( - String name, - String id, - String displayName, - Visibility1Enum visibility, - String mail, - State1Enum state, - Boolean notifyOnShare, - Boolean showWalkMe, - Boolean analystOnboardingComplete, - Type9Enum type, - List groups) { - this.name = name; - this.id = id; - this.displayName = displayName; - this.visibility = visibility; - this.mail = mail; - this.state = state; - this.notifyOnShare = notifyOnShare; - this.showWalkMe = showWalkMe; - this.analystOnboardingComplete = analystOnboardingComplete; - this.type = type; - this.groups = groups; - } - - /** - * Getter for Name. - * Name of the user. The username string must be unique. - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Name of the user. The username string must be unique. - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the user account to query - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the user account to query - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for DisplayName. - * A unique display name string for the user, usually their first and last name. - * @return Returns the String - */ - @JsonGetter("displayName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDisplayName() { - return displayName; - } - - /** - * Setter for DisplayName. - * A unique display name string for the user, usually their first and last name. - * @param displayName Value for String - */ - @JsonSetter("displayName") - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - /** - * Getter for Visibility. - * Visibility of the user account. The visibility attribute is set to DEFAULT when creating a - * user. The DEFAULT attribute makes a user visible to other users and user groups, and thus - * allows them to share objects. - * @return Returns the Visibility1Enum - */ - @JsonGetter("visibility") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Visibility1Enum getVisibility() { - return visibility; - } - - /** - * Setter for Visibility. - * Visibility of the user account. The visibility attribute is set to DEFAULT when creating a - * user. The DEFAULT attribute makes a user visible to other users and user groups, and thus - * allows them to share objects. - * @param visibility Value for Visibility1Enum - */ - @JsonSetter("visibility") - public void setVisibility(Visibility1Enum visibility) { - this.visibility = visibility; - } - - /** - * Getter for Mail. - * email of the user. - * @return Returns the String - */ - @JsonGetter("mail") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getMail() { - return mail; - } - - /** - * Setter for Mail. - * email of the user. - * @param mail Value for String - */ - @JsonSetter("mail") - public void setMail(String mail) { - this.mail = mail; - } - - /** - * Getter for State. - * Status of user account. acitve or inactive. - * @return Returns the State1Enum - */ - @JsonGetter("state") - @JsonInclude(JsonInclude.Include.NON_NULL) - public State1Enum getState() { - return state; - } - - /** - * Setter for State. - * Status of user account. acitve or inactive. - * @param state Value for State1Enum - */ - @JsonSetter("state") - public void setState(State1Enum state) { - this.state = state; - } - - /** - * Getter for NotifyOnShare. - * User preference for receiving email notifications when another ThoughtSpot user shares - * answers or pinboards. - * @return Returns the Boolean - */ - @JsonGetter("notifyOnShare") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getNotifyOnShare() { - return notifyOnShare; - } - - /** - * Setter for NotifyOnShare. - * User preference for receiving email notifications when another ThoughtSpot user shares - * answers or pinboards. - * @param notifyOnShare Value for Boolean - */ - @JsonSetter("notifyOnShare") - public void setNotifyOnShare(Boolean notifyOnShare) { - this.notifyOnShare = notifyOnShare; - } - - /** - * Getter for ShowWalkMe. - * The user preference for revisiting the onboarding experience. - * @return Returns the Boolean - */ - @JsonGetter("showWalkMe") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getShowWalkMe() { - return showWalkMe; - } - - /** - * Setter for ShowWalkMe. - * The user preference for revisiting the onboarding experience. - * @param showWalkMe Value for Boolean - */ - @JsonSetter("showWalkMe") - public void setShowWalkMe(Boolean showWalkMe) { - this.showWalkMe = showWalkMe; - } - - /** - * Getter for AnalystOnboardingComplete. - * ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding - * experience leads users through a set of actions to help users get started and accomplish - * their tasks quickly. The users can turn off the Onboarding experience and access it again - * when they need assistance with the ThoughtSpot UI. - * @return Returns the Boolean - */ - @JsonGetter("analystOnboardingComplete") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getAnalystOnboardingComplete() { - return analystOnboardingComplete; - } - - /** - * Setter for AnalystOnboardingComplete. - * ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding - * experience leads users through a set of actions to help users get started and accomplish - * their tasks quickly. The users can turn off the Onboarding experience and access it again - * when they need assistance with the ThoughtSpot UI. - * @param analystOnboardingComplete Value for Boolean - */ - @JsonSetter("analystOnboardingComplete") - public void setAnalystOnboardingComplete(Boolean analystOnboardingComplete) { - this.analystOnboardingComplete = analystOnboardingComplete; - } - - /** - * Getter for Type. - * Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot - * system. - * @return Returns the Type9Enum - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Type9Enum getType() { - return type; - } - - /** - * Setter for Type. - * Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot - * system. - * @param type Value for Type9Enum - */ - @JsonSetter("type") - public void setType(Type9Enum type) { - this.type = type; - } - - /** - * Getter for Groups. - * Array of objects of groups that the user belong to. - * @return Returns the List of GroupNameAndIDInput - */ - @JsonGetter("groups") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Array of objects of groups that the user belong to. - * @param groups Value for List of GroupNameAndIDInput - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Converts this TspublicRestV2UserUpdateRequest into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "TspublicRestV2UserUpdateRequest [" + "name=" + name + ", id=" + id - + ", displayName=" + displayName + ", visibility=" + visibility + ", mail=" + mail - + ", state=" + state + ", notifyOnShare=" + notifyOnShare + ", showWalkMe=" - + showWalkMe + ", analystOnboardingComplete=" + analystOnboardingComplete - + ", type=" + type + ", groups=" + groups + "]"; - } - - /** - * Builds a new {@link TspublicRestV2UserUpdateRequest.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link TspublicRestV2UserUpdateRequest.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .displayName(getDisplayName()) - .visibility(getVisibility()) - .mail(getMail()) - .state(getState()) - .notifyOnShare(getNotifyOnShare()) - .showWalkMe(getShowWalkMe()) - .analystOnboardingComplete(getAnalystOnboardingComplete()) - .type(getType()) - .groups(getGroups()); - return builder; - } - - /** - * Class to build instances of {@link TspublicRestV2UserUpdateRequest}. - */ - public static class Builder { - private String name; - private String id; - private String displayName; - private Visibility1Enum visibility = Visibility1Enum.DEFAULT; - private String mail; - private State1Enum state = State1Enum.ACTIVE; - private Boolean notifyOnShare = true; - private Boolean showWalkMe = true; - private Boolean analystOnboardingComplete = false; - private Type9Enum type = Type9Enum.LOCAL_USER; - private List groups; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for displayName. - * @param displayName String value for displayName. - * @return Builder - */ - public Builder displayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Setter for visibility. - * @param visibility Visibility1Enum value for visibility. - * @return Builder - */ - public Builder visibility(Visibility1Enum visibility) { - this.visibility = visibility; - return this; - } - - /** - * Setter for mail. - * @param mail String value for mail. - * @return Builder - */ - public Builder mail(String mail) { - this.mail = mail; - return this; - } - - /** - * Setter for state. - * @param state State1Enum value for state. - * @return Builder - */ - public Builder state(State1Enum state) { - this.state = state; - return this; - } - - /** - * Setter for notifyOnShare. - * @param notifyOnShare Boolean value for notifyOnShare. - * @return Builder - */ - public Builder notifyOnShare(Boolean notifyOnShare) { - this.notifyOnShare = notifyOnShare; - return this; - } - - /** - * Setter for showWalkMe. - * @param showWalkMe Boolean value for showWalkMe. - * @return Builder - */ - public Builder showWalkMe(Boolean showWalkMe) { - this.showWalkMe = showWalkMe; - return this; - } - - /** - * Setter for analystOnboardingComplete. - * @param analystOnboardingComplete Boolean value for analystOnboardingComplete. - * @return Builder - */ - public Builder analystOnboardingComplete(Boolean analystOnboardingComplete) { - this.analystOnboardingComplete = analystOnboardingComplete; - return this; - } - - /** - * Setter for type. - * @param type Type9Enum value for type. - * @return Builder - */ - public Builder type(Type9Enum type) { - this.type = type; - return this; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndIDInput value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Builds a new {@link TspublicRestV2UserUpdateRequest} object using the set fields. - * @return {@link TspublicRestV2UserUpdateRequest} - */ - public TspublicRestV2UserUpdateRequest build() { - return new TspublicRestV2UserUpdateRequest(name, id, displayName, visibility, mail, - state, notifyOnShare, showWalkMe, analystOnboardingComplete, type, groups); - } - } -} diff --git a/Java/src/main/java/localhost/models/Type10Enum.java b/Java/src/main/java/localhost/models/Type10Enum.java deleted file mode 100644 index 282df8cca..000000000 --- a/Java/src/main/java/localhost/models/Type10Enum.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type10Enum to be used. - */ -public enum Type10Enum { - LOCAL_GROUP, - - TENANT_GROUP; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - LOCAL_GROUP.value = "LOCAL_GROUP"; - TENANT_GROUP.value = "TENANT_GROUP"; - - valueMap.put("LOCAL_GROUP", LOCAL_GROUP); - valueMap.put("TENANT_GROUP", TENANT_GROUP); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type10Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type10Enum values to list of string values. - * @param toConvert The list of Type10Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type10Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type13Enum.java b/Java/src/main/java/localhost/models/Type13Enum.java deleted file mode 100644 index e7a030c79..000000000 --- a/Java/src/main/java/localhost/models/Type13Enum.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type13Enum to be used. - */ -public enum Type13Enum { - LIVEBOARD, - - DATAOBJECT, - - COLUMN, - - JOIN; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - LIVEBOARD.value = "LIVEBOARD"; - DATAOBJECT.value = "DATAOBJECT"; - COLUMN.value = "COLUMN"; - JOIN.value = "JOIN"; - - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("DATAOBJECT", DATAOBJECT); - valueMap.put("COLUMN", COLUMN); - valueMap.put("JOIN", JOIN); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type13Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type13Enum values to list of string values. - * @param toConvert The list of Type13Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type13Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type14Enum.java b/Java/src/main/java/localhost/models/Type14Enum.java deleted file mode 100644 index b1e10b52c..000000000 --- a/Java/src/main/java/localhost/models/Type14Enum.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type14Enum to be used. - */ -public enum Type14Enum { - SNOWFLAKE, - - AMAZON_REDSHIFT, - - GOOGLE_BIGQUERY, - - AZURE_SYNAPSE, - - TERADATA, - - STARBURST, - - SAP_HANA, - - ORACLE_ADW, - - DATABRICKS, - - DENODO, - - DREMIO; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - SNOWFLAKE.value = "SNOWFLAKE"; - AMAZON_REDSHIFT.value = "AMAZON_REDSHIFT"; - GOOGLE_BIGQUERY.value = "GOOGLE_BIGQUERY"; - AZURE_SYNAPSE.value = "AZURE_SYNAPSE"; - TERADATA.value = "TERADATA"; - STARBURST.value = "STARBURST"; - SAP_HANA.value = "SAP_HANA"; - ORACLE_ADW.value = "ORACLE_ADW"; - DATABRICKS.value = "DATABRICKS"; - DENODO.value = "DENODO"; - DREMIO.value = "DREMIO"; - - valueMap.put("SNOWFLAKE", SNOWFLAKE); - valueMap.put("AMAZON_REDSHIFT", AMAZON_REDSHIFT); - valueMap.put("GOOGLE_BIGQUERY", GOOGLE_BIGQUERY); - valueMap.put("AZURE_SYNAPSE", AZURE_SYNAPSE); - valueMap.put("TERADATA", TERADATA); - valueMap.put("STARBURST", STARBURST); - valueMap.put("SAP_HANA", SAP_HANA); - valueMap.put("ORACLE_ADW", ORACLE_ADW); - valueMap.put("DATABRICKS", DATABRICKS); - valueMap.put("DENODO", DENODO); - valueMap.put("DREMIO", DREMIO); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type14Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type14Enum values to list of string values. - * @param toConvert The list of Type14Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type14Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type15Enum.java b/Java/src/main/java/localhost/models/Type15Enum.java deleted file mode 100644 index 4a5279e14..000000000 --- a/Java/src/main/java/localhost/models/Type15Enum.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type15Enum to be used. - */ -public enum Type15Enum { - SNOWFLAKE, - - AMAZON_REDSHIFT, - - GOOGLE_BIGQUERY, - - AZURE_SYNAPSE, - - TERADATA, - - STARBURST, - - SAP_HANA, - - ORACLE_ADW, - - DATABRICKS, - - DENODO, - - DREMIO; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - SNOWFLAKE.value = "SNOWFLAKE"; - AMAZON_REDSHIFT.value = "AMAZON_REDSHIFT"; - GOOGLE_BIGQUERY.value = "GOOGLE_BIGQUERY"; - AZURE_SYNAPSE.value = "AZURE_SYNAPSE"; - TERADATA.value = "TERADATA"; - STARBURST.value = "STARBURST"; - SAP_HANA.value = "SAP_HANA"; - ORACLE_ADW.value = "ORACLE_ADW"; - DATABRICKS.value = "DATABRICKS"; - DENODO.value = "DENODO"; - DREMIO.value = "DREMIO"; - - valueMap.put("SNOWFLAKE", SNOWFLAKE); - valueMap.put("AMAZON_REDSHIFT", AMAZON_REDSHIFT); - valueMap.put("GOOGLE_BIGQUERY", GOOGLE_BIGQUERY); - valueMap.put("AZURE_SYNAPSE", AZURE_SYNAPSE); - valueMap.put("TERADATA", TERADATA); - valueMap.put("STARBURST", STARBURST); - valueMap.put("SAP_HANA", SAP_HANA); - valueMap.put("ORACLE_ADW", ORACLE_ADW); - valueMap.put("DATABRICKS", DATABRICKS); - valueMap.put("DENODO", DENODO); - valueMap.put("DREMIO", DREMIO); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type15Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type15Enum values to list of string values. - * @param toConvert The list of Type15Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type15Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type16Enum.java b/Java/src/main/java/localhost/models/Type16Enum.java deleted file mode 100644 index f6e17fd17..000000000 --- a/Java/src/main/java/localhost/models/Type16Enum.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type16Enum to be used. - */ -public enum Type16Enum { - CSV, - - XLSX, - - PDF, - - PNG; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - CSV.value = "CSV"; - XLSX.value = "XLSX"; - PDF.value = "PDF"; - PNG.value = "PNG"; - - valueMap.put("CSV", CSV); - valueMap.put("XLSX", XLSX); - valueMap.put("PDF", PDF); - valueMap.put("PNG", PNG); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type16Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type16Enum values to list of string values. - * @param toConvert The list of Type16Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type16Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type18Enum.java b/Java/src/main/java/localhost/models/Type18Enum.java deleted file mode 100644 index d8c7b137c..000000000 --- a/Java/src/main/java/localhost/models/Type18Enum.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type18Enum to be used. - */ -public enum Type18Enum { - LIVEBOARD, - - ANSWER, - - DATAOBJECT, - - COLUMN; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - LIVEBOARD.value = "LIVEBOARD"; - ANSWER.value = "ANSWER"; - DATAOBJECT.value = "DATAOBJECT"; - COLUMN.value = "COLUMN"; - - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("ANSWER", ANSWER); - valueMap.put("DATAOBJECT", DATAOBJECT); - valueMap.put("COLUMN", COLUMN); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type18Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type18Enum values to list of string values. - * @param toConvert The list of Type18Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type18Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type1Enum.java b/Java/src/main/java/localhost/models/Type1Enum.java deleted file mode 100644 index ac37c2c1c..000000000 --- a/Java/src/main/java/localhost/models/Type1Enum.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type1Enum to be used. - */ -public enum Type1Enum { - USER, - - USER_GROUP; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - USER.value = "USER"; - USER_GROUP.value = "USER_GROUP"; - - valueMap.put("USER", USER); - valueMap.put("USER_GROUP", USER_GROUP); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type1Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type1Enum values to list of string values. - * @param toConvert The list of Type1Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type1Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type2Enum.java b/Java/src/main/java/localhost/models/Type2Enum.java deleted file mode 100644 index 55e89647e..000000000 --- a/Java/src/main/java/localhost/models/Type2Enum.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type2Enum to be used. - */ -public enum Type2Enum { - LIVEBOARD, - - ANSWER, - - DATAOBJECT, - - COLUMN; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - LIVEBOARD.value = "LIVEBOARD"; - ANSWER.value = "ANSWER"; - DATAOBJECT.value = "DATAOBJECT"; - COLUMN.value = "COLUMN"; - - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("ANSWER", ANSWER); - valueMap.put("DATAOBJECT", DATAOBJECT); - valueMap.put("COLUMN", COLUMN); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type2Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type2Enum values to list of string values. - * @param toConvert The list of Type2Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type2Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type3Enum.java b/Java/src/main/java/localhost/models/Type3Enum.java deleted file mode 100644 index 918f0b295..000000000 --- a/Java/src/main/java/localhost/models/Type3Enum.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type3Enum to be used. - */ -public enum Type3Enum { - ANSWER, - - LIVEBOARD, - - DATAOBJECT_ALL, - - DATAOBJECT_WORKSHEET, - - DATAOBJECT_TABLE, - - DATAOBJECT_USER_DEFINED, - - DATAOBJECT_VIEW, - - DATAOBJECT_CALENDAR_TABLE, - - COLUMN_ALL, - - COLUMN_WORKSHEET, - - COLUMN_TABLE, - - COLUMN_USER_DEFINED, - - COLUMN_VIEW, - - COLUMN_CALENDAR_TABLE, - - JOIN, - - CONNECTION, - - TAG, - - USER, - - USER_GROUP; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ANSWER.value = "ANSWER"; - LIVEBOARD.value = "LIVEBOARD"; - DATAOBJECT_ALL.value = "DATAOBJECT_ALL"; - DATAOBJECT_WORKSHEET.value = "DATAOBJECT_WORKSHEET"; - DATAOBJECT_TABLE.value = "DATAOBJECT_TABLE"; - DATAOBJECT_USER_DEFINED.value = "DATAOBJECT_USER_DEFINED"; - DATAOBJECT_VIEW.value = "DATAOBJECT_VIEW"; - DATAOBJECT_CALENDAR_TABLE.value = "DATAOBJECT_CALENDAR_TABLE"; - COLUMN_ALL.value = "COLUMN_ALL"; - COLUMN_WORKSHEET.value = "COLUMN_WORKSHEET"; - COLUMN_TABLE.value = "COLUMN_TABLE"; - COLUMN_USER_DEFINED.value = "COLUMN_USER_DEFINED"; - COLUMN_VIEW.value = "COLUMN_VIEW"; - COLUMN_CALENDAR_TABLE.value = "COLUMN_CALENDAR_TABLE"; - JOIN.value = "JOIN"; - CONNECTION.value = "CONNECTION"; - TAG.value = "TAG"; - USER.value = "USER"; - USER_GROUP.value = "USER_GROUP"; - - valueMap.put("ANSWER", ANSWER); - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("DATAOBJECT_ALL", DATAOBJECT_ALL); - valueMap.put("DATAOBJECT_WORKSHEET", DATAOBJECT_WORKSHEET); - valueMap.put("DATAOBJECT_TABLE", DATAOBJECT_TABLE); - valueMap.put("DATAOBJECT_USER_DEFINED", DATAOBJECT_USER_DEFINED); - valueMap.put("DATAOBJECT_VIEW", DATAOBJECT_VIEW); - valueMap.put("DATAOBJECT_CALENDAR_TABLE", DATAOBJECT_CALENDAR_TABLE); - valueMap.put("COLUMN_ALL", COLUMN_ALL); - valueMap.put("COLUMN_WORKSHEET", COLUMN_WORKSHEET); - valueMap.put("COLUMN_TABLE", COLUMN_TABLE); - valueMap.put("COLUMN_USER_DEFINED", COLUMN_USER_DEFINED); - valueMap.put("COLUMN_VIEW", COLUMN_VIEW); - valueMap.put("COLUMN_CALENDAR_TABLE", COLUMN_CALENDAR_TABLE); - valueMap.put("JOIN", JOIN); - valueMap.put("CONNECTION", CONNECTION); - valueMap.put("TAG", TAG); - valueMap.put("USER", USER); - valueMap.put("USER_GROUP", USER_GROUP); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type3Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type3Enum values to list of string values. - * @param toConvert The list of Type3Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type3Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type4Enum.java b/Java/src/main/java/localhost/models/Type4Enum.java deleted file mode 100644 index 2063fde5d..000000000 --- a/Java/src/main/java/localhost/models/Type4Enum.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type4Enum to be used. - */ -public enum Type4Enum { - ANSWER, - - LIVEBOARD, - - DATAOBJECT, - - COLUMN, - - JOIN, - - CONNECTION, - - TAG, - - USER, - - USER_GROUP; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ANSWER.value = "ANSWER"; - LIVEBOARD.value = "LIVEBOARD"; - DATAOBJECT.value = "DATAOBJECT"; - COLUMN.value = "COLUMN"; - JOIN.value = "JOIN"; - CONNECTION.value = "CONNECTION"; - TAG.value = "TAG"; - USER.value = "USER"; - USER_GROUP.value = "USER_GROUP"; - - valueMap.put("ANSWER", ANSWER); - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("DATAOBJECT", DATAOBJECT); - valueMap.put("COLUMN", COLUMN); - valueMap.put("JOIN", JOIN); - valueMap.put("CONNECTION", CONNECTION); - valueMap.put("TAG", TAG); - valueMap.put("USER", USER); - valueMap.put("USER_GROUP", USER_GROUP); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type4Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type4Enum values to list of string values. - * @param toConvert The list of Type4Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type4Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type5Enum.java b/Java/src/main/java/localhost/models/Type5Enum.java deleted file mode 100644 index a27ee1469..000000000 --- a/Java/src/main/java/localhost/models/Type5Enum.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type5Enum to be used. - */ -public enum Type5Enum { - ANSWER, - - LIVEBOARD, - - DATAOBJECT_ALL, - - DATAOBJECT_WORKSHEET, - - DATAOBJECT_TABLE, - - DATAOBJECT_USER_DEFINED, - - DATAOBJECT_VIEW, - - DATAOBJECT_CALENDAR_TABLE, - - COLUMN_ALL, - - COLUMN_WORKSHEET, - - COLUMN_TABLE, - - COLUMN_USER_DEFINED, - - COLUMN_VIEW, - - COLUMN_CALENDAR_TABLE, - - JOIN, - - CONNECTION, - - TAG, - - USER, - - USER_GROUP; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ANSWER.value = "ANSWER"; - LIVEBOARD.value = "LIVEBOARD"; - DATAOBJECT_ALL.value = "DATAOBJECT_ALL"; - DATAOBJECT_WORKSHEET.value = "DATAOBJECT_WORKSHEET"; - DATAOBJECT_TABLE.value = "DATAOBJECT_TABLE"; - DATAOBJECT_USER_DEFINED.value = "DATAOBJECT_USER_DEFINED"; - DATAOBJECT_VIEW.value = "DATAOBJECT_VIEW"; - DATAOBJECT_CALENDAR_TABLE.value = "DATAOBJECT_CALENDAR_TABLE"; - COLUMN_ALL.value = "COLUMN_ALL"; - COLUMN_WORKSHEET.value = "COLUMN_WORKSHEET"; - COLUMN_TABLE.value = "COLUMN_TABLE"; - COLUMN_USER_DEFINED.value = "COLUMN_USER_DEFINED"; - COLUMN_VIEW.value = "COLUMN_VIEW"; - COLUMN_CALENDAR_TABLE.value = "COLUMN_CALENDAR_TABLE"; - JOIN.value = "JOIN"; - CONNECTION.value = "CONNECTION"; - TAG.value = "TAG"; - USER.value = "USER"; - USER_GROUP.value = "USER_GROUP"; - - valueMap.put("ANSWER", ANSWER); - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("DATAOBJECT_ALL", DATAOBJECT_ALL); - valueMap.put("DATAOBJECT_WORKSHEET", DATAOBJECT_WORKSHEET); - valueMap.put("DATAOBJECT_TABLE", DATAOBJECT_TABLE); - valueMap.put("DATAOBJECT_USER_DEFINED", DATAOBJECT_USER_DEFINED); - valueMap.put("DATAOBJECT_VIEW", DATAOBJECT_VIEW); - valueMap.put("DATAOBJECT_CALENDAR_TABLE", DATAOBJECT_CALENDAR_TABLE); - valueMap.put("COLUMN_ALL", COLUMN_ALL); - valueMap.put("COLUMN_WORKSHEET", COLUMN_WORKSHEET); - valueMap.put("COLUMN_TABLE", COLUMN_TABLE); - valueMap.put("COLUMN_USER_DEFINED", COLUMN_USER_DEFINED); - valueMap.put("COLUMN_VIEW", COLUMN_VIEW); - valueMap.put("COLUMN_CALENDAR_TABLE", COLUMN_CALENDAR_TABLE); - valueMap.put("JOIN", JOIN); - valueMap.put("CONNECTION", CONNECTION); - valueMap.put("TAG", TAG); - valueMap.put("USER", USER); - valueMap.put("USER_GROUP", USER_GROUP); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type5Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type5Enum values to list of string values. - * @param toConvert The list of Type5Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type5Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type6Enum.java b/Java/src/main/java/localhost/models/Type6Enum.java deleted file mode 100644 index a9f556a34..000000000 --- a/Java/src/main/java/localhost/models/Type6Enum.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type6Enum to be used. - */ -public enum Type6Enum { - ANSWER, - - LIVEBOARD, - - DATAOBJECT, - - COLUMN, - - JOIN, - - CONNECTION, - - TAG, - - USER, - - USER_GROUP; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ANSWER.value = "ANSWER"; - LIVEBOARD.value = "LIVEBOARD"; - DATAOBJECT.value = "DATAOBJECT"; - COLUMN.value = "COLUMN"; - JOIN.value = "JOIN"; - CONNECTION.value = "CONNECTION"; - TAG.value = "TAG"; - USER.value = "USER"; - USER_GROUP.value = "USER_GROUP"; - - valueMap.put("ANSWER", ANSWER); - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("DATAOBJECT", DATAOBJECT); - valueMap.put("COLUMN", COLUMN); - valueMap.put("JOIN", JOIN); - valueMap.put("CONNECTION", CONNECTION); - valueMap.put("TAG", TAG); - valueMap.put("USER", USER); - valueMap.put("USER_GROUP", USER_GROUP); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type6Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type6Enum values to list of string values. - * @param toConvert The list of Type6Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type6Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type7Enum.java b/Java/src/main/java/localhost/models/Type7Enum.java deleted file mode 100644 index 3dd185014..000000000 --- a/Java/src/main/java/localhost/models/Type7Enum.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type7Enum to be used. - */ -public enum Type7Enum { - LIVEBOARD, - - ANSWER, - - DATAOBJECT, - - COLUMN; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - LIVEBOARD.value = "LIVEBOARD"; - ANSWER.value = "ANSWER"; - DATAOBJECT.value = "DATAOBJECT"; - COLUMN.value = "COLUMN"; - - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("ANSWER", ANSWER); - valueMap.put("DATAOBJECT", DATAOBJECT); - valueMap.put("COLUMN", COLUMN); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type7Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type7Enum values to list of string values. - * @param toConvert The list of Type7Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type7Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type8Enum.java b/Java/src/main/java/localhost/models/Type8Enum.java deleted file mode 100644 index 6e630b5b6..000000000 --- a/Java/src/main/java/localhost/models/Type8Enum.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type8Enum to be used. - */ -public enum Type8Enum { - UNKNOWN, - - LDAP_USER, - - SAML_USER, - - OIDC_USER, - - LOCAL_USER; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - UNKNOWN.value = "UNKNOWN"; - LDAP_USER.value = "LDAP_USER"; - SAML_USER.value = "SAML_USER"; - OIDC_USER.value = "OIDC_USER"; - LOCAL_USER.value = "LOCAL_USER"; - - valueMap.put("UNKNOWN", UNKNOWN); - valueMap.put("LDAP_USER", LDAP_USER); - valueMap.put("SAML_USER", SAML_USER); - valueMap.put("OIDC_USER", OIDC_USER); - valueMap.put("LOCAL_USER", LOCAL_USER); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type8Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type8Enum values to list of string values. - * @param toConvert The list of Type8Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type8Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Type9Enum.java b/Java/src/main/java/localhost/models/Type9Enum.java deleted file mode 100644 index 722fd0187..000000000 --- a/Java/src/main/java/localhost/models/Type9Enum.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Type9Enum to be used. - */ -public enum Type9Enum { - UNKNOWN, - - LDAP_USER, - - SAML_USER, - - OIDC_USER, - - LOCAL_USER; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - UNKNOWN.value = "UNKNOWN"; - LDAP_USER.value = "LDAP_USER"; - SAML_USER.value = "SAML_USER"; - OIDC_USER.value = "OIDC_USER"; - LOCAL_USER.value = "LOCAL_USER"; - - valueMap.put("UNKNOWN", UNKNOWN); - valueMap.put("LDAP_USER", LDAP_USER); - valueMap.put("SAML_USER", SAML_USER); - valueMap.put("OIDC_USER", OIDC_USER); - valueMap.put("LOCAL_USER", LOCAL_USER); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Type9Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Type9Enum values to list of string values. - * @param toConvert The list of Type9Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Type9Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/TypeEnum.java b/Java/src/main/java/localhost/models/TypeEnum.java deleted file mode 100644 index e82961df5..000000000 --- a/Java/src/main/java/localhost/models/TypeEnum.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * TypeEnum to be used. - */ -public enum TypeEnum { - ANSWER, - - LIVEBOARD, - - DATAOBJECT, - - CONNECTION; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - ANSWER.value = "ANSWER"; - LIVEBOARD.value = "LIVEBOARD"; - DATAOBJECT.value = "DATAOBJECT"; - CONNECTION.value = "CONNECTION"; - - valueMap.put("ANSWER", ANSWER); - valueMap.put("LIVEBOARD", LIVEBOARD); - valueMap.put("DATAOBJECT", DATAOBJECT); - valueMap.put("CONNECTION", CONNECTION); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static TypeEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of TypeEnum values to list of string values. - * @param toConvert The list of TypeEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (TypeEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/UserNameAndID.java b/Java/src/main/java/localhost/models/UserNameAndID.java deleted file mode 100644 index a9b9a38a2..000000000 --- a/Java/src/main/java/localhost/models/UserNameAndID.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for UserNameAndID type. - */ -public class UserNameAndID { - private String name; - private String id; - - /** - * Default constructor. - */ - public UserNameAndID() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public UserNameAndID( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Username of the user - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Username of the user - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the user - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this UserNameAndID into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "UserNameAndID [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link UserNameAndID.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link UserNameAndID.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link UserNameAndID}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link UserNameAndID} object using the set fields. - * @return {@link UserNameAndID} - */ - public UserNameAndID build() { - return new UserNameAndID(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/UserNameAndIDInput.java b/Java/src/main/java/localhost/models/UserNameAndIDInput.java deleted file mode 100644 index 46dd8e631..000000000 --- a/Java/src/main/java/localhost/models/UserNameAndIDInput.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for UserNameAndIDInput type. - */ -public class UserNameAndIDInput { - private String name; - private String id; - - /** - * Default constructor. - */ - public UserNameAndIDInput() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - */ - public UserNameAndIDInput( - String name, - String id) { - this.name = name; - this.id = id; - } - - /** - * Getter for Name. - * Username of the user - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Username of the user - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * GUID of the user - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Converts this UserNameAndIDInput into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "UserNameAndIDInput [" + "name=" + name + ", id=" + id + "]"; - } - - /** - * Builds a new {@link UserNameAndIDInput.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link UserNameAndIDInput.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()); - return builder; - } - - /** - * Class to build instances of {@link UserNameAndIDInput}. - */ - public static class Builder { - private String name; - private String id; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Builds a new {@link UserNameAndIDInput} object using the set fields. - * @return {@link UserNameAndIDInput} - */ - public UserNameAndIDInput build() { - return new UserNameAndIDInput(name, id); - } - } -} diff --git a/Java/src/main/java/localhost/models/UserResponse.java b/Java/src/main/java/localhost/models/UserResponse.java deleted file mode 100644 index 85bd379ba..000000000 --- a/Java/src/main/java/localhost/models/UserResponse.java +++ /dev/null @@ -1,1254 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; -import java.util.List; - -/** - * This is a model class for UserResponse type. - */ -public class UserResponse { - private String name; - private String displayName; - private String id; - private String visibility; - private String mail; - private List groups; - private List privileges; - private List orgs; - private List tags; - private String state; - private Boolean notifyOnShare; - private Boolean showWalkMe; - private Boolean analystOnboardingComplete; - private Integer firstLogin; - private Boolean welcomeEmailSent; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean complete; - private Boolean isSuperUser; - private Boolean isSystemPrincipal; - private String type; - private String parenttype; - private String tenantId; - private Double indexVersion; - private Double generationNum; - private Double created; - private Double modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - - /** - * Default constructor. - */ - public UserResponse() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param displayName String value for displayName. - * @param id String value for id. - * @param visibility String value for visibility. - * @param mail String value for mail. - * @param groups List of GroupNameAndID value for groups. - * @param privileges List of String value for privileges. - * @param orgs List of OrgType value for orgs. - * @param tags List of String value for tags. - * @param state String value for state. - * @param notifyOnShare Boolean value for notifyOnShare. - * @param showWalkMe Boolean value for showWalkMe. - * @param analystOnboardingComplete Boolean value for analystOnboardingComplete. - * @param firstLogin Integer value for firstLogin. - * @param welcomeEmailSent Boolean value for welcomeEmailSent. - * @param isDeleted Boolean value for isDeleted. - * @param isHidden Boolean value for isHidden. - * @param isExternal Boolean value for isExternal. - * @param isDeprecated Boolean value for isDeprecated. - * @param complete Boolean value for complete. - * @param isSuperUser Boolean value for isSuperUser. - * @param isSystemPrincipal Boolean value for isSystemPrincipal. - * @param type String value for type. - * @param parenttype String value for parenttype. - * @param tenantId String value for tenantId. - * @param indexVersion Double value for indexVersion. - * @param generationNum Double value for generationNum. - * @param created Double value for created. - * @param modified Double value for modified. - * @param author UserNameAndID value for author. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @param owner UserNameAndID value for owner. - */ - public UserResponse( - String name, - String displayName, - String id, - String visibility, - String mail, - List groups, - List privileges, - List orgs, - List tags, - String state, - Boolean notifyOnShare, - Boolean showWalkMe, - Boolean analystOnboardingComplete, - Integer firstLogin, - Boolean welcomeEmailSent, - Boolean isDeleted, - Boolean isHidden, - Boolean isExternal, - Boolean isDeprecated, - Boolean complete, - Boolean isSuperUser, - Boolean isSystemPrincipal, - String type, - String parenttype, - String tenantId, - Double indexVersion, - Double generationNum, - Double created, - Double modified, - UserNameAndID author, - UserNameAndID modifiedBy, - UserNameAndID owner) { - this.name = name; - this.displayName = displayName; - this.id = id; - this.visibility = visibility; - this.mail = mail; - this.groups = groups; - this.privileges = privileges; - this.orgs = orgs; - this.tags = tags; - this.state = state; - this.notifyOnShare = notifyOnShare; - this.showWalkMe = showWalkMe; - this.analystOnboardingComplete = analystOnboardingComplete; - this.firstLogin = firstLogin; - this.welcomeEmailSent = welcomeEmailSent; - this.isDeleted = isDeleted; - this.isHidden = isHidden; - this.isExternal = isExternal; - this.isDeprecated = isDeprecated; - this.complete = complete; - this.isSuperUser = isSuperUser; - this.isSystemPrincipal = isSystemPrincipal; - this.type = type; - this.parenttype = parenttype; - this.tenantId = tenantId; - this.indexVersion = indexVersion; - this.generationNum = generationNum; - this.created = created; - this.modified = modified; - this.author = author; - this.modifiedBy = modifiedBy; - this.owner = owner; - } - - /** - * Getter for Name. - * Username of the user account - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * Username of the user account - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for DisplayName. - * Display name of the user account - * @return Returns the String - */ - @JsonGetter("displayName") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getDisplayName() { - return displayName; - } - - /** - * Setter for DisplayName. - * Display name of the user account - * @param displayName Value for String - */ - @JsonSetter("displayName") - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - /** - * Getter for Id. - * GUID of the user account - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * GUID of the user account - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for Visibility. - * Visibility of the user account - * @return Returns the String - */ - @JsonGetter("visibility") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getVisibility() { - return visibility; - } - - /** - * Setter for Visibility. - * Visibility of the user account - * @param visibility Value for String - */ - @JsonSetter("visibility") - public void setVisibility(String visibility) { - this.visibility = visibility; - } - - /** - * Getter for Mail. - * Email of the user account - * @return Returns the String - */ - @JsonGetter("mail") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getMail() { - return mail; - } - - /** - * Setter for Mail. - * Email of the user account - * @param mail Value for String - */ - @JsonSetter("mail") - public void setMail(String mail) { - this.mail = mail; - } - - /** - * Getter for Groups. - * Name of the group to which user account is added - * @return Returns the List of GroupNameAndID - */ - @JsonGetter("groups") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getGroups() { - return groups; - } - - /** - * Setter for Groups. - * Name of the group to which user account is added - * @param groups Value for List of GroupNameAndID - */ - @JsonSetter("groups") - public void setGroups(List groups) { - this.groups = groups; - } - - /** - * Getter for Privileges. - * Privileges assigned to user account - * @return Returns the List of String - */ - @JsonGetter("privileges") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getPrivileges() { - return privileges; - } - - /** - * Setter for Privileges. - * Privileges assigned to user account - * @param privileges Value for List of String - */ - @JsonSetter("privileges") - public void setPrivileges(List privileges) { - this.privileges = privileges; - } - - /** - * Getter for Orgs. - * The organizations that user belongs to - * @return Returns the List of OrgType - */ - @JsonGetter("orgs") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getOrgs() { - return orgs; - } - - /** - * Setter for Orgs. - * The organizations that user belongs to - * @param orgs Value for List of OrgType - */ - @JsonSetter("orgs") - public void setOrgs(List orgs) { - this.orgs = orgs; - } - - /** - * Getter for Tags. - * Tags assigned to the user - * @return Returns the List of String - */ - @JsonGetter("tags") - @JsonInclude(JsonInclude.Include.NON_NULL) - public List getTags() { - return tags; - } - - /** - * Setter for Tags. - * Tags assigned to the user - * @param tags Value for List of String - */ - @JsonSetter("tags") - public void setTags(List tags) { - this.tags = tags; - } - - /** - * Getter for State. - * Indicates if the user account is active or inactive - * @return Returns the String - */ - @JsonGetter("state") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getState() { - return state; - } - - /** - * Setter for State. - * Indicates if the user account is active or inactive - * @param state Value for String - */ - @JsonSetter("state") - public void setState(String state) { - this.state = state; - } - - /** - * Getter for NotifyOnShare. - * Indicates if the email should be sent when object is shared with the user - * @return Returns the Boolean - */ - @JsonGetter("notifyOnShare") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getNotifyOnShare() { - return notifyOnShare; - } - - /** - * Setter for NotifyOnShare. - * Indicates if the email should be sent when object is shared with the user - * @param notifyOnShare Value for Boolean - */ - @JsonSetter("notifyOnShare") - public void setNotifyOnShare(Boolean notifyOnShare) { - this.notifyOnShare = notifyOnShare; - } - - /** - * Getter for ShowWalkMe. - * Indicates if the walk me should be shown when logging in - * @return Returns the Boolean - */ - @JsonGetter("showWalkMe") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getShowWalkMe() { - return showWalkMe; - } - - /** - * Setter for ShowWalkMe. - * Indicates if the walk me should be shown when logging in - * @param showWalkMe Value for Boolean - */ - @JsonSetter("showWalkMe") - public void setShowWalkMe(Boolean showWalkMe) { - this.showWalkMe = showWalkMe; - } - - /** - * Getter for AnalystOnboardingComplete. - * Indicates if the onboarding is completed for the user - * @return Returns the Boolean - */ - @JsonGetter("analystOnboardingComplete") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getAnalystOnboardingComplete() { - return analystOnboardingComplete; - } - - /** - * Setter for AnalystOnboardingComplete. - * Indicates if the onboarding is completed for the user - * @param analystOnboardingComplete Value for Boolean - */ - @JsonSetter("analystOnboardingComplete") - public void setAnalystOnboardingComplete(Boolean analystOnboardingComplete) { - this.analystOnboardingComplete = analystOnboardingComplete; - } - - /** - * Getter for FirstLogin. - * Indicates if the use is logging in for the first time - * @return Returns the Integer - */ - @JsonGetter("firstLogin") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Integer getFirstLogin() { - return firstLogin; - } - - /** - * Setter for FirstLogin. - * Indicates if the use is logging in for the first time - * @param firstLogin Value for Integer - */ - @JsonSetter("firstLogin") - public void setFirstLogin(Integer firstLogin) { - this.firstLogin = firstLogin; - } - - /** - * Getter for WelcomeEmailSent. - * Indicates if the welcome email is sent to email associated with the user account - * @return Returns the Boolean - */ - @JsonGetter("welcomeEmailSent") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getWelcomeEmailSent() { - return welcomeEmailSent; - } - - /** - * Setter for WelcomeEmailSent. - * Indicates if the welcome email is sent to email associated with the user account - * @param welcomeEmailSent Value for Boolean - */ - @JsonSetter("welcomeEmailSent") - public void setWelcomeEmailSent(Boolean welcomeEmailSent) { - this.welcomeEmailSent = welcomeEmailSent; - } - - /** - * Getter for IsDeleted. - * Indicates if the user account is deleted - * @return Returns the Boolean - */ - @JsonGetter("isDeleted") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeleted() { - return isDeleted; - } - - /** - * Setter for IsDeleted. - * Indicates if the user account is deleted - * @param isDeleted Value for Boolean - */ - @JsonSetter("isDeleted") - public void setIsDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - } - - /** - * Getter for IsHidden. - * Indicates if the user account is hidden - * @return Returns the Boolean - */ - @JsonGetter("isHidden") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsHidden() { - return isHidden; - } - - /** - * Setter for IsHidden. - * Indicates if the user account is hidden - * @param isHidden Value for Boolean - */ - @JsonSetter("isHidden") - public void setIsHidden(Boolean isHidden) { - this.isHidden = isHidden; - } - - /** - * Getter for IsExternal. - * Indicates if the user account is from external system isDeprecated - * @return Returns the Boolean - */ - @JsonGetter("isExternal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsExternal() { - return isExternal; - } - - /** - * Setter for IsExternal. - * Indicates if the user account is from external system isDeprecated - * @param isExternal Value for Boolean - */ - @JsonSetter("isExternal") - public void setIsExternal(Boolean isExternal) { - this.isExternal = isExternal; - } - - /** - * Getter for IsDeprecated. - * @return Returns the Boolean - */ - @JsonGetter("isDeprecated") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsDeprecated() { - return isDeprecated; - } - - /** - * Setter for IsDeprecated. - * @param isDeprecated Value for Boolean - */ - @JsonSetter("isDeprecated") - public void setIsDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - } - - /** - * Getter for Complete. - * Indicates if the all the properties of user account is provided - * @return Returns the Boolean - */ - @JsonGetter("complete") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getComplete() { - return complete; - } - - /** - * Setter for Complete. - * Indicates if the all the properties of user account is provided - * @param complete Value for Boolean - */ - @JsonSetter("complete") - public void setComplete(Boolean complete) { - this.complete = complete; - } - - /** - * Getter for IsSuperUser. - * Indicates if the user account is super user - * @return Returns the Boolean - */ - @JsonGetter("isSuperUser") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsSuperUser() { - return isSuperUser; - } - - /** - * Setter for IsSuperUser. - * Indicates if the user account is super user - * @param isSuperUser Value for Boolean - */ - @JsonSetter("isSuperUser") - public void setIsSuperUser(Boolean isSuperUser) { - this.isSuperUser = isSuperUser; - } - - /** - * Getter for IsSystemPrincipal. - * Indicates if the user account is system principal - * @return Returns the Boolean - */ - @JsonGetter("isSystemPrincipal") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Boolean getIsSystemPrincipal() { - return isSystemPrincipal; - } - - /** - * Setter for IsSystemPrincipal. - * Indicates if the user account is system principal - * @param isSystemPrincipal Value for Boolean - */ - @JsonSetter("isSystemPrincipal") - public void setIsSystemPrincipal(Boolean isSystemPrincipal) { - this.isSystemPrincipal = isSystemPrincipal; - } - - /** - * Getter for Type. - * Indicates the type of user account - * @return Returns the String - */ - @JsonGetter("type") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getType() { - return type; - } - - /** - * Setter for Type. - * Indicates the type of user account - * @param type Value for String - */ - @JsonSetter("type") - public void setType(String type) { - this.type = type; - } - - /** - * Getter for Parenttype. - * Indicates the type of parent object - * @return Returns the String - */ - @JsonGetter("parenttype") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getParenttype() { - return parenttype; - } - - /** - * Setter for Parenttype. - * Indicates the type of parent object - * @param parenttype Value for String - */ - @JsonSetter("parenttype") - public void setParenttype(String parenttype) { - this.parenttype = parenttype; - } - - /** - * Getter for TenantId. - * Tenant id associated with the user account - * @return Returns the String - */ - @JsonGetter("tenantId") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getTenantId() { - return tenantId; - } - - /** - * Setter for TenantId. - * Tenant id associated with the user account - * @param tenantId Value for String - */ - @JsonSetter("tenantId") - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } - - /** - * Getter for IndexVersion. - * @return Returns the Double - */ - @JsonGetter("indexVersion") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getIndexVersion() { - return indexVersion; - } - - /** - * Setter for IndexVersion. - * @param indexVersion Value for Double - */ - @JsonSetter("indexVersion") - public void setIndexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - } - - /** - * Getter for GenerationNum. - * @return Returns the Double - */ - @JsonGetter("generationNum") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getGenerationNum() { - return generationNum; - } - - /** - * Setter for GenerationNum. - * @param generationNum Value for Double - */ - @JsonSetter("generationNum") - public void setGenerationNum(Double generationNum) { - this.generationNum = generationNum; - } - - /** - * Getter for Created. - * Date and time when user account was created - * @return Returns the Double - */ - @JsonGetter("created") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getCreated() { - return created; - } - - /** - * Setter for Created. - * Date and time when user account was created - * @param created Value for Double - */ - @JsonSetter("created") - public void setCreated(Double created) { - this.created = created; - } - - /** - * Getter for Modified. - * Date and time of last modification of user account - * @return Returns the Double - */ - @JsonGetter("modified") - @JsonInclude(JsonInclude.Include.NON_NULL) - public Double getModified() { - return modified; - } - - /** - * Setter for Modified. - * Date and time of last modification of user account - * @param modified Value for Double - */ - @JsonSetter("modified") - public void setModified(Double modified) { - this.modified = modified; - } - - /** - * Getter for Author. - * @return Returns the UserNameAndID - */ - @JsonGetter("author") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getAuthor() { - return author; - } - - /** - * Setter for Author. - * @param author Value for UserNameAndID - */ - @JsonSetter("author") - public void setAuthor(UserNameAndID author) { - this.author = author; - } - - /** - * Getter for ModifiedBy. - * @return Returns the UserNameAndID - */ - @JsonGetter("modifiedBy") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getModifiedBy() { - return modifiedBy; - } - - /** - * Setter for ModifiedBy. - * @param modifiedBy Value for UserNameAndID - */ - @JsonSetter("modifiedBy") - public void setModifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - } - - /** - * Getter for Owner. - * @return Returns the UserNameAndID - */ - @JsonGetter("owner") - @JsonInclude(JsonInclude.Include.NON_NULL) - public UserNameAndID getOwner() { - return owner; - } - - /** - * Setter for Owner. - * @param owner Value for UserNameAndID - */ - @JsonSetter("owner") - public void setOwner(UserNameAndID owner) { - this.owner = owner; - } - - /** - * Converts this UserResponse into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "UserResponse [" + "name=" + name + ", displayName=" + displayName + ", id=" + id - + ", visibility=" + visibility + ", mail=" + mail + ", groups=" + groups - + ", privileges=" + privileges + ", orgs=" + orgs + ", tags=" + tags + ", state=" - + state + ", notifyOnShare=" + notifyOnShare + ", showWalkMe=" + showWalkMe - + ", analystOnboardingComplete=" + analystOnboardingComplete + ", firstLogin=" - + firstLogin + ", welcomeEmailSent=" + welcomeEmailSent + ", isDeleted=" + isDeleted - + ", isHidden=" + isHidden + ", isExternal=" + isExternal + ", isDeprecated=" - + isDeprecated + ", complete=" + complete + ", isSuperUser=" + isSuperUser - + ", isSystemPrincipal=" + isSystemPrincipal + ", type=" + type + ", parenttype=" - + parenttype + ", tenantId=" + tenantId + ", indexVersion=" + indexVersion - + ", generationNum=" + generationNum + ", created=" + created + ", modified=" - + modified + ", author=" + author + ", modifiedBy=" + modifiedBy + ", owner=" - + owner + "]"; - } - - /** - * Builds a new {@link UserResponse.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link UserResponse.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .displayName(getDisplayName()) - .id(getId()) - .visibility(getVisibility()) - .mail(getMail()) - .groups(getGroups()) - .privileges(getPrivileges()) - .orgs(getOrgs()) - .tags(getTags()) - .state(getState()) - .notifyOnShare(getNotifyOnShare()) - .showWalkMe(getShowWalkMe()) - .analystOnboardingComplete(getAnalystOnboardingComplete()) - .firstLogin(getFirstLogin()) - .welcomeEmailSent(getWelcomeEmailSent()) - .isDeleted(getIsDeleted()) - .isHidden(getIsHidden()) - .isExternal(getIsExternal()) - .isDeprecated(getIsDeprecated()) - .complete(getComplete()) - .isSuperUser(getIsSuperUser()) - .isSystemPrincipal(getIsSystemPrincipal()) - .type(getType()) - .parenttype(getParenttype()) - .tenantId(getTenantId()) - .indexVersion(getIndexVersion()) - .generationNum(getGenerationNum()) - .created(getCreated()) - .modified(getModified()) - .author(getAuthor()) - .modifiedBy(getModifiedBy()) - .owner(getOwner()); - return builder; - } - - /** - * Class to build instances of {@link UserResponse}. - */ - public static class Builder { - private String name; - private String displayName; - private String id; - private String visibility; - private String mail; - private List groups; - private List privileges; - private List orgs; - private List tags; - private String state; - private Boolean notifyOnShare; - private Boolean showWalkMe; - private Boolean analystOnboardingComplete; - private Integer firstLogin; - private Boolean welcomeEmailSent; - private Boolean isDeleted; - private Boolean isHidden; - private Boolean isExternal; - private Boolean isDeprecated; - private Boolean complete; - private Boolean isSuperUser; - private Boolean isSystemPrincipal; - private String type; - private String parenttype; - private String tenantId; - private Double indexVersion; - private Double generationNum; - private Double created; - private Double modified; - private UserNameAndID author; - private UserNameAndID modifiedBy; - private UserNameAndID owner; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for displayName. - * @param displayName String value for displayName. - * @return Builder - */ - public Builder displayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for visibility. - * @param visibility String value for visibility. - * @return Builder - */ - public Builder visibility(String visibility) { - this.visibility = visibility; - return this; - } - - /** - * Setter for mail. - * @param mail String value for mail. - * @return Builder - */ - public Builder mail(String mail) { - this.mail = mail; - return this; - } - - /** - * Setter for groups. - * @param groups List of GroupNameAndID value for groups. - * @return Builder - */ - public Builder groups(List groups) { - this.groups = groups; - return this; - } - - /** - * Setter for privileges. - * @param privileges List of String value for privileges. - * @return Builder - */ - public Builder privileges(List privileges) { - this.privileges = privileges; - return this; - } - - /** - * Setter for orgs. - * @param orgs List of OrgType value for orgs. - * @return Builder - */ - public Builder orgs(List orgs) { - this.orgs = orgs; - return this; - } - - /** - * Setter for tags. - * @param tags List of String value for tags. - * @return Builder - */ - public Builder tags(List tags) { - this.tags = tags; - return this; - } - - /** - * Setter for state. - * @param state String value for state. - * @return Builder - */ - public Builder state(String state) { - this.state = state; - return this; - } - - /** - * Setter for notifyOnShare. - * @param notifyOnShare Boolean value for notifyOnShare. - * @return Builder - */ - public Builder notifyOnShare(Boolean notifyOnShare) { - this.notifyOnShare = notifyOnShare; - return this; - } - - /** - * Setter for showWalkMe. - * @param showWalkMe Boolean value for showWalkMe. - * @return Builder - */ - public Builder showWalkMe(Boolean showWalkMe) { - this.showWalkMe = showWalkMe; - return this; - } - - /** - * Setter for analystOnboardingComplete. - * @param analystOnboardingComplete Boolean value for analystOnboardingComplete. - * @return Builder - */ - public Builder analystOnboardingComplete(Boolean analystOnboardingComplete) { - this.analystOnboardingComplete = analystOnboardingComplete; - return this; - } - - /** - * Setter for firstLogin. - * @param firstLogin Integer value for firstLogin. - * @return Builder - */ - public Builder firstLogin(Integer firstLogin) { - this.firstLogin = firstLogin; - return this; - } - - /** - * Setter for welcomeEmailSent. - * @param welcomeEmailSent Boolean value for welcomeEmailSent. - * @return Builder - */ - public Builder welcomeEmailSent(Boolean welcomeEmailSent) { - this.welcomeEmailSent = welcomeEmailSent; - return this; - } - - /** - * Setter for isDeleted. - * @param isDeleted Boolean value for isDeleted. - * @return Builder - */ - public Builder isDeleted(Boolean isDeleted) { - this.isDeleted = isDeleted; - return this; - } - - /** - * Setter for isHidden. - * @param isHidden Boolean value for isHidden. - * @return Builder - */ - public Builder isHidden(Boolean isHidden) { - this.isHidden = isHidden; - return this; - } - - /** - * Setter for isExternal. - * @param isExternal Boolean value for isExternal. - * @return Builder - */ - public Builder isExternal(Boolean isExternal) { - this.isExternal = isExternal; - return this; - } - - /** - * Setter for isDeprecated. - * @param isDeprecated Boolean value for isDeprecated. - * @return Builder - */ - public Builder isDeprecated(Boolean isDeprecated) { - this.isDeprecated = isDeprecated; - return this; - } - - /** - * Setter for complete. - * @param complete Boolean value for complete. - * @return Builder - */ - public Builder complete(Boolean complete) { - this.complete = complete; - return this; - } - - /** - * Setter for isSuperUser. - * @param isSuperUser Boolean value for isSuperUser. - * @return Builder - */ - public Builder isSuperUser(Boolean isSuperUser) { - this.isSuperUser = isSuperUser; - return this; - } - - /** - * Setter for isSystemPrincipal. - * @param isSystemPrincipal Boolean value for isSystemPrincipal. - * @return Builder - */ - public Builder isSystemPrincipal(Boolean isSystemPrincipal) { - this.isSystemPrincipal = isSystemPrincipal; - return this; - } - - /** - * Setter for type. - * @param type String value for type. - * @return Builder - */ - public Builder type(String type) { - this.type = type; - return this; - } - - /** - * Setter for parenttype. - * @param parenttype String value for parenttype. - * @return Builder - */ - public Builder parenttype(String parenttype) { - this.parenttype = parenttype; - return this; - } - - /** - * Setter for tenantId. - * @param tenantId String value for tenantId. - * @return Builder - */ - public Builder tenantId(String tenantId) { - this.tenantId = tenantId; - return this; - } - - /** - * Setter for indexVersion. - * @param indexVersion Double value for indexVersion. - * @return Builder - */ - public Builder indexVersion(Double indexVersion) { - this.indexVersion = indexVersion; - return this; - } - - /** - * Setter for generationNum. - * @param generationNum Double value for generationNum. - * @return Builder - */ - public Builder generationNum(Double generationNum) { - this.generationNum = generationNum; - return this; - } - - /** - * Setter for created. - * @param created Double value for created. - * @return Builder - */ - public Builder created(Double created) { - this.created = created; - return this; - } - - /** - * Setter for modified. - * @param modified Double value for modified. - * @return Builder - */ - public Builder modified(Double modified) { - this.modified = modified; - return this; - } - - /** - * Setter for author. - * @param author UserNameAndID value for author. - * @return Builder - */ - public Builder author(UserNameAndID author) { - this.author = author; - return this; - } - - /** - * Setter for modifiedBy. - * @param modifiedBy UserNameAndID value for modifiedBy. - * @return Builder - */ - public Builder modifiedBy(UserNameAndID modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - /** - * Setter for owner. - * @param owner UserNameAndID value for owner. - * @return Builder - */ - public Builder owner(UserNameAndID owner) { - this.owner = owner; - return this; - } - - /** - * Builds a new {@link UserResponse} object using the set fields. - * @return {@link UserResponse} - */ - public UserResponse build() { - return new UserResponse(name, displayName, id, visibility, mail, groups, privileges, - orgs, tags, state, notifyOnShare, showWalkMe, analystOnboardingComplete, - firstLogin, welcomeEmailSent, isDeleted, isHidden, isExternal, isDeprecated, - complete, isSuperUser, isSystemPrincipal, type, parenttype, tenantId, - indexVersion, generationNum, created, modified, author, modifiedBy, owner); - } - } -} diff --git a/Java/src/main/java/localhost/models/Visibility1Enum.java b/Java/src/main/java/localhost/models/Visibility1Enum.java deleted file mode 100644 index 3f5280035..000000000 --- a/Java/src/main/java/localhost/models/Visibility1Enum.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Visibility1Enum to be used. - */ -public enum Visibility1Enum { - DEFAULT, - - NON_SHARABLE, - - SHARABLE; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - DEFAULT.value = "DEFAULT"; - NON_SHARABLE.value = "NON_SHARABLE"; - SHARABLE.value = "SHARABLE"; - - valueMap.put("DEFAULT", DEFAULT); - valueMap.put("NON_SHARABLE", NON_SHARABLE); - valueMap.put("SHARABLE", SHARABLE); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Visibility1Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Visibility1Enum values to list of string values. - * @param toConvert The list of Visibility1Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Visibility1Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/Visibility2Enum.java b/Java/src/main/java/localhost/models/Visibility2Enum.java deleted file mode 100644 index 9b705e9e0..000000000 --- a/Java/src/main/java/localhost/models/Visibility2Enum.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * Visibility2Enum to be used. - */ -public enum Visibility2Enum { - DEFAULT, - - NON_SHARABLE, - - SHARABLE; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - DEFAULT.value = "DEFAULT"; - NON_SHARABLE.value = "NON_SHARABLE"; - SHARABLE.value = "SHARABLE"; - - valueMap.put("DEFAULT", DEFAULT); - valueMap.put("NON_SHARABLE", NON_SHARABLE); - valueMap.put("SHARABLE", SHARABLE); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static Visibility2Enum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of Visibility2Enum values to list of string values. - * @param toConvert The list of Visibility2Enum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (Visibility2Enum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/VisibilityEnum.java b/Java/src/main/java/localhost/models/VisibilityEnum.java deleted file mode 100644 index 1159c340d..000000000 --- a/Java/src/main/java/localhost/models/VisibilityEnum.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - -/** - * VisibilityEnum to be used. - */ -public enum VisibilityEnum { - DEFAULT, - - NON_SHARABLE, - - SHARABLE; - - - private static TreeMap valueMap = new TreeMap<>(); - private String value; - - static { - DEFAULT.value = "DEFAULT"; - NON_SHARABLE.value = "NON_SHARABLE"; - SHARABLE.value = "SHARABLE"; - - valueMap.put("DEFAULT", DEFAULT); - valueMap.put("NON_SHARABLE", NON_SHARABLE); - valueMap.put("SHARABLE", SHARABLE); - } - - /** - * Returns the enum member associated with the given string value. - * @param toConvert String value to get enum member. - * @return The enum member against the given string value. - */ - @com.fasterxml.jackson.annotation.JsonCreator - public static VisibilityEnum fromString(String toConvert) { - return valueMap.get(toConvert); - } - - /** - * Returns the string value associated with the enum member. - * @return The string value against enum member. - */ - @com.fasterxml.jackson.annotation.JsonValue - public String value() { - return value; - } - - /** - * Get string representation of this enum. - */ - @Override - public String toString() { - return value.toString(); - } - - /** - * Convert list of VisibilityEnum values to list of string values. - * @param toConvert The list of VisibilityEnum values to convert. - * @return List of representative string values. - */ - public static List toValue(List toConvert) { - if (toConvert == null) { - return null; - } - List convertedValues = new ArrayList<>(); - for (VisibilityEnum enumValue : toConvert) { - convertedValues.add(enumValue.value); - } - return convertedValues; - } -} \ No newline at end of file diff --git a/Java/src/main/java/localhost/models/VizType.java b/Java/src/main/java/localhost/models/VizType.java deleted file mode 100644 index 1d61740f5..000000000 --- a/Java/src/main/java/localhost/models/VizType.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.models; - -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonSetter; -import io.apimatic.core.types.BaseModel; - -/** - * This is a model class for VizType type. - */ -public class VizType { - private String name; - private String id; - private String querySql; - - /** - * Default constructor. - */ - public VizType() { - } - - /** - * Initialization constructor. - * @param name String value for name. - * @param id String value for id. - * @param querySql String value for querySql. - */ - public VizType( - String name, - String id, - String querySql) { - this.name = name; - this.id = id; - this.querySql = querySql; - } - - /** - * Getter for Name. - * The name of the visualization - * @return Returns the String - */ - @JsonGetter("name") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getName() { - return name; - } - - /** - * Setter for Name. - * The name of the visualization - * @param name Value for String - */ - @JsonSetter("name") - public void setName(String name) { - this.name = name; - } - - /** - * Getter for Id. - * The GUID of the visualization - * @return Returns the String - */ - @JsonGetter("id") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getId() { - return id; - } - - /** - * Setter for Id. - * The GUID of the visualization - * @param id Value for String - */ - @JsonSetter("id") - public void setId(String id) { - this.id = id; - } - - /** - * Getter for QuerySql. - * SQL query associated with the visualization - * @return Returns the String - */ - @JsonGetter("querySql") - @JsonInclude(JsonInclude.Include.NON_NULL) - public String getQuerySql() { - return querySql; - } - - /** - * Setter for QuerySql. - * SQL query associated with the visualization - * @param querySql Value for String - */ - @JsonSetter("querySql") - public void setQuerySql(String querySql) { - this.querySql = querySql; - } - - /** - * Converts this VizType into string format. - * @return String representation of this class - */ - @Override - public String toString() { - return "VizType [" + "name=" + name + ", id=" + id + ", querySql=" + querySql + "]"; - } - - /** - * Builds a new {@link VizType.Builder} object. - * Creates the instance with the state of the current model. - * @return a new {@link VizType.Builder} object - */ - public Builder toBuilder() { - Builder builder = new Builder() - .name(getName()) - .id(getId()) - .querySql(getQuerySql()); - return builder; - } - - /** - * Class to build instances of {@link VizType}. - */ - public static class Builder { - private String name; - private String id; - private String querySql; - - - - /** - * Setter for name. - * @param name String value for name. - * @return Builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * Setter for id. - * @param id String value for id. - * @return Builder - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * Setter for querySql. - * @param querySql String value for querySql. - * @return Builder - */ - public Builder querySql(String querySql) { - this.querySql = querySql; - return this; - } - - /** - * Builds a new {@link VizType} object using the set fields. - * @return {@link VizType} - */ - public VizType build() { - return new VizType(name, id, querySql); - } - } -} diff --git a/Java/src/main/java/localhost/utilities/FileWrapper.java b/Java/src/main/java/localhost/utilities/FileWrapper.java deleted file mode 100644 index fb6d75f3c..000000000 --- a/Java/src/main/java/localhost/utilities/FileWrapper.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.utilities; - -import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.File; -import io.apimatic.coreinterfaces.type.CoreFileWrapper; - -/** - * Class to wrap file and contentType to be sent as part of a HTTP request. - */ -public class FileWrapper implements CoreFileWrapper { - - @JsonInclude(JsonInclude.Include.NON_NULL) - private File file; - @JsonInclude(JsonInclude.Include.NON_NULL) - private String contentType; - - /** - * Initialization constructor. - * @param file File object to be wrapped - * @param contentType content type of file - */ - public FileWrapper(File file, String contentType) { - this.file = file; - this.contentType = contentType; - } - - /** - * Initialization constructor. - * @param file File object to be wrapped - */ - public FileWrapper(File file) { - this.file = file; - } - - /** - * Getter for file. - * @return File instance - */ - public File getFile() { - return file; - } - - /** - * Getter for content type. - * @return content type of the file - */ - public String getContentType() { - return contentType; - } -} diff --git a/Java/src/test/java/localhost/controllers/BaseControllerTest.java b/Java/src/test/java/localhost/controllers/BaseControllerTest.java deleted file mode 100644 index 99963ef27..000000000 --- a/Java/src/test/java/localhost/controllers/BaseControllerTest.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import localhost.Environment; -import localhost.ThoughtSpotPublicRESTAPIClient; -import localhost.testing.HttpCallbackCatcher; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.rules.Timeout; - -/** - * Base class for all test cases. - */ -public class BaseControllerTest { - /** - * Test configuration. - */ - public static final int REQUEST_TIMEOUT = 30; - - public static final double ASSERT_PRECISION = 0.01; - - /** - * Global rules for tests. - */ - @Rule - public Timeout globalTimeout = Timeout.seconds(REQUEST_TIMEOUT); - - /** - * Test fixtures, - * Used to serve as HttpCallback and to capture request & response. - */ - - protected static HttpCallbackCatcher httpResponse; - - /** - * Setup test. - */ - @BeforeClass - public static void setUp() throws Exception { - httpResponse = new HttpCallbackCatcher(); - } - - /** - * Tear down test. - */ - @AfterClass - public static void tearDown() throws Exception { - httpResponse = null; - } - - /** - * Create test configuration from Environment variables. - */ - protected static ThoughtSpotPublicRESTAPIClient createConfigurationFromEnvironment() { - ThoughtSpotPublicRESTAPIClient.Builder builder = - new ThoughtSpotPublicRESTAPIClient.Builder(); - - final String environment = System.getenv("THOUGHT_SPOT_PUBLIC_RESTAPI_LIB_ENVIRONMENT"); - final String baseUrl = System.getenv("THOUGHT_SPOT_PUBLIC_RESTAPI_LIB_BASE_URL"); - final String timeout = System.getenv("THOUGHT_SPOT_PUBLIC_RESTAPI_LIB_TIMEOUT"); - final String accessToken = System.getenv("THOUGHT_SPOT_PUBLIC_RESTAPI_LIB_ACCESS_TOKEN"); - - if (accessToken != null) { - builder.accessToken(accessToken); - } - if (environment != null) { - builder.environment(Environment.fromString(environment)); - } - if (baseUrl != null) { - builder.baseUrl(baseUrl); - } - if (timeout != null) { - builder.httpClientConfig(configBuilder -> configBuilder.timeout( - Long.parseLong(timeout))); - } - return builder.build(); - } - - - /** - * Create test configuration. - */ - protected static ThoughtSpotPublicRESTAPIClient createConfiguration() { - // Set Configuration parameters for test execution - ThoughtSpotPublicRESTAPIClient config = createConfigurationFromEnvironment(); - config = config.newBuilder() - .httpCallback(httpResponse) - .build(); - return config; - } -} diff --git a/Java/src/test/java/localhost/controllers/GroupControllerTest.java b/Java/src/test/java/localhost/controllers/GroupControllerTest.java deleted file mode 100644 index 0de0d7002..000000000 --- a/Java/src/test/java/localhost/controllers/GroupControllerTest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import io.apimatic.core.testing.TestHelper; -import java.util.LinkedHashMap; -import java.util.Map; -import localhost.ThoughtSpotPublicRESTAPIClient; -import localhost.exceptions.ApiException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class GroupControllerTest extends BaseControllerTest { - - /** - * Client instance. - */ - private static ThoughtSpotPublicRESTAPIClient client; - - /** - * Controller instance (for all tests). - */ - private static GroupController controller; - - /** - * Setup test class. - */ - @BeforeClass - public static void setUpClass() { - client = createConfiguration(); - controller = client.getGroupController(); - } - - /** - * Tear down test class. - */ - @AfterClass - public static void tearDownClass() { - controller = null; - } - - /** - * To get the details of a specific group by name or id, use this endpoint. At Least one value - * needed. When both are given id will be considered to fetch user information. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2GetGroup() throws Exception { - // Parameters for the API call - String name = null; - String id = null; - - // Set callback and perform API call - try { - controller.restapiV2GetGroup(name, id); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - - /** - * To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At - * Least one value needed. When both are given user id will be considered to fetch user - * information. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2DeleteGroup() throws Exception { - // Parameters for the API call - String name = null; - String id = null; - - // Set callback and perform API call - try { - controller.restapiV2DeleteGroup(name, id); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - -} diff --git a/Java/src/test/java/localhost/controllers/MetadataControllerTest.java b/Java/src/test/java/localhost/controllers/MetadataControllerTest.java deleted file mode 100644 index ec7d97e3c..000000000 --- a/Java/src/test/java/localhost/controllers/MetadataControllerTest.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import io.apimatic.core.testing.TestHelper; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import localhost.ThoughtSpotPublicRESTAPIClient; -import localhost.exceptions.ApiException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class MetadataControllerTest extends BaseControllerTest { - - /** - * Client instance. - */ - private static ThoughtSpotPublicRESTAPIClient client; - - /** - * Controller instance (for all tests). - */ - private static MetadataController controller; - - /** - * Setup test class. - */ - @BeforeClass - public static void setUpClass() { - client = createConfiguration(); - controller = client.getMetadataController(); - } - - /** - * Tear down test class. - */ - @AfterClass - public static void tearDownClass() { - controller = null; - } - - /** - * To get details of a specific tag, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2GetTag() throws Exception { - // Parameters for the API call - String name = null; - String id = null; - - // Set callback and perform API call - try { - controller.restapiV2GetTag(name, id); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - - /** - * To get the name and id of liveboard that is set as a home liveboard for a user, use this - * endpoint. At least one of user id or username is required. When both are given, then id will - * be considered. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2GetHomeLiveboard() throws Exception { - // Parameters for the API call - String userName = null; - String userId = null; - - // Set callback and perform API call - try { - controller.restapiV2GetHomeLiveboard(userName, userId); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - - /** - * To programmatically delete tags, use this endpoint. At least one of id or name of tag is - * required. When both are given, then id will be considered. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2DeleteTag() throws Exception { - // Parameters for the API call - String name = null; - String id = null; - - // Set callback and perform API call - try { - controller.restapiV2DeleteTag(name, id); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - -} diff --git a/Java/src/test/java/localhost/controllers/OrgControllerTest.java b/Java/src/test/java/localhost/controllers/OrgControllerTest.java deleted file mode 100644 index 4f746b12f..000000000 --- a/Java/src/test/java/localhost/controllers/OrgControllerTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import io.apimatic.core.testing.TestHelper; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import localhost.ThoughtSpotPublicRESTAPIClient; -import localhost.exceptions.ApiException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class OrgControllerTest extends BaseControllerTest { - - /** - * Client instance. - */ - private static ThoughtSpotPublicRESTAPIClient client; - - /** - * Controller instance (for all tests). - */ - private static OrgController controller; - - /** - * Setup test class. - */ - @BeforeClass - public static void setUpClass() { - client = createConfiguration(); - controller = client.getOrgController(); - } - - /** - * Tear down test class. - */ - @AfterClass - public static void tearDownClass() { - controller = null; - } - - /** - * To get the details of a specific organization by name or id, use this endpoint. At least one - * value needed. When both are given,then id will be considered to fetch organization - * information. Requires Administration privilege for tenant. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2GetOrg() throws Exception { - // Parameters for the API call - String name = null; - Integer id = null; - - // Set callback and perform API call - try { - controller.restapiV2GetOrg(name, id); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - - /** - * To remove an organization from the ThoughtSpot system, send a DELETE request to this - * endpoint. At least one value is needed. When both id and name are given, then id will be - * considered. Requires Administration privilege for tenant. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2DeleteOrg() throws Exception { - // Parameters for the API call - String name = null; - Integer id = null; - - // Set callback and perform API call - try { - controller.restapiV2DeleteOrg(name, id); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - -} diff --git a/Java/src/test/java/localhost/controllers/SecurityControllerTest.java b/Java/src/test/java/localhost/controllers/SecurityControllerTest.java deleted file mode 100644 index 507a16b18..000000000 --- a/Java/src/test/java/localhost/controllers/SecurityControllerTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import io.apimatic.core.testing.TestHelper; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import localhost.ThoughtSpotPublicRESTAPIClient; -import localhost.exceptions.ApiException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class SecurityControllerTest extends BaseControllerTest { - - /** - * Client instance. - */ - private static ThoughtSpotPublicRESTAPIClient client; - - /** - * Controller instance (for all tests). - */ - private static SecurityController controller; - - /** - * Setup test class. - */ - @BeforeClass - public static void setUpClass() { - client = createConfiguration(); - controller = client.getSecurityController(); - } - - /** - * Tear down test class. - */ - @AfterClass - public static void tearDownClass() { - controller = null; - } - - /** - * Use this endpoint to list the objects on which a user or user group has permission. The - * response will include only those objects on which the user or user group has either VIEW OR - * MODIFY permission. Requires administration privilege. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2GetPermissionForPrincipal() throws Exception { - // Parameters for the API call - String id = null; - String name = null; - - // Set callback and perform API call - try { - controller.restapiV2GetPermissionForPrincipal(id, name); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - -} diff --git a/Java/src/test/java/localhost/controllers/SessionControllerTest.java b/Java/src/test/java/localhost/controllers/SessionControllerTest.java deleted file mode 100644 index 15b46c9a6..000000000 --- a/Java/src/test/java/localhost/controllers/SessionControllerTest.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import io.apimatic.core.testing.TestHelper; -import java.util.LinkedHashMap; -import java.util.Map; -import localhost.ThoughtSpotPublicRESTAPIClient; -import localhost.exceptions.ApiException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class SessionControllerTest extends BaseControllerTest { - - /** - * Client instance. - */ - private static ThoughtSpotPublicRESTAPIClient client; - - /** - * Controller instance (for all tests). - */ - private static SessionController controller; - - /** - * Setup test class. - */ - @BeforeClass - public static void setUpClass() { - client = createConfiguration(); - controller = client.getSessionController(); - } - - /** - * Tear down test class. - */ - @AfterClass - public static void tearDownClass() { - controller = null; - } - - /** - * You can programmatically create login session for a user in ThoughtSpot using this endpoint. - * You can create session by either providing userName and password as inputs in this request - * body or by including "Authorization" header with the token generated through the endpoint - * /tspublic/rest/v2/session/gettoken. userName and password input is given precedence over - * "Authorization" header, when both are included in the request. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2Login() throws Exception { - // Parameters for the API call - String userName = null; - String password = null; - Boolean rememberMe = null; - - // Set callback and perform API call - try { - controller.restapiV2Login(userName, password, rememberMe); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - -} diff --git a/Java/src/test/java/localhost/controllers/UserControllerTest.java b/Java/src/test/java/localhost/controllers/UserControllerTest.java deleted file mode 100644 index 556e8c501..000000000 --- a/Java/src/test/java/localhost/controllers/UserControllerTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.controllers; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import io.apimatic.core.testing.TestHelper; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import localhost.ThoughtSpotPublicRESTAPIClient; -import localhost.exceptions.ApiException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class UserControllerTest extends BaseControllerTest { - - /** - * Client instance. - */ - private static ThoughtSpotPublicRESTAPIClient client; - - /** - * Controller instance (for all tests). - */ - private static UserController controller; - - /** - * Setup test class. - */ - @BeforeClass - public static void setUpClass() { - client = createConfiguration(); - controller = client.getUserController(); - } - - /** - * Tear down test class. - */ - @AfterClass - public static void tearDownClass() { - controller = null; - } - - /** - * To get the details of a specific user account by username or user id, use this endpoint. At - * Least one value is needed. When both are given, user id will be considered to fetch user - * information. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2GetUser() throws Exception { - // Parameters for the API call - String name = null; - String id = null; - - // Set callback and perform API call - try { - controller.restapiV2GetUser(name, id); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - - /** - * To remove a user from the ThoughtSpot system, use this endpoint. At Least one value needed. - * When both are given user id will be considered to delete user. - * @throws Throwable exception if occurs. - */ - @Test - public void testTestRestapiV2DeleteUser() throws Exception { - // Parameters for the API call - String name = null; - String id = null; - Integer orgId = null; - - // Set callback and perform API call - try { - controller.restapiV2DeleteUser(name, id, orgId); - } catch (ApiException e) { - // Empty block - } - - // Test whether the response is null - assertNotNull("Response is null", - httpResponse.getResponse()); - // Test response code - assertEquals("Status is not 200", - 200, httpResponse.getResponse().getStatusCode()); - - // Test headers - Map headers = new LinkedHashMap(); - headers.put("Content-Type", "application/json"); - - assertTrue("Headers do not match", TestHelper.areHeadersProperSubsetOf( - headers, httpResponse.getResponse().getHeaders().asSimpleMap(), true)); - - } - -} diff --git a/Java/src/test/java/localhost/testing/HttpCallbackCatcher.java b/Java/src/test/java/localhost/testing/HttpCallbackCatcher.java deleted file mode 100644 index 907a356a5..000000000 --- a/Java/src/test/java/localhost/testing/HttpCallbackCatcher.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * ThoughtSpotPublicRESTAPILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -package localhost.testing; - -import localhost.http.client.HttpCallback; -import localhost.http.request.HttpRequest; -import localhost.http.response.HttpResponse; -import io.apimatic.coreinterfaces.http.request.Request; -import io.apimatic.coreinterfaces.http.Context; - -/** - * An HTTPCallback that captures the request and response for use later. - */ -public class HttpCallbackCatcher implements HttpCallback { - - private HttpRequest request; - private HttpResponse response; - - /** - * Call back executed before the HTTP request is sent. - */ - public void onBeforeRequest(Request request) { - // Nothing to do here - } - - /** - * Call back executed after the HTTP response is received - * but before the APICallback's handler is called. - */ - public void onAfterResponse(Context context) { - setRequest((HttpRequest) context.getRequest()); - setResponse((HttpResponse) context.getResponse()); - } - - /** - * Get the HTTP Request object associated with this API call. - * @return the HTTP Request - */ - public HttpRequest getRequest() { - return request; - } - - /** - * Set the HTTP Request object associated with this API call. - * @param request the HTTP Request - */ - private void setRequest(HttpRequest prequest) { - this.request = prequest; - } - - /** - * Get the HTTP Response object associated with this API call. - * @return the HTTP Response - */ - public HttpResponse getResponse() { - return response; - } - - /** - * Get the HTTP Response object associated with this API call. - * @param httpResponse the HTTP Response - */ - private void setResponse(HttpResponse httpResponse) { - this.response = httpResponse; - } -} diff --git a/Python/.gitignore b/Python/.gitignore deleted file mode 100644 index 94487b951..000000000 --- a/Python/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.pyc diff --git a/Python/LICENSE b/Python/LICENSE deleted file mode 100644 index c571aa529..000000000 --- a/Python/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -License: -======== -The MIT License (MIT) -http://opensource.org/licenses/MIT - -Copyright (c) 2014 - 2022 APIMATIC Limited - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Trade Mark: -========== -APIMATIC is a trade mark for APIMATIC Limited \ No newline at end of file diff --git a/Python/MANIFEST.in b/Python/MANIFEST.in deleted file mode 100644 index 64aa22e70..000000000 --- a/Python/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -include LICENSE -include README.md diff --git a/Python/README.md b/Python/README.md deleted file mode 100644 index 795928ba7..000000000 --- a/Python/README.md +++ /dev/null @@ -1,86 +0,0 @@ - -# Getting Started with ThoughtSpot Public REST API - -## Install the Package - -The package is compatible with Python versions `3 >=3.7, <= 3.10`. -Install the package from PyPi using the following pip command: - -```python -pip install thoughtspot-rest-api-sdk==1.13.1 -``` - -You can also view the package at: -https://pypi.python.org/pypi/thoughtspot-rest-api-sdk - -## Test the SDK - -You can test the generated SDK and the server with test cases. `unittest` is used as the testing framework and `pytest` is used as the test runner. You can run the tests as follows: - -Navigate to the root directory of the SDK and run the following commands - -``` -pip install -r test-requirements.txt -pytest -``` - -## Initialize the API Client - -**_Note:_** Documentation for the client can be found [here.](doc/client.md) - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `base_url` | `string` | *Default*: `'https://localhost:443'` | -| `environment` | Environment | The API environment.
**Default: `Environment.PRODUCTION`** | -| `http_client_instance` | `HttpClient` | The Http Client passed from the sdk user for making requests | -| `override_http_client_configuration` | `bool` | The value which determines to override properties of the passed Http Client from the sdk user | -| `http_call_back` | `HttpCallBack` | The callback value that is invoked before and after an HTTP call is made to an endpoint | -| `timeout` | `float` | The value to use for connection timeout.
**Default: 60** | -| `max_retries` | `int` | The number of times to retry an endpoint call if it fails.
**Default: 0** | -| `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try.
**Default: 2** | -| `retry_statuses` | `Array of int` | The http statuses on which retry is to be done.
**Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** | -| `retry_methods` | `Array of string` | The http methods on which retry is to be done.
**Default: ['GET', 'PUT', 'GET', 'PUT']** | -| `skip_ssl_cert_verification` | `boolean` | Set to true to allow skipping ssl certificate verification | -| `access_token` | `string` | The OAuth 2.0 Access Token to use for API requests. | - -The API client can be initialized as follows: - -```python -from thoughtspotpublicrestapi.thoughtspotpublicrestapi_client import ThoughtspotpublicrestapiClient -from thoughtspotpublicrestapi.configuration import Environment - -client = ThoughtspotpublicrestapiClient( - access_token='AccessToken', - environment=Environment.PRODUCTION, - base_url = 'https://localhost:443',) -``` - -## Authorization - -This API uses `OAuth 2 Bearer token`. - -## List of APIs - -* [User](doc/controllers/user.md) -* [Group](doc/controllers/group.md) -* [Metadata](doc/controllers/metadata.md) -* [Database](doc/controllers/database.md) -* [Connection](doc/controllers/connection.md) -* [Data](doc/controllers/data.md) -* [Logs](doc/controllers/logs.md) -* [Custom Actions](doc/controllers/custom-actions.md) -* [Security](doc/controllers/security.md) -* [Org](doc/controllers/org.md) -* [Session](doc/controllers/session.md) -* [Admin](doc/controllers/admin.md) -* [Report](doc/controllers/report.md) -* [Materialization](doc/controllers/materialization.md) - -## Classes Documentation - -* [Utility Classes](doc/utility-classes.md) -* [HttpResponse](doc/http-response.md) -* [HttpRequest](doc/http-request.md) - diff --git a/Python/doc/client.md b/Python/doc/client.md deleted file mode 100644 index dbfd8e04c..000000000 --- a/Python/doc/client.md +++ /dev/null @@ -1,55 +0,0 @@ - -# Client Class Documentation - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `base_url` | `string` | *Default*: `'https://localhost:443'` | -| `environment` | Environment | The API environment.
**Default: `Environment.PRODUCTION`** | -| `http_client_instance` | `HttpClient` | The Http Client passed from the sdk user for making requests | -| `override_http_client_configuration` | `bool` | The value which determines to override properties of the passed Http Client from the sdk user | -| `http_call_back` | `HttpCallBack` | The callback value that is invoked before and after an HTTP call is made to an endpoint | -| `timeout` | `float` | The value to use for connection timeout.
**Default: 60** | -| `max_retries` | `int` | The number of times to retry an endpoint call if it fails.
**Default: 0** | -| `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try.
**Default: 2** | -| `retry_statuses` | `Array of int` | The http statuses on which retry is to be done.
**Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** | -| `retry_methods` | `Array of string` | The http methods on which retry is to be done.
**Default: ['GET', 'PUT', 'GET', 'PUT']** | -| `skip_ssl_cert_verification` | `boolean` | Set to true to allow skipping ssl certificate verification | -| `access_token` | `string` | The OAuth 2.0 Access Token to use for API requests. | - -The API client can be initialized as follows: - -```python -from thoughtspotpublicrestapi.thoughtspotpublicrestapi_client import ThoughtspotpublicrestapiClient -from thoughtspotpublicrestapi.configuration import Environment - -client = ThoughtspotpublicrestapiClient( - access_token='AccessToken', - environment=Environment.PRODUCTION, - base_url = 'https://localhost:443',) -``` - -## ThoughtSpot Public REST API Client - -The gateway for the SDK. This class acts as a factory for the Controllers and also holds the configuration of the SDK. - -## Controllers - -| Name | Description | -| --- | --- | -| user | Gets UserController | -| group | Gets GroupController | -| metadata | Gets MetadataController | -| database | Gets DatabaseController | -| connection | Gets ConnectionController | -| data | Gets DataController | -| logs | Gets LogsController | -| custom_actions | Gets CustomActionsController | -| security | Gets SecurityController | -| org | Gets OrgController | -| session | Gets SessionController | -| admin | Gets AdminController | -| report | Gets ReportController | -| materialization | Gets MaterializationController | - diff --git a/Python/doc/controllers/admin.md b/Python/doc/controllers/admin.md deleted file mode 100644 index 97bf8038c..000000000 --- a/Python/doc/controllers/admin.md +++ /dev/null @@ -1,248 +0,0 @@ -# Admin - -```python -admin_controller = client.admin -``` - -## Class Name - -`AdminController` - -## Methods - -* [Restapi V2 Update Cluster Config](../../doc/controllers/admin.md#restapi-v2-update-cluster-config) -* [Restapi V2 Reset User Password](../../doc/controllers/admin.md#restapi-v2-reset-user-password) -* [Restapi V2 Sync Principal](../../doc/controllers/admin.md#restapi-v2-sync-principal) -* [Restapi V2 Change Author of Objects](../../doc/controllers/admin.md#restapi-v2-change-author-of-objects) -* [Restapi V2 Assign Author to Objects](../../doc/controllers/admin.md#restapi-v2-assign-author-to-objects) -* [Restapi V2 Force Logout Users](../../doc/controllers/admin.md#restapi-v2-force-logout-users) - - -# Restapi V2 Update Cluster Config - -To update the Thoughtspot cluster configuration, use this endpoint. - -```python -def restapi_v_2__update_cluster_config(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminConfigurationUpdateRequest`](../../doc/models/tspublic-rest-v2-admin-configuration-update-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2AdminConfigurationUpdateRequest() - -result = admin_controller.restapi_v_2__update_cluster_config(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Reset User Password - -To reset the password of a ThoughtSpot user account, use this endpoint. - -It is mandatory to use Authorization header with token of a user with admin access to successfully run this endpoint. - -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```python -def restapi_v_2__reset_user_password(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminResetpasswordRequest`](../../doc/models/tspublic-rest-v2-admin-resetpassword-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2AdminResetpasswordRequest() -body.new_password = 'newPassword0' - -result = admin_controller.restapi_v_2__reset_user_password(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Sync Principal - -To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, use this endpoint. - -The payload takes principals containing all users and groups present in the external system. - -The users and user groups in Thoughtspot get updated for any matching inputs. - -Any user and user group present in the input, but not present in the cluster, gets created in cluster. -n You can optionally choose to delete the user and groups from the cluster, that are not present in the input. - -```python -def restapi_v_2__sync_principal(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminSyncprincipalRequest`](../../doc/models/tspublic-rest-v2-admin-syncprincipal-request.md) | Body, Required | - | - -## Response Type - -[`AdminsyncPrincipalResponse`](../../doc/models/adminsync-principal-response.md) - -## Example Usage - -```python -body = TspublicRestV2AdminSyncprincipalRequest() -body.principal_object = [jsonpickle.decode('{"key1":"val1","key2":"val2"}')] - -result = admin_controller.restapi_v_2__sync_principal(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Change Author of Objects - -To programmatically change the owner of one or several objects from one user account to another, use this endpoint. - -You might want to transfer ownership of objects owned by a user to another active user, when the account is removed from the ThoughtSpot application. - -```python -def restapi_v_2__change_author_of_objects(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminChangeauthorRequest`](../../doc/models/tspublic-rest-v2-admin-changeauthor-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2AdminChangeauthorRequest() -body.ts_object_id = ['tsObjectId7'] -body.from_user = FromUserNameAndIDInput() -body.to_user = ToUserNameAndIDInput() - -result = admin_controller.restapi_v_2__change_author_of_objects(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Author to Objects - -To programmatically assign an author to one or several objects, use this endpoint. - -Provide either user name or id as input. When both are given user id will be considered. - -Requires administration privilege. - -```python -def restapi_v_2__assign_author_to_objects(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminAssignauthorRequest`](../../doc/models/tspublic-rest-v2-admin-assignauthor-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2AdminAssignauthorRequest() -body.ts_object_id = ['tsObjectId7'] - -result = admin_controller.restapi_v_2__assign_author_to_objects(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Force Logout Users - -To logout one or more users from logged in session, use this endpoint. If no input is provided then all logged in users are force logged out. - -Requires administration privilege - -```python -def restapi_v_2__force_logout_users(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminForcelogoutRequest`](../../doc/models/tspublic-rest-v2-admin-forcelogout-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2AdminForcelogoutRequest() - -result = admin_controller.restapi_v_2__force_logout_users(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/connection.md b/Python/doc/controllers/connection.md deleted file mode 100644 index 00d9f8d71..000000000 --- a/Python/doc/controllers/connection.md +++ /dev/null @@ -1,460 +0,0 @@ -# Connection - -```python -connection_controller = client.connection -``` - -## Class Name - -`ConnectionController` - -## Methods - -* [Restapi V2 Get Connection](../../doc/controllers/connection.md#restapi-v2-get-connection) -* [Restapi V2 Get Connection Database](../../doc/controllers/connection.md#restapi-v2-get-connection-database) -* [Restapi V2 Create Connection](../../doc/controllers/connection.md#restapi-v2-create-connection) -* [Restapi V2 Update Connection](../../doc/controllers/connection.md#restapi-v2-update-connection) -* [Restapi V2 Delete Connection](../../doc/controllers/connection.md#restapi-v2-delete-connection) -* [Restapi V2 Add Table to Connection](../../doc/controllers/connection.md#restapi-v2-add-table-to-connection) -* [Restapi V2 Remove Table From Connection](../../doc/controllers/connection.md#restapi-v2-remove-table-from-connection) -* [Restapi V2 Search Connection](../../doc/controllers/connection.md#restapi-v2-search-connection) -* [Restapi V2 Get Connection Tables](../../doc/controllers/connection.md#restapi-v2-get-connection-tables) -* [Restapi V2 Get Connection Table Columns](../../doc/controllers/connection.md#restapi-v2-get-connection-table-columns) - - -# Restapi V2 Get Connection - -To get the details of a specific connection use this endpoint - -```python -def restapi_v_2__get_connection(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the connection to query | - -## Response Type - -[`ConnectionResponse`](../../doc/models/connection-response.md) - -## Example Usage - -```python -id = 'id0' - -result = connection_controller.restapi_v_2__get_connection(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Database - -To get the list of databases for a connection, use this endpoint. - -The response will include databases from the data platform corresponding to the connection id provided. - -```python -def restapi_v_2__get_connection_database(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the connection | - -## Response Type - -`List of string` - -## Example Usage - -```python -id = 'id0' - -result = connection_controller.restapi_v_2__get_connection_database(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Connection - -To programmatically create a connection in the ThoughtSpot system use this API endpoint. -Using this API, you can create a connection and assign groups. -To create a connection, you require admin connection privileges. -All connections created in the ThoughtSpot system are added to ALL_GROUP - -```python -def restapi_v_2__create_connection(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionCreateRequest`](../../doc/models/tspublic-rest-v2-connection-create-request.md) | Body, Required | - | - -## Response Type - -[`CreateConnectionResponse`](../../doc/models/create-connection-response.md) - -## Example Usage - -```python -body = TspublicRestV2ConnectionCreateRequest() -body.mtype = Type14Enum.ORACLE_ADW -body.name = 'name6' -body.configuration = 'configuration0' - -result = connection_controller.restapi_v_2__create_connection(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Connection - -You can use this endpoint to programmatically modify an existing connection -To modify a connection, you require admin connection privileges. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered and connectionname will be updated - -```python -def restapi_v_2__update_connection(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionUpdateRequest`](../../doc/models/tspublic-rest-v2-connection-update-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2ConnectionUpdateRequest() -body.id = 'id6' -body.configuration = 'configuration0' - -result = connection_controller.restapi_v_2__update_connection(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Connection - -To remove a connection from the ThoughtSpot system, use this endpoint. - -```python -def restapi_v_2__delete_connection(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `List of string` | Query, Required | A JSON array of GUIDs of the connection | - -## Response Type - -`bool` - -## Example Usage - -```python -id = ['id0'] - -result = connection_controller.restapi_v_2__delete_connection(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Table to Connection - -To programmatically add table to an existing connection use this endpoint. -When you assign groups to a connection, the connection inherits the privileges assigned to those groups. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered. - -```python -def restapi_v_2__add_table_to_connection(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionAddtableRequest`](../../doc/models/tspublic-rest-v2-connection-addtable-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2ConnectionAddtableRequest() -body.id = 'id6' -body.table = [] - -body.table.append(AddTableInput()) -body.table[0].name = 'name0' -body.table[0].db_name = 'dbName8' -body.table[0].schema_name = 'schemaName4' -body.table[0].columns = [] - -body.table[0].columns.append(ColumnsInput()) -body.table[0].columns[0].name = 'name0' -body.table[0].columns[0].data_type = 'dataType2' - -body.table[0].columns.append(ColumnsInput()) -body.table[0].columns[1].name = 'name1' -body.table[0].columns[1].data_type = 'dataType3' - - -body.table.append(AddTableInput()) -body.table[1].name = 'name1' -body.table[1].db_name = 'dbName9' -body.table[1].schema_name = 'schemaName5' -body.table[1].columns = [] - -body.table[1].columns.append(ColumnsInput()) -body.table[1].columns[0].name = 'name9' -body.table[1].columns[0].data_type = 'dataType1' - - -body.table.append(AddTableInput()) -body.table[2].name = 'name2' -body.table[2].db_name = 'dbName0' -body.table[2].schema_name = 'schemaName6' -body.table[2].columns = [] - -body.table[2].columns.append(ColumnsInput()) -body.table[2].columns[0].name = 'name8' -body.table[2].columns[0].data_type = 'dataType0' - -body.table[2].columns.append(ColumnsInput()) -body.table[2].columns[1].name = 'name9' -body.table[2].columns[1].data_type = 'dataType1' - -body.table[2].columns.append(ColumnsInput()) -body.table[2].columns[2].name = 'name0' -body.table[2].columns[2].data_type = 'dataType2' - - - -result = connection_controller.restapi_v_2__add_table_to_connection(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Table From Connection - -To programmatically remove a table from a connection use API endpoint. -The API removes only the connection association. It does not delete the connection or group from the Thoughtspot system. -At least one of id or name of connection is required. When both are given connection id will be considered. - -```python -def restapi_v_2__remove_table_from_connection(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionRemovetableRequest`](../../doc/models/tspublic-rest-v2-connection-removetable-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2ConnectionRemovetableRequest() -body.id = 'id6' -body.table = [] - -body.table.append(TableInput()) - -body.table.append(TableInput()) - -body.table.append(TableInput()) - - -result = connection_controller.restapi_v_2__remove_table_from_connection(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Connection - -To get the details of a specific connection or all connections in the ThoughtSpot system use this end point. - -```python -def restapi_v_2__search_connection(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionSearchRequest`](../../doc/models/tspublic-rest-v2-connection-search-request.md) | Body, Required | - | - -## Response Type - -[`List of ConnectionResponse`](../../doc/models/connection-response.md) - -## Example Usage - -```python -body = TspublicRestV2ConnectionSearchRequest() -body.mtype = Type15Enum.ORACLE_ADW - -result = connection_controller.restapi_v_2__search_connection(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Tables - -To get the details of tables from a connection, use this endpoint. - -You can get the details of tables in the data platform for the connection id provided. - -```python -def restapi_v_2__get_connection_tables(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionTableRequest`](../../doc/models/tspublic-rest-v2-connection-table-request.md) | Body, Required | - | - -## Response Type - -[`ConnectionTableResponse`](../../doc/models/connection-table-response.md) - -## Example Usage - -```python -body = TspublicRestV2ConnectionTableRequest() -body.id = 'id6' - -result = connection_controller.restapi_v_2__get_connection_tables(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Connection Table Columns - -To get the details of columns in a table associated to a connection, use this endpoint. - -You can get the columns of any table available in the data platform for the connection id provided. - -```python -def restapi_v_2__get_connection_table_columns(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionTablecoloumnRequest`](../../doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md) | Body, Required | - | - -## Response Type - -[`ConnectionTableColumnsResponse`](../../doc/models/connection-table-columns-response.md) - -## Example Usage - -```python -body = TspublicRestV2ConnectionTablecoloumnRequest() -body.id = 'id6' -body.table = [] - -body.table.append(ConnectionTableColumnsInput()) -body.table[0].db_name = 'dbName8' -body.table[0].schema_name = 'schemaName4' -body.table[0].name = 'name0' - -body.table.append(ConnectionTableColumnsInput()) -body.table[1].db_name = 'dbName9' -body.table[1].schema_name = 'schemaName5' -body.table[1].name = 'name1' - -body.table.append(ConnectionTableColumnsInput()) -body.table[2].db_name = 'dbName0' -body.table[2].schema_name = 'schemaName6' -body.table[2].name = 'name2' - - -result = connection_controller.restapi_v_2__get_connection_table_columns(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/custom-actions.md b/Python/doc/controllers/custom-actions.md deleted file mode 100644 index db58c8a08..000000000 --- a/Python/doc/controllers/custom-actions.md +++ /dev/null @@ -1,301 +0,0 @@ -# Custom Actions - -```python -custom_actions_controller = client.custom_actions -``` - -## Class Name - -`CustomActionsController` - -## Methods - -* [Restapi V2 Get Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action) -* [Restapi V2 Search Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-search-custom-action) -* [Restapi V2 Get Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action-association) -* [Restapi V2 Create Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-create-custom-action) -* [Restapi V2 Update Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action) -* [Restapi V2 Delete Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action) -* [Restapi V2 Update Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action-association) -* [Restapi V2 Delete Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action-association) - - -# Restapi V2 Get Custom Action - -To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint - -```python -def restapi_v_2__get_custom_action(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | - -## Response Type - -`object` - -## Example Usage - -```python -id = 'id0' - -result = custom_actions_controller.restapi_v_2__get_custom_action(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Custom Action - -To search custom actions available on a ThoughtSpot instance, use this endpoint - -```python -def restapi_v_2__search_custom_action(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionSearchRequest`](../../doc/models/tspublic-rest-v2-customaction-search-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2CustomactionSearchRequest() - -result = custom_actions_controller.restapi_v_2__search_custom_action(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Custom Action Association - -ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the details of the ThoughtSpot objects associated with a custom action, use this endpoint. - -```python -def restapi_v_2__get_custom_action_association(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | - -## Response Type - -`object` - -## Example Usage - -```python -id = 'id0' - -result = custom_actions_controller.restapi_v_2__get_custom_action_association(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Custom Action - -To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, use this endpoint - -```python -def restapi_v_2__create_custom_action(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionCreateRequest`](../../doc/models/tspublic-rest-v2-customaction-create-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2CustomactionCreateRequest() -body.configuration = 'configuration0' - -result = custom_actions_controller.restapi_v_2__create_custom_action(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Custom Action - -To programmatically edit an existing custom action, use this endpoint - -```python -def restapi_v_2__update_custom_action(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-update-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2CustomactionUpdateRequest() -body.id = 'id6' -body.configuration = 'configuration0' - -result = custom_actions_controller.restapi_v_2__update_custom_action(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Custom Action - -To programmatically delete a custom action, use this endpoint - -```python -def restapi_v_2__delete_custom_action(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | - -## Response Type - -`object` - -## Example Usage - -```python -id = 'id0' - -result = custom_actions_controller.restapi_v_2__delete_custom_action(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Custom Action Association - -To programmatically associate a custom action to a ThoughtSpot object, use this endpoint - -```python -def restapi_v_2__update_custom_action_association(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionAssociationUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-association-update-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2CustomactionAssociationUpdateRequest() -body.id = 'id6' -body.association = 'association6' - -result = custom_actions_controller.restapi_v_2__update_custom_action_association(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Custom Action Association - -To remove custom action associations to ThoughtSpot objects, use this endpoint - -```python -def restapi_v_2__delete_custom_action_association(self, - id, - association) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | -| `association` | `string` | Query, Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Response Type - -`object` - -## Example Usage - -```python -id = 'id0' -association = 'association0' - -result = custom_actions_controller.restapi_v_2__delete_custom_action_association(id, association) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/data.md b/Python/doc/controllers/data.md deleted file mode 100644 index c473f63cd..000000000 --- a/Python/doc/controllers/data.md +++ /dev/null @@ -1,193 +0,0 @@ -# Data - -```python -data_controller = client.data -``` - -## Class Name - -`DataController` - -## Methods - -* [Restapi V2 Search Query Data](../../doc/controllers/data.md#restapi-v2-search-query-data) -* [Restapi V2 Liveboard Data](../../doc/controllers/data.md#restapi-v2-liveboard-data) -* [Restapi V2 Answer Data](../../doc/controllers/data.md#restapi-v2-answer-data) -* [Restapi V2 Answer Query Sql](../../doc/controllers/data.md#restapi-v2-answer-query-sql) -* [Restapi V2 Liveboard Query Sql](../../doc/controllers/data.md#restapi-v2-liveboard-query-sql) - - -# Restapi V2 Search Query Data - -To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint - -```python -def restapi_v_2__search_query_data(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataSearchRequest`](../../doc/models/tspublic-rest-v2-data-search-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2DataSearchRequest() -body.query_string = 'queryString0' -body.data_object_id = 'dataObjectId6' - -result = data_controller.restapi_v_2__search_query_data(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Data - -To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use this endpoint - -```python -def restapi_v_2__liveboard_data(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataLiveboardRequest`](../../doc/models/tspublic-rest-v2-data-liveboard-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2DataLiveboardRequest() - -result = data_controller.restapi_v_2__liveboard_data(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Answer Data - -To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint - -```python -def restapi_v_2__answer_data(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataAnswerRequest`](../../doc/models/tspublic-rest-v2-data-answer-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2DataAnswerRequest() -body.id = 'id6' - -result = data_controller.restapi_v_2__answer_data(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Answer Query Sql - -To retrieve the query SQL related to an Answer that is run on the data platform, you can use this endpoint - -```python -def restapi_v_2__answer_query_sql(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the Answer | - -## Response Type - -[`AnswerQueryResponse`](../../doc/models/answer-query-response.md) - -## Example Usage - -```python -id = 'id0' - -result = data_controller.restapi_v_2__answer_query_sql(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Query Sql - -To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, you can use this endpoint - -```python -def restapi_v_2__liveboard_query_sql(self, - id, - viz_id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the Answer | -| `viz_id` | `List of string` | Query, Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | - -## Response Type - -[`LiveboardQueryResponse`](../../doc/models/liveboard-query-response.md) - -## Example Usage - -```python -id = 'id0' - -result = data_controller.restapi_v_2__liveboard_query_sql(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/database.md b/Python/doc/controllers/database.md deleted file mode 100644 index 22ea1bebc..000000000 --- a/Python/doc/controllers/database.md +++ /dev/null @@ -1,199 +0,0 @@ -# Database - -```python -database_controller = client.database -``` - -## Class Name - -`DatabaseController` - -## Methods - -* [Restapi V2 Get Schemas](../../doc/controllers/database.md#restapi-v2-get-schemas) -* [Restapi V2 Get Tables](../../doc/controllers/database.md#restapi-v2-get-tables) -* [Restapi V2 Get Table Details](../../doc/controllers/database.md#restapi-v2-get-table-details) -* [Restapi V2 Create Table](../../doc/controllers/database.md#restapi-v2-create-table) -* [Restapi V2 Run Query](../../doc/controllers/database.md#restapi-v2-run-query) - - -# Restapi V2 Get Schemas - -To list all the schemas in a database in Falcon, use this endpoint. - -```python -def restapi_v_2__get_schemas(self, - database) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | - -## Response Type - -`List of string` - -## Example Usage - -```python -database = 'database0' - -result = database_controller.restapi_v_2__get_schemas(database) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Tables - -To list all the tables in a schema of a database in Falcon, use this endpoint. - -```python -def restapi_v_2__get_tables(self, - database, - schema) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | -| `schema` | `string` | Query, Required | Name of the schema in Falcon database | - -## Response Type - -`List of string` - -## Example Usage - -```python -database = 'database0' -schema = 'schema2' - -result = database_controller.restapi_v_2__get_tables(database, schema) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Table Details - -Note: This endpoint is applicable only for on-prem deployments. - -To provide details of a table in a schema of a database in Falcon, use this endpoint. - -```python -def restapi_v_2__get_table_details(self, - database, - table, - schema=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | -| `table` | `string` | Query, Required | Name of the table in Falcon database | -| `schema` | `string` | Query, Optional | Name of the schema in Falcon database | - -## Response Type - -`object` - -## Example Usage - -```python -database = 'database0' -table = 'table2' - -result = database_controller.restapi_v_2__get_table_details(database, table) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Table - -To create a table in Falcon, use this endpoint. - -```python -def restapi_v_2__create_table(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DatabaseTableCreateRequest`](../../doc/models/tspublic-rest-v2-database-table-create-request.md) | Body, Required | - | - -## Response Type - -[`CreateTableResponse`](../../doc/models/create-table-response.md) - -## Example Usage - -```python -body = TspublicRestV2DatabaseTableCreateRequest() - -result = database_controller.restapi_v_2__create_table(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Run Query - -To run a TQL statement in Falcon, use this endpoint. You can run only following type of statements - Table DDL alter and Table rows update and delete. - -```python -def restapi_v_2__run_query(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DatabaseTableRunqueryRequest`](../../doc/models/tspublic-rest-v2-database-table-runquery-request.md) | Body, Required | - | - -## Response Type - -`List of object` - -## Example Usage - -```python -body = TspublicRestV2DatabaseTableRunqueryRequest() -body.statement = ['statement6', 'statement7'] - -result = database_controller.restapi_v_2__run_query(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/group.md b/Python/doc/controllers/group.md deleted file mode 100644 index ec22a9b33..000000000 --- a/Python/doc/controllers/group.md +++ /dev/null @@ -1,421 +0,0 @@ -# Group - -```python -group_controller = client.group -``` - -## Class Name - -`GroupController` - -## Methods - -* [Restapi V2 Get Group](../../doc/controllers/group.md#restapi-v2-get-group) -* [Restapi V2 Create Group](../../doc/controllers/group.md#restapi-v2-create-group) -* [Restapi V2 Update Group](../../doc/controllers/group.md#restapi-v2-update-group) -* [Restapi V2 Delete Group](../../doc/controllers/group.md#restapi-v2-delete-group) -* [Restapi V2 Add Privileges to Group](../../doc/controllers/group.md#restapi-v2-add-privileges-to-group) -* [Restapi V2 Remove Privileges From Group](../../doc/controllers/group.md#restapi-v2-remove-privileges-from-group) -* [Restapi V2 Add Users to Group](../../doc/controllers/group.md#restapi-v2-add-users-to-group) -* [Restapi V2 Remove Users From Group](../../doc/controllers/group.md#restapi-v2-remove-users-from-group) -* [Restapi V2 Add Groups to Group](../../doc/controllers/group.md#restapi-v2-add-groups-to-group) -* [Restapi V2 Remove Groups From Group](../../doc/controllers/group.md#restapi-v2-remove-groups-from-group) -* [Restapi V2 Search Groups](../../doc/controllers/group.md#restapi-v2-search-groups) - - -# Restapi V2 Get Group - -To get the details of a specific group by name or id, use this endpoint. -At Least one value needed. When both are given id will be considered to fetch user information. - -```python -def restapi_v_2__get_group(self, - name=None, - id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the group | -| `id` | `string` | Query, Optional | The GUID of the group to query. | - -## Response Type - -[`GroupResponse`](../../doc/models/group-response.md) - -## Example Usage - -```python -result = group_controller.restapi_v_2__get_group() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Group - -To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using this API, you can create a group and assign privileges and users. For ease of user management and access control, ThoughtSpot administrators can create groups and assign privileges to these groups. The privileges determine the actions that the users belonging to a group are allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the ALL_GROUP or remove members from it. - -```python -def restapi_v_2__create_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupCreateRequest`](../../doc/models/tspublic-rest-v2-group-create-request.md) | Body, Required | - | - -## Response Type - -[`GroupResponse`](../../doc/models/group-response.md) - -## Example Usage - -```python -body = TspublicRestV2GroupCreateRequest() -body.name = 'name6' -body.display_name = 'displayName6' - -result = group_controller.restapi_v_2__create_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Group - -You can use this endpoint to programmatically modify an existing user account. -To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```python -def restapi_v_2__update_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupUpdateRequest`](../../doc/models/tspublic-rest-v2-group-update-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2GroupUpdateRequest() - -result = group_controller.restapi_v_2__update_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Group - -To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information. - -```python -def restapi_v_2__delete_group(self, - name=None, - id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the group. | -| `id` | `string` | Query, Optional | The GUID of the group | - -## Response Type - -`bool` - -## Example Usage - -```python -result = group_controller.restapi_v_2__delete_group() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Privileges to Group - -To programmatically add privileges to an existing group, use API endpoint. -When you assign privileges to a group, all the users under to this group inherits the privileges assigned to that group. -At least one of id or name of group is required. When both are given user id will be considered. - -```python -def restapi_v_2__add_privileges_to_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAddprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-addprivilege-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2GroupAddprivilegeRequest() - -result = group_controller.restapi_v_2__add_privileges_to_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Privileges From Group - -To programmatically remove privileges from a group, use API endpoint. The API removes only the privilege association. It does not delete the privilege or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```python -def restapi_v_2__remove_privileges_from_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemoveprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-removeprivilege-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2GroupRemoveprivilegeRequest() - -result = group_controller.restapi_v_2__remove_privileges_from_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Users to Group - -To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When you assign users to a group, the users inherits the privileges assigned to that group. At least one of id or name of the group is required. When both are given user id will be considered. - -```python -def restapi_v_2__add_users_to_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAdduserRequest`](../../doc/models/tspublic-rest-v2-group-adduser-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2GroupAdduserRequest() -body.users = [] - -body.users.append(UserNameAndIDInput()) - - -result = group_controller.restapi_v_2__add_users_to_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Users From Group - -To programmatically remove users from a group, use API endpoint.The API removes only the user association. It does not delete the users or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```python -def restapi_v_2__remove_users_from_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemoveuserRequest`](../../doc/models/tspublic-rest-v2-group-removeuser-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2GroupRemoveuserRequest() -body.users = [] - -body.users.append(UserNameAndIDInput()) - - -result = group_controller.restapi_v_2__remove_users_from_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add Groups to Group - -To programmatically add existing groups to a group, use API endpoint. When you assign groups to a group, the group inherits the privileges assigned to those groups. At least one of id or name of group is required. When both are given user id will be considered. - -```python -def restapi_v_2__add_groups_to_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAddgroupRequest`](../../doc/models/tspublic-rest-v2-group-addgroup-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2GroupAddgroupRequest() -body.groups = [] - -body.groups.append(GroupNameAndIDInput()) - - -result = group_controller.restapi_v_2__add_groups_to_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove Groups From Group - -To programmatically remove groups from a group, use API endpoint.The API removes only the group association. It does not delete the group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```python -def restapi_v_2__remove_groups_from_group(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemovegroupRequest`](../../doc/models/tspublic-rest-v2-group-removegroup-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2GroupRemovegroupRequest() -body.groups = [] - -body.groups.append(GroupNameAndIDInput()) - - -result = group_controller.restapi_v_2__remove_groups_from_group(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Groups - -To get the details of a specific group account or all groups in the ThoughtSpot system, use this end point. - -```python -def restapi_v_2__search_groups(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupSearchRequest`](../../doc/models/tspublic-rest-v2-group-search-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2GroupSearchRequest() - -result = group_controller.restapi_v_2__search_groups(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/logs.md b/Python/doc/controllers/logs.md deleted file mode 100644 index bb5d82cd2..000000000 --- a/Python/doc/controllers/logs.md +++ /dev/null @@ -1,56 +0,0 @@ -# Logs - -```python -logs_controller = client.logs -``` - -## Class Name - -`LogsController` - - -# Restapi V2 Get Log Events - -Note: This endpoint is applicable only for SAAS deployments. - -The ThoughtSpot log streaming service API allows you to programmatically get a security audit event log from the ThoughtSpot system. - -To use this API, make sure you have admin user privileges. - -ThoughtSpot cloud deployments allow you to collect security audit events and send them to your Security information and event management (SIEM) application in real-time. - -These events can help your security operations personnel to detect potential security threats or compromised user accounts in your organization. - -```python -def restapi_v_2__get_log_events(self, - topic, - from_epoch=None, - to_epoch=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `topic` | [`TopicEnum`](../../doc/models/topic-enum.md) | Query, Required | Type of the log | -| `from_epoch` | `string` | Query, Optional | The EPOCH time in milliseconds to set the start time for streaming logs.

Example: To set the timestamp as June 1, 2021 8 am, specify 1622534400000. | -| `to_epoch` | `string` | Query, Optional | The EPOCH time in milliseconds to set the end time for streaming logs.

Example: To set the timestamp as July 1, 2021, 8 am, specify 1625126400000. | - -## Response Type - -[`LogsResponse`](../../doc/models/logs-response.md) - -## Example Usage - -```python -topic = TopicEnum.SECURITY_LOGS - -result = logs_controller.restapi_v_2__get_log_events(topic) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/materialization.md b/Python/doc/controllers/materialization.md deleted file mode 100644 index 07e834337..000000000 --- a/Python/doc/controllers/materialization.md +++ /dev/null @@ -1,45 +0,0 @@ -# Materialization - -```python -materialization_controller = client.materialization -``` - -## Class Name - -`MaterializationController` - - -# Restapi V2 Refresh Materialized View - -Use this endpoint to refresh data in the materialized view by running the query associated with it - -```python -def restapi_v_2__refresh_materialized_view(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MaterializationRefreshviewRequest`](../../doc/models/tspublic-rest-v2-materialization-refreshview-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2MaterializationRefreshviewRequest() -body.id = 'id6' - -result = materialization_controller.restapi_v_2__refresh_materialized_view(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/metadata.md b/Python/doc/controllers/metadata.md deleted file mode 100644 index eb5a71e4f..000000000 --- a/Python/doc/controllers/metadata.md +++ /dev/null @@ -1,788 +0,0 @@ -# Metadata - -```python -metadata_controller = client.metadata -``` - -## Class Name - -`MetadataController` - -## Methods - -* [Restapi V2 Get Tag](../../doc/controllers/metadata.md#restapi-v2-get-tag) -* [Restapi V2 Get Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-get-home-liveboard) -* [Restapi V2 Search Object Header](../../doc/controllers/metadata.md#restapi-v2-search-object-header) -* [Restapi V2 Get Object Visualization Header](../../doc/controllers/metadata.md#restapi-v2-get-object-visualization-header) -* [Restapi V2 Get Object Detail](../../doc/controllers/metadata.md#restapi-v2-get-object-detail) -* [Restapi V2 Get Object Header](../../doc/controllers/metadata.md#restapi-v2-get-object-header) -* [Restapi V2 Search Object Detail](../../doc/controllers/metadata.md#restapi-v2-search-object-detail) -* [Restapi V2 Create Tag](../../doc/controllers/metadata.md#restapi-v2-create-tag) -* [Restapi V2 Update Tag](../../doc/controllers/metadata.md#restapi-v2-update-tag) -* [Restapi V2 Delete Tag](../../doc/controllers/metadata.md#restapi-v2-delete-tag) -* [Restapi V2 Assign Tag](../../doc/controllers/metadata.md#restapi-v2-assign-tag) -* [Restapi V2 Unassign Tag](../../doc/controllers/metadata.md#restapi-v2-unassign-tag) -* [Restapi V2 Assign Favorite](../../doc/controllers/metadata.md#restapi-v2-assign-favorite) -* [Restapi V2 Unassign Favorite](../../doc/controllers/metadata.md#restapi-v2-unassign-favorite) -* [Restapi V2 Assign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-assign-home-liveboard) -* [Restapi V2 Unassign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-unassign-home-liveboard) -* [Restapi V2 Export Object TML](../../doc/controllers/metadata.md#restapi-v2-export-object-tml) -* [Restapi V2 Import Object TML](../../doc/controllers/metadata.md#restapi-v2-import-object-tml) -* [Restapi V2 Delete Object](../../doc/controllers/metadata.md#restapi-v2-delete-object) -* [Restapi V2 Get Object Dependency](../../doc/controllers/metadata.md#restapi-v2-get-object-dependency) - - -# Restapi V2 Get Tag - -To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```python -def restapi_v_2__get_tag(self, - name=None, - id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the tag | -| `id` | `string` | Query, Optional | The GUID of the tag | - -## Response Type - -[`MetadataTagResponse`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```python -result = metadata_controller.restapi_v_2__get_tag() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Home Liveboard - -To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```python -def restapi_v_2__get_home_liveboard(self, - user_name=None, - user_id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Query, Optional | Name of the tag | -| `user_id` | `string` | Query, Optional | The GUID of the tag | - -## Response Type - -[`HomeLiveboardResponse`](../../doc/models/home-liveboard-response.md) - -## Example Usage - -```python -result = metadata_controller.restapi_v_2__get_home_liveboard() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Object Header - -To get header details for metadata objects, use this endpoint. You can provide as input selective fields to get the data for. - -```python -def restapi_v_2__search_object_header(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHeaderSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-header-search-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2MetadataHeaderSearchRequest() -body.mtype = Type3Enum.USER - -result = metadata_controller.restapi_v_2__search_object_header(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Visualization Header - -Use this endpoint to get header details of visualization charts for a given liveboard or answer. At least one of id or name of liveboard or answer is required. When both are given, then id will be considered. - -```python -def restapi_v_2__get_object_visualization_header(self, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the liveboard or answer | - -## Response Type - -`List of object` - -## Example Usage - -```python -id = 'id0' - -result = metadata_controller.restapi_v_2__get_object_visualization_header(id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Detail - -Use this endpoint to get full details of metadata objects - -```python -def restapi_v_2__get_object_detail(self, - mtype, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `List of string` | Query, Required | A JSON array of GUIDs of the objects. | - -## Response Type - -`object` - -## Example Usage - -```python -mtype = Type4Enum.DATAOBJECT -id = ['id0'] - -result = metadata_controller.restapi_v_2__get_object_detail(mtype, id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Header - -To get header detail of a metadata object, use this endpoint. You can provide as input selective fields to get the data for. - -```python -def restapi_v_2__get_object_header(self, - mtype, - id, - output_fields=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type5Enum`](../../doc/models/type-5-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `string` | Query, Required | GUID of the metadata object | -| `output_fields` | `List of string` | Query, Optional | Array of header field names that need to be included in the header response | - -## Response Type - -`object` - -## Example Usage - -```python -mtype = Type5Enum.COLUMN_ALL -id = 'id0' - -result = metadata_controller.restapi_v_2__get_object_header(mtype, id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Object Detail - -Use this endpoint to get full details of metadata objects - -```python -def restapi_v_2__search_object_detail(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataDetailSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-detail-search-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2MetadataDetailSearchRequest() -body.mtype = Type6Enum.USER -body.id = ['id6', 'id7'] - -result = metadata_controller.restapi_v_2__search_object_detail(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Tag - -To programmatically create tags, use this endpoint - -```python -def restapi_v_2__create_tag(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagCreateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-create-request.md) | Body, Required | - | - -## Response Type - -[`MetadataTagResponse`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```python -body = TspublicRestV2MetadataTagCreateRequest() -body.name = 'name6' - -result = metadata_controller.restapi_v_2__create_tag(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Tag - -To programmatically update tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```python -def restapi_v_2__update_tag(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagUpdateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-update-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2MetadataTagUpdateRequest() - -result = metadata_controller.restapi_v_2__update_tag(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Tag - -To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```python -def restapi_v_2__delete_tag(self, - name=None, - id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the tag | -| `id` | `string` | Query, Optional | The GUID of the tag | - -## Response Type - -`bool` - -## Example Usage - -```python -result = metadata_controller.restapi_v_2__delete_tag() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Tag - -To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```python -def restapi_v_2__assign_tag(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-assign-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2MetadataTagAssignRequest() -body.ts_object = [] - -body.ts_object.append(TsObjectInput()) -body.ts_object[0].id = 'id8' -body.ts_object[0].mtype = TypeEnum.DATAOBJECT - -body.ts_object.append(TsObjectInput()) -body.ts_object[1].id = 'id9' -body.ts_object[1].mtype = TypeEnum.CONNECTION - -body.ts_object.append(TsObjectInput()) -body.ts_object[2].id = 'id0' -body.ts_object[2].mtype = TypeEnum.ANSWER - - -result = metadata_controller.restapi_v_2__assign_tag(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Tag - -To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```python -def restapi_v_2__unassign_tag(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2MetadataTagUnassignRequest() -body.ts_object = [] - -body.ts_object.append(TsObjectInput()) -body.ts_object[0].id = 'id8' -body.ts_object[0].mtype = TypeEnum.DATAOBJECT - -body.ts_object.append(TsObjectInput()) -body.ts_object[1].id = 'id9' -body.ts_object[1].mtype = TypeEnum.CONNECTION - -body.ts_object.append(TsObjectInput()) -body.ts_object[2].id = 'id0' -body.ts_object[2].mtype = TypeEnum.ANSWER - - -result = metadata_controller.restapi_v_2__unassign_tag(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Favorite - -To programmatically assign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```python -def restapi_v_2__assign_favorite(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataFavoriteAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2MetadataFavoriteAssignRequest() -body.ts_object = [] - -body.ts_object.append(TsObjectInput()) -body.ts_object[0].id = 'id8' -body.ts_object[0].mtype = TypeEnum.DATAOBJECT - -body.ts_object.append(TsObjectInput()) -body.ts_object[1].id = 'id9' -body.ts_object[1].mtype = TypeEnum.CONNECTION - -body.ts_object.append(TsObjectInput()) -body.ts_object[2].id = 'id0' -body.ts_object[2].mtype = TypeEnum.ANSWER - - -result = metadata_controller.restapi_v_2__assign_favorite(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Favorite - -To programmatically unassign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```python -def restapi_v_2__unassign_favorite(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataFavoriteUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2MetadataFavoriteUnassignRequest() -body.ts_object = [] - -body.ts_object.append(TsObjectInput()) -body.ts_object[0].id = 'id8' -body.ts_object[0].mtype = TypeEnum.DATAOBJECT - -body.ts_object.append(TsObjectInput()) -body.ts_object[1].id = 'id9' -body.ts_object[1].mtype = TypeEnum.CONNECTION - -body.ts_object.append(TsObjectInput()) -body.ts_object[2].id = 'id0' -body.ts_object[2].mtype = TypeEnum.ANSWER - - -result = metadata_controller.restapi_v_2__unassign_favorite(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Assign Home Liveboard - -To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```python -def restapi_v_2__assign_home_liveboard(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHomeliveboardAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2MetadataHomeliveboardAssignRequest() - -result = metadata_controller.restapi_v_2__assign_home_liveboard(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Unassign Home Liveboard - -To unassign the home liveboard set for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```python -def restapi_v_2__unassign_home_liveboard(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHomeliveboardUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2MetadataHomeliveboardUnassignRequest() - -result = metadata_controller.restapi_v_2__unassign_home_liveboard(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Export Object TML - -To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```python -def restapi_v_2__export_object_tml(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTmlExportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-export-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2MetadataTmlExportRequest() -body.id = ['id6', 'id7'] - -result = metadata_controller.restapi_v_2__export_object_tml(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Import Object TML - -To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```python -def restapi_v_2__import_object_tml(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTmlImportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-import-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2MetadataTmlImportRequest() -body.object_tml = ['objectTML5', 'objectTML6'] - -result = metadata_controller.restapi_v_2__import_object_tml(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Object - -Use this endpoint to delete the metadata objects - -```python -def restapi_v_2__delete_object(self, - mtype, - id) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched | -| `id` | `List of string` | Query, Required | A JSON array of GUIDs of the objects | - -## Response Type - -`bool` - -## Example Usage - -```python -mtype = Type4Enum.DATAOBJECT -id = ['id0'] - -result = metadata_controller.restapi_v_2__delete_object(mtype, id) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Object Dependency - -To query the details of dependent objects and associate objects as dependents, you can use this API. Dependency is defined as relation between referenced and referencing objects. A referencing object is said to have a dependency on a referenced object, if the referenced object cannot be deleted without first deleting the referencing object. For example, consider a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion of C2 will be prevented by the relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting C1 - -```python -def restapi_v_2__get_object_dependency(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataDependencyRequest`](../../doc/models/tspublic-rest-v2-metadata-dependency-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2MetadataDependencyRequest() -body.mtype = Type13Enum.COLUMN -body.id = ['id6', 'id7'] - -result = metadata_controller.restapi_v_2__get_object_dependency(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/org.md b/Python/doc/controllers/org.md deleted file mode 100644 index 16a3c4c48..000000000 --- a/Python/doc/controllers/org.md +++ /dev/null @@ -1,207 +0,0 @@ -# Org - -```python -org_controller = client.org -``` - -## Class Name - -`OrgController` - -## Methods - -* [Restapi V2 Get Org](../../doc/controllers/org.md#restapi-v2-get-org) -* [Restapi V2 Create Org](../../doc/controllers/org.md#restapi-v2-create-org) -* [Restapi V2 Update Org](../../doc/controllers/org.md#restapi-v2-update-org) -* [Restapi V2 Delete Org](../../doc/controllers/org.md#restapi-v2-delete-org) -* [Restapi V2 Search Orgs](../../doc/controllers/org.md#restapi-v2-search-orgs) - - -# Restapi V2 Get Org - -To get the details of a specific organization by name or id, use this endpoint. - -At least one value needed. When both are given,then id will be considered to fetch organization information. - -Requires Administration privilege for tenant. - -```python -def restapi_v_2__get_org(self, - name=None, - id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the organization. | -| `id` | `int` | Query, Optional | The ID of the organization. | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```python -result = org_controller.restapi_v_2__get_org() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create Org - -To programmatically create an organization in the ThoughtSpot system, use this API endpoint. - -Requires Administration privilege for tenant. - -```python -def restapi_v_2__create_org(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgCreateRequest`](../../doc/models/tspublic-rest-v2-org-create-request.md) | Body, Required | - | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```python -body = TspublicRestV2OrgCreateRequest() -body.name = 'name6' - -result = org_controller.restapi_v_2__create_org(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update Org - -You can use this endpoint to programmatically modify an existing org. - -Provide name or id of the organization to update the properties. When both id and name are given, then id will be considered and name of the organization will be updated. - -Requires Administration privilege for tenant. - -```python -def restapi_v_2__update_org(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgUpdateRequest`](../../doc/models/tspublic-rest-v2-org-update-request.md) | Body, Required | - | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```python -body = TspublicRestV2OrgUpdateRequest() - -result = org_controller.restapi_v_2__update_org(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete Org - -To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. - -At least one value is needed. When both id and name are given, then id will be considered. - -Requires Administration privilege for tenant. - -```python -def restapi_v_2__delete_org(self, - name=None, - id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Name of the organization. | -| `id` | `int` | Query, Optional | The ID of the organization. | - -## Response Type - -`bool` - -## Example Usage - -```python -result = org_controller.restapi_v_2__delete_org() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Orgs - -To get the details of a specific organization or all organizations in the ThoughtSpot system use this end point. - -If no input is provided, then all organizations are included in the response. - -Requires Administration privilege for tenant. - -```python -def restapi_v_2__search_orgs(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgSearchRequest`](../../doc/models/tspublic-rest-v2-org-search-request.md) | Body, Required | - | - -## Response Type - -[`List of OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```python -body = TspublicRestV2OrgSearchRequest() - -result = org_controller.restapi_v_2__search_orgs(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/report.md b/Python/doc/controllers/report.md deleted file mode 100644 index bea596bab..000000000 --- a/Python/doc/controllers/report.md +++ /dev/null @@ -1,100 +0,0 @@ -# Report - -```python -report_controller = client.report -``` - -## Class Name - -`ReportController` - -## Methods - -* [Restapi V2 Answer Report](../../doc/controllers/report.md#restapi-v2-answer-report) -* [Restapi V2 Liveboard Report](../../doc/controllers/report.md#restapi-v2-liveboard-report) - - -# Restapi V2 Answer Report - -To programmatically download Answer data as a file, use this endpoint. - -The PDF will download data in the tabular format even if Answer is saved as chart. - -```python -def restapi_v_2__answer_report(self, - id, - mtype) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the Answer to download. | -| `mtype` | [`Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. | - -## Response Type - -`object` - -## Example Usage - -```python -id = 'id0' -mtype = Type16Enum.PDF - -result = report_controller.restapi_v_2__answer_report(id, mtype) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Liveboard Report - -To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, use this endpoint - -```python -def restapi_v_2__liveboard_report(self, - mtype, - id=None, - viz_id=None, - transient_content=None, - runtime_filter=None, - runtime_sort=None, - pdf_options=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. Valid values: CSV/XLSX/PDF/PNG. | -| `id` | `string` | Query, Optional | GUID of the Liveboard to download.

This field is considered only when no input is provided for transientContent field. | -| `viz_id` | `List of string` | Query, Optional | JSON Array of GUIDs of the visualizations in the Liveboard to be included in the downloaded file.

For CSV, XLSX and PNG file download, visualization id is mandatory. CSV and XLSX is valid only for visualization of type table and PNG is valid for charts.

Only one value will be accepted for these formats. If multiple values are provided then first value in the array will be considered. | -| `transient_content` | `string` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard. | -| `runtime_filter` | `string` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . | -| `runtime_sort` | `string` | Query, Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | -| `pdf_options` | [`PdfOptionsInput`](../../doc/models/pdf-options-input.md) | Query, Optional | Additional options that are applicable for PDF type. | - -## Response Type - -`object` - -## Example Usage - -```python -mtype = Type16Enum.PDF - -result = report_controller.restapi_v_2__liveboard_report(mtype) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/security.md b/Python/doc/controllers/security.md deleted file mode 100644 index 6ae7577b5..000000000 --- a/Python/doc/controllers/security.md +++ /dev/null @@ -1,276 +0,0 @@ -# Security - -```python -security_controller = client.security -``` - -## Class Name - -`SecurityController` - -## Methods - -* [Restapi V2 Get Permission on Object](../../doc/controllers/security.md#restapi-v2-get-permission-on-object) -* [Restapi V2 Get Permission for Principal](../../doc/controllers/security.md#restapi-v2-get-permission-for-principal) -* [Restapi V2 Share Object](../../doc/controllers/security.md#restapi-v2-share-object) -* [Restapi V2 Share Visualization](../../doc/controllers/security.md#restapi-v2-share-visualization) -* [Restapi V2 Search Permission on Objects](../../doc/controllers/security.md#restapi-v2-search-permission-on-objects) -* [Restapi V2 Search Permission for Principals](../../doc/controllers/security.md#restapi-v2-search-permission-for-principals) - - -# Restapi V2 Get Permission on Object - -To list the permissions for user and user groups on an object, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -```python -def restapi_v_2__get_permission_on_object(self, - id, - mtype, - include_dependent=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the metadata object for which the permission needs to be obtained. | -| `mtype` | [`Type7Enum`](../../doc/models/type-7-enum.md) | Query, Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | -| `include_dependent` | `bool` | Query, Optional | When this field is set to true, the API returns the permission details for the dependent objects for the the object included in the request | - -## Response Type - -[`SecurityPermissionResponse`](../../doc/models/security-permission-response.md) - -## Example Usage - -```python -id = 'id0' -mtype = Type7Enum.DATAOBJECT - -result = security_controller.restapi_v_2__get_permission_on_object(id, mtype) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Permission for Principal - -Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. - -Requires administration privilege - -```python -def restapi_v_2__get_permission_for_principal(self, - id=None, - name=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Optional | GUID of the user or user group for which the object permission needs to be obtained | -| `name` | `string` | Query, Optional | Name of the ser or user group for which the object permission needs to be obtained | - -## Response Type - -[`PrincipalSearchResponse`](../../doc/models/principal-search-response.md) - -## Example Usage - -```python -result = security_controller.restapi_v_2__get_permission_for_principal() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Share Object - -To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. - -When you share an object like a Liveboard or visualization, a notification with a live link is sent to the user. When the users access this object, they can view the last saved version of the object. - -```python -def restapi_v_2__share_object(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityShareTsobjectRequest`](../../doc/models/tspublic-rest-v2-security-share-tsobject-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2SecurityShareTsobjectRequest() -body.mtype = Type18Enum.DATAOBJECT -body.id = ['id6', 'id7'] -body.permission = 'permission8' - -result = security_controller.restapi_v_2__share_object(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Share Visualization - -If you want to share a specific visualization from a Liveboard with another user or user group, then use this endpoint. - -Requires privilege to share the visualization - -```python -def restapi_v_2__share_visualization(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityShareVisualizationRequest`](../../doc/models/tspublic-rest-v2-security-share-visualization-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2SecurityShareVisualizationRequest() -body.id = 'id6' -body.viz_id = 'vizId4' -body.principal_id = ['principalId2', 'principalId3'] - -result = security_controller.restapi_v_2__share_visualization(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Permission on Objects - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```python -def restapi_v_2__search_permission_on_objects(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityPermissionTsobjectSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md) | Body, Required | - | - -## Response Type - -[`List of SecurityPermissionResponse`](../../doc/models/security-permission-response.md) - -## Example Usage - -```python -body = TspublicRestV2SecurityPermissionTsobjectSearchRequest() -body.ts_object = [] - -body.ts_object.append(TsObjectSearchInput()) -body.ts_object[0].mtype = Type2Enum.DATAOBJECT -body.ts_object[0].id = ['id8', 'id9'] - -body.ts_object.append(TsObjectSearchInput()) -body.ts_object[1].mtype = Type2Enum.COLUMN -body.ts_object[1].id = ['id9', 'id0', 'id1'] - -body.ts_object.append(TsObjectSearchInput()) -body.ts_object[2].mtype = Type2Enum.LIVEBOARD -body.ts_object[2].id = ['id0'] - - -result = security_controller.restapi_v_2__search_permission_on_objects(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Permission for Principals - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```python -def restapi_v_2__search_permission_for_principals(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityPermissionPrincipalSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-principal-search-request.md) | Body, Required | - | - -## Response Type - -[`List of PrincipalSearchResponse`](../../doc/models/principal-search-response.md) - -## Example Usage - -```python -body = TspublicRestV2SecurityPermissionPrincipalSearchRequest() -body.principal = [] - -body.principal.append(UserNameAndIDInput()) - - -result = security_controller.restapi_v_2__search_permission_for_principals(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/session.md b/Python/doc/controllers/session.md deleted file mode 100644 index a1c4f5833..000000000 --- a/Python/doc/controllers/session.md +++ /dev/null @@ -1,117 +0,0 @@ -# Session - -```python -session_controller = client.session -``` - -## Class Name - -`SessionController` - -## Methods - -* [Restapi V2 Login](../../doc/controllers/session.md#restapi-v2-login) -* [Restapi V2 Get Token](../../doc/controllers/session.md#restapi-v2-get-token) - - -# Restapi V2 Login - -You can programmatically create login session for a user in ThoughtSpot using this endpoint. - -You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. - -userName and password input is given precedence over "Authorization" header, when both are included in the request. - -```python -def restapi_v_2__login(self, - user_name=None, - password=None, - remember_me=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Query, Optional | Username of the user account | -| `password` | `string` | Query, Optional | The password of the user account | -| `remember_me` | `bool` | Query, Optional | A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls. | - -## Response Type - -[`SessionLoginResponse`](../../doc/models/session-login-response.md) - -## Example Usage - -```python -result = session_controller.restapi_v_2__login() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Get Token - -To programmatically create session token for a user in ThoughtSpot, use this endpoint. - -You can generate the token for a user by providing password or secret key from the cluster. - -You need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. - -1. Click the Develop tab. - -2. Under Customizations, click Settings. - -3. To enable trusted authentication, turn on the toggle. - -4. A secret_key for trusted authentication is generated. - -5. Click the clipboard icon to copy the token. - -Password is given precedence over secretKey input, when both are included in the request. - -```python -def restapi_v_2__get_token(self, - user_name, - password=None, - secret_key=None, - access_level=None, - ts_object_id=None, - token_expiry_duration=None, - org_id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Query, Required | Username of the user account | -| `password` | `string` | Query, Optional | The password of the user account | -| `secret_key` | `string` | Query, Optional | The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication. | -| `access_level` | [`AccessLevelEnum`](../../doc/models/access-level-enum.md) | Query, Optional | User access privilege.

FULL - Creates a session with full access.

REPORT_BOOK_VIEW - Allow view access to the specified visualizations. | -| `ts_object_id` | `string` | Query, Optional | GUID of the ThoughtSpot object. If you have set the accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or visualization object. | -| `token_expiry_duration` | `string` | Query, Optional | Duration in seconds after which the token expires | -| `org_id` | `string` | Query, Optional | Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered | - -## Response Type - -[`SessionLoginResponse`](../../doc/models/session-login-response.md) - -## Example Usage - -```python -user_name = 'userName2' - -result = session_controller.restapi_v_2__get_token(user_name) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/controllers/user.md b/Python/doc/controllers/user.md deleted file mode 100644 index 0dcff30bd..000000000 --- a/Python/doc/controllers/user.md +++ /dev/null @@ -1,382 +0,0 @@ -# User - -```python -user_controller = client.user -``` - -## Class Name - -`UserController` - -## Methods - -* [Restapi V2 Get User](../../doc/controllers/user.md#restapi-v2-get-user) -* [Restapi V2 Create User](../../doc/controllers/user.md#restapi-v2-create-user) -* [Restapi V2 Update User](../../doc/controllers/user.md#restapi-v2-update-user) -* [Restapi V2 Delete User](../../doc/controllers/user.md#restapi-v2-delete-user) -* [Restapi V2 Add User to Groups](../../doc/controllers/user.md#restapi-v2-add-user-to-groups) -* [Restapi V2 Remove User From Groups](../../doc/controllers/user.md#restapi-v2-remove-user-from-groups) -* [Restapi V2 Search Users](../../doc/controllers/user.md#restapi-v2-search-users) -* [Restapi V2 Change Password of User](../../doc/controllers/user.md#restapi-v2-change-password-of-user) -* [Restapi V2 Add User to Orgs](../../doc/controllers/user.md#restapi-v2-add-user-to-orgs) - - -# Restapi V2 Get User - -To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information - -```python -def restapi_v_2__get_user(self, - name=None, - id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Username of the user that you want to query. | -| `id` | `string` | Query, Optional | The GUID of the user account to query | - -## Response Type - -[`UserResponse`](../../doc/models/user-response.md) - -## Example Usage - -```python -result = user_controller.restapi_v_2__get_user() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Create User - -To programmatically create a user account in the ThoughtSpot system use this API endpoint. Using this API, you can create a user and assign groups. -To create a user, you require admin user privileges. -All users created in the ThoughtSpot system are added to ALL_GROUP - -```python -def restapi_v_2__create_user(self, - name, - display_name, - password, - visibility=None, - mail=None, - org_ids=None, - groups=None, - state=None, - notify_on_share=None, - show_walk_me=None, - analyst_onboarding_complete=None, - mtype=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Required | Name of the user. The username string must be unique. | -| `display_name` | `string` | Query, Required | A unique display name string for the user account, usually their first and last name | -| `password` | `string` | Query, Required | Password for the user account. | -| `visibility` | [`VisibilityEnum`](../../doc/models/visibility-enum.md) | Query, Optional | Visibility of the user. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and this allows them to share objects | -| `mail` | `string` | Query, Optional | Email of the user account | -| `org_ids` | `List of int` | Query, Optional | Array of org identifiers. If no value is provided then user will be created in the organization associated with the login session. | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Query, Optional | Array of objects of groups that the user belong to. | -| `state` | [`StateEnum`](../../doc/models/state-enum.md) | Query, Optional | Status of user account. acitve or inactive. | -| `notify_on_share` | `bool` | Query, Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | -| `show_walk_me` | `bool` | Query, Optional | The user preference for revisiting the onboarding experience. | -| `analyst_onboarding_complete` | `bool` | Query, Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | -| `mtype` | [`Type8Enum`](../../doc/models/type-8-enum.md) | Query, Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | - -## Response Type - -[`UserResponse`](../../doc/models/user-response.md) - -## Example Usage - -```python -name = 'name0' -display_name = 'displayName2' -password = 'password4' - -result = user_controller.restapi_v_2__create_user(name, display_name, password) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Update User - -You can use this endpoint to programmatically modify an existing user account. To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```python -def restapi_v_2__update_user(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserUpdateRequest`](../../doc/models/tspublic-rest-v2-user-update-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2UserUpdateRequest() - -result = user_controller.restapi_v_2__update_user(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Delete User - -To remove a user from the ThoughtSpot system, use this endpoint. -At Least one value needed. When both are given user id will be considered to delete user. - -```python -def restapi_v_2__delete_user(self, - name=None, - id=None, - org_id=None) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Optional | Username of the user that you want to query. | -| `id` | `string` | Query, Optional | The GUID of the user account to query | -| `org_id` | `int` | Query, Optional | Unique identifier of the organization from which the user would be deleted. If no value is provided then user will be deleted from the organization associated with the login session. | - -## Response Type - -`bool` - -## Example Usage - -```python -result = user_controller.restapi_v_2__delete_user() -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add User to Groups - -To programmatically add groups to an existing ThoughtSpot user use this endpoint. -When you assign groups to a user, the user inherits the privileges assigned to those groups. -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```python -def restapi_v_2__add_user_to_groups(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserAddgroupRequest`](../../doc/models/tspublic-rest-v2-user-addgroup-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2UserAddgroupRequest() -body.groups = [] - -body.groups.append(GroupNameAndIDInput()) - - -result = user_controller.restapi_v_2__add_user_to_groups(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Remove User From Groups - -To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. -The API removes only the user association. It does not delete the user or group from the Thoughtspot system -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```python -def restapi_v_2__remove_user_from_groups(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserRemovegroupRequest`](../../doc/models/tspublic-rest-v2-user-removegroup-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2UserRemovegroupRequest() -body.groups = [] - -body.groups.append(GroupNameAndIDInput()) - - -result = user_controller.restapi_v_2__remove_user_from_groups(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Search Users - -To get the details of a specific user account or all users in the ThoughtSpot system use this end point. - -```python -def restapi_v_2__search_users(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserSearchRequest`](../../doc/models/tspublic-rest-v2-user-search-request.md) | Body, Required | - | - -## Response Type - -`object` - -## Example Usage - -```python -body = TspublicRestV2UserSearchRequest() - -result = user_controller.restapi_v_2__search_users(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Change Password of User - -To change the password of a ThoughtSpot user account, use this endpoint. - -At least one of id or name of user is required. When both are given user id will be considered. - -```python -def restapi_v_2__change_password_of_user(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserChangepasswordRequest`](../../doc/models/tspublic-rest-v2-user-changepassword-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2UserChangepasswordRequest() -body.current_password = 'currentPassword0' -body.new_password = 'newPassword0' - -result = user_controller.restapi_v_2__change_password_of_user(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - - -# Restapi V2 Add User to Orgs - -To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. - -At least one of id or name of the organization is required. When both are given, then organization id will be considered. - -Requires Administration access for the organization to which users need to be added. - -```python -def restapi_v_2__add_user_to_orgs(self, - body) -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserAddorgRequest`](../../doc/models/tspublic-rest-v2-user-addorg-request.md) | Body, Required | - | - -## Response Type - -`bool` - -## Example Usage - -```python -body = TspublicRestV2UserAddorgRequest() -body.users = [] - -body.users.append(UserNameAndIDInput()) - - -result = user_controller.restapi_v_2__add_user_to_orgs(body) -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseException`](../../doc/models/error-response-exception.md) | - diff --git a/Python/doc/http-request.md b/Python/doc/http-request.md deleted file mode 100644 index 2c16378b7..000000000 --- a/Python/doc/http-request.md +++ /dev/null @@ -1,16 +0,0 @@ - -# HttpRequest - -Represents a single Http Request. - -## Parameters - -| Name | Type | Tag | Description | -| --- | --- | --- | --- | -| http_method | HttpMethodEnum | | The HTTP method of the request. | -| query_url | str | | The endpoint URL for the API request. | -| headers | dict | optional | Request headers. | -| query_parameters | dict | optional | Query parameters to add in the URL. | -| parameters | dict | str | optional | Request body, either as a serialized string or else a list of parameters to form encode. | -| files | dict | optional | Files to be sent with the request. | - diff --git a/Python/doc/http-response.md b/Python/doc/http-response.md deleted file mode 100644 index 7bb56d49b..000000000 --- a/Python/doc/http-response.md +++ /dev/null @@ -1,15 +0,0 @@ - -# HttpResponse - -Http response received. - -## Parameters - -| Name | Type | Description | -| --- | --- | --- | -| status_code | int | The status code returned by the server. | -| reason_phrase | str | The reason phrase returned by the server. | -| headers | dict | Response headers. | -| text | str | Response body. | -| request | HttpRequest | The request that resulted in this response. | - diff --git a/Python/doc/models/access-enum.md b/Python/doc/models/access-enum.md deleted file mode 100644 index 7617967c1..000000000 --- a/Python/doc/models/access-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Access Enum - -Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. - -## Enumeration - -`AccessEnum` - -## Fields - -| Name | -| --- | -| `READ_ONLY` | -| `MODIFY` | - diff --git a/Python/doc/models/access-level-enum.md b/Python/doc/models/access-level-enum.md deleted file mode 100644 index 8242b529d..000000000 --- a/Python/doc/models/access-level-enum.md +++ /dev/null @@ -1,14 +0,0 @@ - -# Access Level Enum - -## Enumeration - -`AccessLevelEnum` - -## Fields - -| Name | -| --- | -| `FULL` | -| `REPORT_BOOK_VIEW` | - diff --git a/Python/doc/models/access-level-input.md b/Python/doc/models/access-level-input.md deleted file mode 100644 index eed71b579..000000000 --- a/Python/doc/models/access-level-input.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Access Level Input - -## Structure - -`AccessLevelInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Username or name of the user group | -| `id` | `string` | Optional | GUID of the user or user group | -| `mtype` | [`Type1Enum`](../../doc/models/type-1-enum.md) | Optional | Type of access detail provided | -| `access` | [`AccessEnum`](../../doc/models/access-enum.md) | Optional | Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "type": null, - "access": null -} -``` - diff --git a/Python/doc/models/add-table-input.md b/Python/doc/models/add-table-input.md deleted file mode 100644 index 6c70f60b7..000000000 --- a/Python/doc/models/add-table-input.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Add Table Input - -## Structure - -`AddTableInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the table | -| `db_name` | `string` | Required | Name of the database in the data platform | -| `schema_name` | `string` | Required | Name of the schema in the database | -| `columns` | [`List of ColumnsInput`](../../doc/models/columns-input.md) | Required | A JSON array of column details | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dbName": "dbName8", - "schemaName": "schemaName4", - "columns": [ - { - "name": "name0", - "dataType": "dataType2" - } - ] -} -``` - diff --git a/Python/doc/models/adminsync-principal-response.md b/Python/doc/models/adminsync-principal-response.md deleted file mode 100644 index 967913cf7..000000000 --- a/Python/doc/models/adminsync-principal-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Adminsync Principal Response - -## Structure - -`AdminsyncPrincipalResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `users_added` | `List of string` | Optional | Username of list of users added | -| `users_deleted` | `List of string` | Optional | Username of list of users deleted | -| `users_updated` | `List of string` | Optional | Username of list of users updated | -| `groups_added` | `List of string` | Optional | Group name of list of groups added | -| `groups_deleted` | `List of string` | Optional | Group name of list of groups deleted | -| `groups_updated` | `List of string` | Optional | Group name of list of groups updated | - -## Example (as JSON) - -```json -{ - "usersAdded": null, - "usersDeleted": null, - "usersUpdated": null, - "groupsAdded": null, - "groupsDeleted": null, - "groupsUpdated": null -} -``` - diff --git a/Python/doc/models/answer-query-response.md b/Python/doc/models/answer-query-response.md deleted file mode 100644 index 2a2a24bb2..000000000 --- a/Python/doc/models/answer-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Answer Query Response - -## Structure - -`AnswerQueryResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | The name of the saved Answer | -| `id` | `string` | Optional | The GUID of the saved Answer | -| `query_sql` | `string` | Optional | SQL query associated with the saved Answer | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/Python/doc/models/client-state.md b/Python/doc/models/client-state.md deleted file mode 100644 index 5945770b6..000000000 --- a/Python/doc/models/client-state.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Client State - -## Structure - -`ClientState` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `color` | `string` | Optional | Color assigned to the tag | - -## Example (as JSON) - -```json -{ - "color": null -} -``` - diff --git a/Python/doc/models/columns-input.md b/Python/doc/models/columns-input.md deleted file mode 100644 index e94a8c2a7..000000000 --- a/Python/doc/models/columns-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Columns Input - -## Structure - -`ColumnsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the column | -| `data_type` | `string` | Required | Datatype of the column | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dataType": "dataType2" -} -``` - diff --git a/Python/doc/models/connection-column.md b/Python/doc/models/connection-column.md deleted file mode 100644 index af5abc864..000000000 --- a/Python/doc/models/connection-column.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Column - -## Structure - -`ConnectionColumn` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the table | -| `mtype` | `string` | Optional | Type of the Table | -| `column` | [`List of TableColumns`](../../doc/models/table-columns.md) | Optional | List of columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "column": null -} -``` - diff --git a/Python/doc/models/connection-columns-shema.md b/Python/doc/models/connection-columns-shema.md deleted file mode 100644 index 820760b5c..000000000 --- a/Python/doc/models/connection-columns-shema.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Connection Columns Shema - -## Structure - -`ConnectionColumnsShema` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the table | -| `db_name` | `string` | Optional | Name of the database | -| `schema_name` | `string` | Optional | Name of the schema | -| `columns` | [`List of TableColumns`](../../doc/models/table-columns.md) | Optional | List of columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "dbName": null, - "schemaName": null, - "columns": null -} -``` - diff --git a/Python/doc/models/connection-database-type.md b/Python/doc/models/connection-database-type.md deleted file mode 100644 index 5ff2c2075..000000000 --- a/Python/doc/models/connection-database-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Database Type - -## Structure - -`ConnectionDatabaseType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the database | -| `schema` | [`List of ConnectionTableSchema`](../../doc/models/connection-table-schema.md) | Optional | List of schemas | - -## Example (as JSON) - -```json -{ - "name": null, - "schema": null -} -``` - diff --git a/Python/doc/models/connection-response.md b/Python/doc/models/connection-response.md deleted file mode 100644 index 523016c3e..000000000 --- a/Python/doc/models/connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Connection Response - -## Structure - -`ConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the connection | -| `description` | `string` | Optional | Description associated with the connection | -| `mtype` | `string` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | -| `id` | `string` | Optional | GUID of the connection | -| `scheduled` | `bool` | Optional | Indicates if the data sync is scheduled for this connection | -| `connection_type` | `string` | Optional | - | -| `configuration` | `string` | Optional | Configuration properties of the connection | -| `is_external` | `bool` | Optional | - | -| `is_deprecated` | `bool` | Optional | Indicates if the connection is deprecated | -| `is_deleted` | `bool` | Optional | Indicates if the connection is deleted | -| `is_hidden` | `bool` | Optional | Indicates if the connection is hideen | -| `complete` | `bool` | Optional | Indicates if the all the properties of connection is provided | -| `index_version` | `float` | Optional | - | -| `generation_num` | `float` | Optional | - | -| `created` | `string` | Optional | Date and time when the connection was created | -| `modified` | `string` | Optional | Date and time of last modification of the connection | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modified_by` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `tags` | `List of string` | Optional | List of tags assigned to the connection | -| `tables` | [`List of TableList`](../../doc/models/table-list.md) | Optional | List of tables linked to this connection | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/Python/doc/models/connection-table-columns-input.md b/Python/doc/models/connection-table-columns-input.md deleted file mode 100644 index bca27d58a..000000000 --- a/Python/doc/models/connection-table-columns-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Table Columns Input - -## Structure - -`ConnectionTableColumnsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `db_name` | `string` | Required | Name of the database | -| `schema_name` | `string` | Required | Name of the schema | -| `name` | `string` | Required | Name of the table | - -## Example (as JSON) - -```json -{ - "dbName": "dbName8", - "schemaName": "schemaName4", - "name": "name0" -} -``` - diff --git a/Python/doc/models/connection-table-columns-response.md b/Python/doc/models/connection-table-columns-response.md deleted file mode 100644 index b50ebb0c5..000000000 --- a/Python/doc/models/connection-table-columns-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Columns Response - -## Structure - -`ConnectionTableColumnsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | Connection id | -| `table` | [`List of ConnectionColumnsShema`](../../doc/models/connection-columns-shema.md) | Optional | List of table details | - -## Example (as JSON) - -```json -{ - "id": null, - "table": null -} -``` - diff --git a/Python/doc/models/connection-table-response.md b/Python/doc/models/connection-table-response.md deleted file mode 100644 index 0376ec7ca..000000000 --- a/Python/doc/models/connection-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Response - -## Structure - -`ConnectionTableResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | Connection id | -| `database` | [`List of ConnectionDatabaseType`](../../doc/models/connection-database-type.md) | Optional | List of databases | - -## Example (as JSON) - -```json -{ - "id": null, - "database": null -} -``` - diff --git a/Python/doc/models/connection-table-schema.md b/Python/doc/models/connection-table-schema.md deleted file mode 100644 index f1a0167d2..000000000 --- a/Python/doc/models/connection-table-schema.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Schema - -## Structure - -`ConnectionTableSchema` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the schema | -| `table` | [`List of ConnectionColumn`](../../doc/models/connection-column.md) | Optional | List of table details | - -## Example (as JSON) - -```json -{ - "name": null, - "table": null -} -``` - diff --git a/Python/doc/models/create-connection-response.md b/Python/doc/models/create-connection-response.md deleted file mode 100644 index cf9e8dd84..000000000 --- a/Python/doc/models/create-connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Create Connection Response - -## Structure - -`CreateConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the connection | -| `description` | `string` | Optional | Description associated with the connection | -| `mtype` | `string` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | -| `id` | `string` | Optional | GUID of the connection | -| `scheduled` | `bool` | Optional | Indicates if the data sync is scheduled for this connection | -| `connection_type` | `string` | Optional | - | -| `configuration` | `string` | Optional | Configuration properties of the connection | -| `is_external` | `bool` | Optional | - | -| `is_deprecated` | `bool` | Optional | Indicates if the connection is deprecated | -| `is_deleted` | `bool` | Optional | Indicates if the connection is deleted | -| `is_hidden` | `bool` | Optional | Indicates if the connection is hideen | -| `complete` | `bool` | Optional | Indicates if the all the properties of connection is provided | -| `index_version` | `float` | Optional | - | -| `generation_num` | `float` | Optional | - | -| `created` | `string` | Optional | Date and time when user account was created | -| `modified` | `string` | Optional | Date and time of last modification of user account | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modified_by` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `tags` | `List of string` | Optional | List of tags assigned to the connection | -| `tables` | `List of string` | Optional | List of tables linked to this connection and details of the columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/Python/doc/models/create-table-response.md b/Python/doc/models/create-table-response.md deleted file mode 100644 index c612455ec..000000000 --- a/Python/doc/models/create-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Create Table Response - -## Structure - -`CreateTableResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `logical_table_header` | [`LogicalTableHeader`](../../doc/models/logical-table-header.md) | Optional | - | -| `physical_table_id` | `string` | Optional | - | - -## Example (as JSON) - -```json -{ - "logicalTableHeader": null, - "physicalTableId": null -} -``` - diff --git a/Python/doc/models/dependent-permission.md b/Python/doc/models/dependent-permission.md deleted file mode 100644 index 137b4ed10..000000000 --- a/Python/doc/models/dependent-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Dependent Permission - -## Structure - -`DependentPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | GUID of the object | -| `name` | `string` | Optional | Name of the object | -| `mtype` | `string` | Optional | Indicates the type of the object | -| `permission` | `string` | Optional | Indicates the permission which user or user group has on the object | -| `shared_permission` | `string` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | -| `group_permission` | [`List of GroupPermission`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Python/doc/models/error-response-exception.md b/Python/doc/models/error-response-exception.md deleted file mode 100644 index d4b2b9433..000000000 --- a/Python/doc/models/error-response-exception.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Error Response Exception - -## Structure - -`ErrorResponseException` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `error` | `object` | Optional | - | - -## Example (as JSON) - -```json -{ - "error": null -} -``` - diff --git a/Python/doc/models/format-type-3-enum.md b/Python/doc/models/format-type-3-enum.md deleted file mode 100644 index 8b2285822..000000000 --- a/Python/doc/models/format-type-3-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Format Type 3 Enum - -The format in which to export the objects - -## Enumeration - -`FormatType3Enum` - -## Fields - -| Name | -| --- | -| `YAML` | -| `JSON` | - diff --git a/Python/doc/models/format-type-enum.md b/Python/doc/models/format-type-enum.md deleted file mode 100644 index 7d7d7e249..000000000 --- a/Python/doc/models/format-type-enum.md +++ /dev/null @@ -1,20 +0,0 @@ - -# Format Type Enum - -The format of the data in the response. - -FULL: The response comes in "column":"value" format. - -COMPACT: The response includes only the value of the columns. - -## Enumeration - -`FormatTypeEnum` - -## Fields - -| Name | -| --- | -| `COMPACT` | -| `FULL` | - diff --git a/Python/doc/models/from-user-name-and-id-input.md b/Python/doc/models/from-user-name-and-id-input.md deleted file mode 100644 index e743af835..000000000 --- a/Python/doc/models/from-user-name-and-id-input.md +++ /dev/null @@ -1,29 +0,0 @@ - -# From User Name and ID Input - -A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. - -If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. - -Provide either name or id as input. When both are given user id will be considered. - -## Structure - -`FromUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Username of the user | -| `id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/group-name-and-id-input.md b/Python/doc/models/group-name-and-id-input.md deleted file mode 100644 index 0240576b7..000000000 --- a/Python/doc/models/group-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID Input - -## Structure - -`GroupNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | GUID of the group | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/group-name-and-id.md b/Python/doc/models/group-name-and-id.md deleted file mode 100644 index f7f66286a..000000000 --- a/Python/doc/models/group-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID - -## Structure - -`GroupNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | GUID of the group | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/group-permission.md b/Python/doc/models/group-permission.md deleted file mode 100644 index 5392f4cba..000000000 --- a/Python/doc/models/group-permission.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Group Permission - -## Structure - -`GroupPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | GUID of the user group | -| `name` | `string` | Optional | Name of the user group | -| `permission` | `string` | Optional | Indicates the permission which user group has on the object | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "permission": null -} -``` - diff --git a/Python/doc/models/group-response.md b/Python/doc/models/group-response.md deleted file mode 100644 index 78b1a3104..000000000 --- a/Python/doc/models/group-response.md +++ /dev/null @@ -1,79 +0,0 @@ - -# Group Response - -## Structure - -`GroupResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `display_name` | `string` | Optional | A unique display name string for the user group | -| `id` | `string` | Optional | GUID of the group | -| `visibility` | `string` | Optional | Visibility of the group | -| `description` | `string` | Optional | Description of the group | -| `privileges` | `List of string` | Optional | Privileges assigned to the group | -| `orgs` | [`List of OrgType`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | -| `groups` | [`List of GroupNameAndID`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which is added | -| `users` | [`List of UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | User Group Information by Id or Name. | -| `assigned_liveboards` | [`List of LiveboardNameAndID`](../../doc/models/liveboard-name-and-id.md) | Optional | Liveboards assigned to the group | -| `user_group_content` | `object` | Optional | - | -| `tags` | `List of string` | Optional | Tags assigned to the group | -| `is_deleted` | `bool` | Optional | Indicates if the group is deleted | -| `is_hidden` | `bool` | Optional | Indicates if the group is hidden | -| `is_external` | `bool` | Optional | Indicates if the group is from external system | -| `is_deprecated` | `bool` | Optional | - | -| `complete` | `bool` | Optional | Indicates if the all the properties of group is provided | -| `is_system_principal` | `bool` | Optional | Indicates if the group is system principal | -| `mtype` | `string` | Optional | Indicates the type of group | -| `parenttype` | `string` | Optional | Indicates the type of parent object | -| `group_idx` | `int` | Optional | - | -| `metadata_version` | `int` | Optional | - | -| `tenant_id` | `string` | Optional | Tenant id associated with the group | -| `index_version` | `float` | Optional | - | -| `generation_num` | `float` | Optional | - | -| `created` | `float` | Optional | Date and time when group was created | -| `modified` | `float` | Optional | Date and time of last modification of the group | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modified_by` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "description": null, - "privileges": null, - "orgs": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "userGroupContent": null, - "tags": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "groupIdx": null, - "metadataVersion": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/Python/doc/models/home-liveboard-response.md b/Python/doc/models/home-liveboard-response.md deleted file mode 100644 index 73f11472b..000000000 --- a/Python/doc/models/home-liveboard-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Home Liveboard Response - -## Structure - -`HomeLiveboardResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Optional | Name of the user | -| `user_id` | `string` | Optional | The GUID of the user | -| `liveboard_name` | `string` | Optional | Name of the liveboard | -| `liveboard_id` | `string` | Optional | The GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardName": null, - "liveboardId": null -} -``` - diff --git a/Python/doc/models/import-policy-enum.md b/Python/doc/models/import-policy-enum.md deleted file mode 100644 index 7cb9614e2..000000000 --- a/Python/doc/models/import-policy-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Import Policy Enum - -Policy to follow during import - -## Enumeration - -`ImportPolicyEnum` - -## Fields - -| Name | -| --- | -| `PARTIAL` | -| `ALL_OR_NONE` | -| `VALIDATE_ONLY` | - diff --git a/Python/doc/models/liveboard-name-and-id.md b/Python/doc/models/liveboard-name-and-id.md deleted file mode 100644 index fdaf1f448..000000000 --- a/Python/doc/models/liveboard-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Liveboard Name and ID - -## Structure - -`LiveboardNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the liveboard | -| `id` | `string` | Optional | GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/liveboard-query-response.md b/Python/doc/models/liveboard-query-response.md deleted file mode 100644 index 51f58db13..000000000 --- a/Python/doc/models/liveboard-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Liveboard Query Response - -## Structure - -`LiveboardQueryResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | The name of the Liveboard | -| `id` | `string` | Optional | The GUID of the Liveboard | -| `viz` | [`List of VizType`](../../doc/models/viz-type.md) | Optional | SQL query associated with the saved Answer | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "viz": null -} -``` - diff --git a/Python/doc/models/logical-table-header.md b/Python/doc/models/logical-table-header.md deleted file mode 100644 index 791b5a5a8..000000000 --- a/Python/doc/models/logical-table-header.md +++ /dev/null @@ -1,51 +0,0 @@ - -# Logical Table Header - -## Structure - -`LogicalTableHeader` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | - | -| `name` | `string` | Optional | - | -| `author` | `string` | Optional | - | -| `author_name` | `string` | Optional | - | -| `author_display_name` | `string` | Optional | - | -| `created` | `float` | Optional | - | -| `modified` | `float` | Optional | - | -| `modified_by` | `string` | Optional | - | -| `generation_num` | `int` | Optional | - | -| `owner` | `string` | Optional | - | -| `deleted` | `bool` | Optional | - | -| `hidden` | `bool` | Optional | - | -| `database` | `string` | Optional | - | -| `schema` | `string` | Optional | - | -| `mtype` | `string` | Optional | - | -| `sub_type` | `string` | Optional | - | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "author": null, - "authorName": null, - "authorDisplayName": null, - "created": null, - "modified": null, - "modifiedBy": null, - "generationNum": null, - "owner": null, - "deleted": null, - "hidden": null, - "database": null, - "schema": null, - "type": null, - "subType": null -} -``` - diff --git a/Python/doc/models/logs-response.md b/Python/doc/models/logs-response.md deleted file mode 100644 index f3aef07f0..000000000 --- a/Python/doc/models/logs-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Logs Response - -## Structure - -`LogsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `date` | `string` | Optional | Date and time for the event in the log | -| `log` | `string` | Optional | Logged event at the time specified in JSON format. This includes, Event ID, A unique description of the event, for example, User login failed, Timestamp, User ID of the person initiating the event and IP address of the ThoughtSpot instance. | - -## Example (as JSON) - -```json -{ - "date": null, - "log": null -} -``` - diff --git a/Python/doc/models/metadata-tag-response.md b/Python/doc/models/metadata-tag-response.md deleted file mode 100644 index 22fc8efb6..000000000 --- a/Python/doc/models/metadata-tag-response.md +++ /dev/null @@ -1,47 +0,0 @@ - -# Metadata Tag Response - -## Structure - -`MetadataTagResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the tag | -| `id` | `string` | Optional | GUID of the tag | -| `client_state` | [`ClientState`](../../doc/models/client-state.md) | Optional | - | -| `index_version` | `float` | Optional | - | -| `generation_num` | `float` | Optional | - | -| `is_deleted` | `bool` | Optional | Indicates if the tag is deleted | -| `is_hidden` | `bool` | Optional | Indicates if the tag is hidden | -| `is_external` | `bool` | Optional | Indicates if the tag is from external system | -| `is_deprecated` | `bool` | Optional | - | -| `created` | `float` | Optional | Date and time when group was created | -| `modified` | `float` | Optional | Date and time of last modification of the group | -| `modified_by` | [`TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | -| `author` | [`TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | -| `owner` | [`TagNameAndID`](../../doc/models/tag-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "clientState": null, - "indexVersion": null, - "generationNum": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "created": null, - "modified": null, - "modifiedBy": null, - "author": null, - "owner": null -} -``` - diff --git a/Python/doc/models/name-and-id-input.md b/Python/doc/models/name-and-id-input.md deleted file mode 100644 index 4ed03d046..000000000 --- a/Python/doc/models/name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Name and Id Input - -## Structure - -`NameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the user | -| `id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/org-type.md b/Python/doc/models/org-type.md deleted file mode 100644 index 32b67393e..000000000 --- a/Python/doc/models/org-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Org Type - -## Structure - -`OrgType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the organization | -| `id` | `int` | Optional | Id of the organization | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/orgs-response.md b/Python/doc/models/orgs-response.md deleted file mode 100644 index 2c685759a..000000000 --- a/Python/doc/models/orgs-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Orgs Response - -## Structure - -`OrgsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `org_id` | `int` | Optional | ID of the organization searched for | -| `org_name` | `string` | Optional | Name of the organization searched for | -| `description` | `string` | Optional | Description associated with the organization | -| `all_group_user_id` | `string` | Optional | GUID of the ALL group in the organization | -| `default_admin_user_group_id` | `string` | Optional | GUID of the admin group in the organization | -| `active` | `bool` | Optional | Indicates if the organization is active or not | - -## Example (as JSON) - -```json -{ - "orgId": null, - "orgName": null, - "description": null, - "allGroupUserId": null, - "defaultAdminUserGroupId": null, - "active": null -} -``` - diff --git a/Python/doc/models/orientation-enum.md b/Python/doc/models/orientation-enum.md deleted file mode 100644 index 361feb0ee..000000000 --- a/Python/doc/models/orientation-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Orientation Enum - -Page orientation for the PDF. Default: PORTRAIT - -## Enumeration - -`OrientationEnum` - -## Fields - -| Name | -| --- | -| `PORTRAIT` | -| `LANDSCAPE` | - diff --git a/Python/doc/models/pdf-options-input.md b/Python/doc/models/pdf-options-input.md deleted file mode 100644 index 413e7b0a2..000000000 --- a/Python/doc/models/pdf-options-input.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Pdf Options Input - -## Structure - -`PdfOptionsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `orientation` | [`OrientationEnum`](../../doc/models/orientation-enum.md) | Optional | Page orientation for the PDF. Default: PORTRAIT | -| `truncate_tables` | `bool` | Optional | When set to true, only the first page of the tables is displayed in the file.

This setting is applicable only when generating report for specific visualization ids. Default: false | -| `include_logo` | `bool` | Optional | Include customized wide logo if available in the footer. Default: true | -| `footer_text` | `string` | Optional | Footer text to include in the footer of each page of the PDF. | -| `include_page_number` | `bool` | Optional | When set to true, the page number is included in the footer of each page. Default: true | -| `include_cover_page` | `bool` | Optional | When set to true, a cover page with the Liveboard title is added in the PDF. Default: true | -| `include_filter_page` | `bool` | Optional | When set to true, a second page with a list of all applied filters is added in the PDF. Default: true | - -## Example (as JSON) - -```json -{ - "orientation": null, - "truncateTables": null, - "includeLogo": null, - "footerText": null, - "includePageNumber": null, - "includeCoverPage": null, - "includeFilterPage": null -} -``` - diff --git a/Python/doc/models/permissions-type-search.md b/Python/doc/models/permissions-type-search.md deleted file mode 100644 index d056fb7eb..000000000 --- a/Python/doc/models/permissions-type-search.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Permissions Type Search - -## Structure - -`PermissionsTypeSearch` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | `string` | Optional | Indicates the type of the object | -| `ts_object` | [`List of TsObjectTypeSerach`](../../doc/models/ts-object-type-serach.md) | Optional | An array of objects of type mentioned in type field | - -## Example (as JSON) - -```json -{ - "type": null, - "tsObject": null -} -``` - diff --git a/Python/doc/models/pinboard-details.md b/Python/doc/models/pinboard-details.md deleted file mode 100644 index be850e67f..000000000 --- a/Python/doc/models/pinboard-details.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Pinboard Details - -## Structure - -`PinboardDetails` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `pinboard_id` | `string` | Optional | pinboard id of recently pinned pinboard | -| `pinboard_name` | `string` | Optional | pinboard name of recently pinned pinboard | -| `tab_id` | `string` | Optional | tab id of recently pinned tab | -| `tab_name` | `string` | Optional | tab name of recently pinned tab | - -## Example (as JSON) - -```json -{ - "pinboardId": null, - "pinboardName": null, - "tabId": null, - "tabName": null -} -``` - diff --git a/Python/doc/models/principal-search-response.md b/Python/doc/models/principal-search-response.md deleted file mode 100644 index 96f2396c5..000000000 --- a/Python/doc/models/principal-search-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Principal Search Response - -## Structure - -`PrincipalSearchResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | GUID of the user or user group | -| `name` | `string` | Optional | Name of the user or user group | -| `mtype` | `string` | Optional | Indicates the type of principal | -| `permissions` | [`List of PermissionsTypeSearch`](../../doc/models/permissions-type-search.md) | Optional | Indicates the permission which user or user group has on the object | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permissions": null -} -``` - diff --git a/Python/doc/models/privilege-enum.md b/Python/doc/models/privilege-enum.md deleted file mode 100644 index cb4f44eaf..000000000 --- a/Python/doc/models/privilege-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Privilege Enum - -## Enumeration - -`PrivilegeEnum` - -## Fields - -| Name | -| --- | -| `RANALYSIS` | -| `DATAMANAGEMENT` | -| `APPLICATION_ADMINISTRATION` | -| `USER_ADMINISTRATION` | -| `SYSTEMMANAGEMENT` | -| `SYSTEM_INFO_ADMINISTRATION` | -| `AUTHORING` | -| `BACKUP_ADMINISTRATION` | -| `SHAREWITHALL` | -| `DEVELOPER` | -| `JOBSCHEDULING` | -| `GROUP_ADMINISTRATION` | -| `BYPASSRLS` | -| `EXPERIMENTALFEATUREPRIVILEGE` | -| `A3ANALYSIS` | -| `USERDATAUPLOADING` | -| `DATADOWNLOADING` | -| `DISABLE_PINBOARD_CREATION` | -| `ADMINISTRATION` | - diff --git a/Python/doc/models/secuirity-dependents.md b/Python/doc/models/secuirity-dependents.md deleted file mode 100644 index 0a360066d..000000000 --- a/Python/doc/models/secuirity-dependents.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Secuirity Dependents - -## Structure - -`SecuirityDependents` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | GUID of the object | -| `name` | `string` | Optional | Name of the object | -| `mtype` | `string` | Optional | Indicates the type of the object | -| `owner` | `string` | Optional | Owner of the object | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `permissions` | [`List of DependentPermission`](../../doc/models/dependent-permission.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null -} -``` - diff --git a/Python/doc/models/security-permission-response.md b/Python/doc/models/security-permission-response.md deleted file mode 100644 index 60ca79c54..000000000 --- a/Python/doc/models/security-permission-response.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Security Permission Response - -## Structure - -`SecurityPermissionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | GUID of the object | -| `name` | `string` | Optional | Name of the object | -| `mtype` | `string` | Optional | Indicates the type of the object | -| `owner` | `string` | Optional | GUID of the owner of the object | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `permissions` | [`List of SecurityPermission`](../../doc/models/security-permission.md) | Optional | An array of object with details of permission on users and user groups | -| `dependents` | [`List of SecuirityDependents`](../../doc/models/secuirity-dependents.md) | Optional | The objects on which the primary object is dependent on | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null, - "dependents": null -} -``` - diff --git a/Python/doc/models/security-permission.md b/Python/doc/models/security-permission.md deleted file mode 100644 index 39b1026d8..000000000 --- a/Python/doc/models/security-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Security Permission - -## Structure - -`SecurityPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | GUID of the user or user group | -| `name` | `string` | Optional | Name of the user or user group | -| `mtype` | `string` | Optional | Indicates the type of principal | -| `permission` | `string` | Optional | Indicates the permission which user or user group has on the object | -| `shared_permission` | `string` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | -| `group_permission` | [`List of GroupPermission`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Python/doc/models/session-login-response.md b/Python/doc/models/session-login-response.md deleted file mode 100644 index bd3da83df..000000000 --- a/Python/doc/models/session-login-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Session Login Response - -Login response - -## Structure - -`SessionLoginResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Optional | Username of the user account for which token is generated | -| `token` | `string` | Optional | Bearer token generated. This will be blank when token type is Cookie | -| `token_created_time` | `string` | Optional | Date and time at which the token is generated | -| `token_expiry_duration` | `string` | Optional | Duration in seconds after which the token expires | -| `token_type` | `string` | Optional | Type of token generated | - -## Example (as JSON) - -```json -{ - "userName": null, - "token": null, - "tokenCreatedTime": null, - "tokenExpiryDuration": null, - "tokenType": null -} -``` - diff --git a/Python/doc/models/sort-by-1-enum.md b/Python/doc/models/sort-by-1-enum.md deleted file mode 100644 index 6261ec4f9..000000000 --- a/Python/doc/models/sort-by-1-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by 1 Enum - -Field based on which the re.sponse needs to be ordered. Valid values - -## Enumeration - -`SortBy1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NAME` | -| `DISPLAY_NAME` | -| `AUTHOR` | -| `CREATED` | -| `MODIFIED` | -| `LAST_ACCESSED` | -| `SYNCED` | -| `VIEWS` | -| `NONE` | -| `USER_STATE` | -| `ROW_COUNT` | - diff --git a/Python/doc/models/sort-by-enum.md b/Python/doc/models/sort-by-enum.md deleted file mode 100644 index bf870406d..000000000 --- a/Python/doc/models/sort-by-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by Enum - -Field based on which the response needs to be ordered. - -## Enumeration - -`SortByEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NAME` | -| `DISPLAY_NAME` | -| `AUTHOR` | -| `CREATED` | -| `MODIFIED` | -| `LAST_ACCESSED` | -| `SYNCED` | -| `VIEWS` | -| `NONE` | -| `USER_STATE` | -| `ROW_COUNT` | - diff --git a/Python/doc/models/sort-order-1-enum.md b/Python/doc/models/sort-order-1-enum.md deleted file mode 100644 index 123cd4b67..000000000 --- a/Python/doc/models/sort-order-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order 1 Enum - -Order in which sortBy should be applied. Valid values - -## Enumeration - -`SortOrder1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `ASC` | -| `DESC` | - diff --git a/Python/doc/models/sort-order-enum.md b/Python/doc/models/sort-order-enum.md deleted file mode 100644 index 2e3885d85..000000000 --- a/Python/doc/models/sort-order-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order Enum - -Order in which sortBy should be applied. - -## Enumeration - -`SortOrderEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `ASC` | -| `DESC` | - diff --git a/Python/doc/models/state-1-enum.md b/Python/doc/models/state-1-enum.md deleted file mode 100644 index 33cec645b..000000000 --- a/Python/doc/models/state-1-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# State 1 Enum - -Status of user account. acitve or inactive. - -## Enumeration - -`State1Enum` - -## Fields - -| Name | -| --- | -| `ACTIVE` | -| `INACTIVE` | -| `EXPIRED` | -| `LOCKED` | -| `PENDING` | - diff --git a/Python/doc/models/state-enum.md b/Python/doc/models/state-enum.md deleted file mode 100644 index 8448d4860..000000000 --- a/Python/doc/models/state-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# State Enum - -## Enumeration - -`StateEnum` - -## Fields - -| Name | -| --- | -| `ACTIVE` | -| `INACTIVE` | -| `EXPIRED` | -| `LOCKED` | -| `PENDING` | - diff --git a/Python/doc/models/table-columns.md b/Python/doc/models/table-columns.md deleted file mode 100644 index f46794283..000000000 --- a/Python/doc/models/table-columns.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Columns - -## Structure - -`TableColumns` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the column | -| `data_type` | `string` | Optional | Datatype of the column | - -## Example (as JSON) - -```json -{ - "name": null, - "dataType": null -} -``` - diff --git a/Python/doc/models/table-input.md b/Python/doc/models/table-input.md deleted file mode 100644 index da208f0f5..000000000 --- a/Python/doc/models/table-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Input - -## Structure - -`TableInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the table | -| `id` | `string` | Optional | GUID of the Table | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/table-list.md b/Python/doc/models/table-list.md deleted file mode 100644 index 78d36c345..000000000 --- a/Python/doc/models/table-list.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Table List - -## Structure - -`TableList` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the table | -| `mtype` | `string` | Optional | Type of the table | -| `id` | `string` | Optional | GUID of the table | -| `database_stripe` | `string` | Optional | Name of the database to which the table belongs | -| `schema_stripe` | `string` | Optional | Name of the schema to which the table belongs | -| `is_external` | `bool` | Optional | - | -| `is_deprecated` | `bool` | Optional | Indicates if the table is deprecated | -| `is_deleted` | `bool` | Optional | Indicates if the table is deleted | -| `is_hidden` | `bool` | Optional | Indicates if the table is hideen | -| `index_version` | `float` | Optional | - | -| `generation_num` | `float` | Optional | - | -| `created` | `string` | Optional | Date and time when the table was created | -| `modified` | `string` | Optional | Date and time of last modification of the table | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modified_by` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `tags` | `List of string` | Optional | List of tags assigned to the table | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "id": null, - "databaseStripe": null, - "schemaStripe": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null -} -``` - diff --git a/Python/doc/models/tag-name-and-id-input.md b/Python/doc/models/tag-name-and-id-input.md deleted file mode 100644 index 1d705e90d..000000000 --- a/Python/doc/models/tag-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and Id Input - -## Structure - -`TagNameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the tags | -| `id` | `string` | Optional | GUID of the tags | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/tag-name-and-id.md b/Python/doc/models/tag-name-and-id.md deleted file mode 100644 index aaa27aed5..000000000 --- a/Python/doc/models/tag-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and ID - -## Structure - -`TagNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group to which group is added | -| `id` | `string` | Optional | GUID of the group to which group is added | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/to-user-name-and-id-input.md b/Python/doc/models/to-user-name-and-id-input.md deleted file mode 100644 index cdd5bb2c3..000000000 --- a/Python/doc/models/to-user-name-and-id-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# To User Name and ID Input - -A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. - -## Structure - -`ToUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Username of the user | -| `id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/topic-enum.md b/Python/doc/models/topic-enum.md deleted file mode 100644 index cb94c0ad9..000000000 --- a/Python/doc/models/topic-enum.md +++ /dev/null @@ -1,13 +0,0 @@ - -# Topic Enum - -## Enumeration - -`TopicEnum` - -## Fields - -| Name | -| --- | -| `SECURITY_LOGS` | - diff --git a/Python/doc/models/ts-object-input.md b/Python/doc/models/ts-object-input.md deleted file mode 100644 index 76b910097..000000000 --- a/Python/doc/models/ts-object-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Ts Object Input - -## Structure - -`TsObjectInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the metadata object | -| `mtype` | [`TypeEnum`](../../doc/models/type-enum.md) | Required | Type of the metadata object | - -## Example (as JSON) - -```json -{ - "id": "id0", - "type": "DATAOBJECT" -} -``` - diff --git a/Python/doc/models/ts-object-search-input.md b/Python/doc/models/ts-object-search-input.md deleted file mode 100644 index cfc532fff..000000000 --- a/Python/doc/models/ts-object-search-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Ts Object Search Input - -## Structure - -`TsObjectSearchInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type2Enum`](../../doc/models/type-2-enum.md) | Required | Type of the metadata objec | -| `id` | `List of string` | Required | A JSON Array of GUIDs of the metadata object | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ] -} -``` - diff --git a/Python/doc/models/ts-object-type-serach.md b/Python/doc/models/ts-object-type-serach.md deleted file mode 100644 index 4486eb66d..000000000 --- a/Python/doc/models/ts-object-type-serach.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Ts Object Type Serach - -## Structure - -`TsObjectTypeSerach` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Optional | GUID of the object | -| `name` | `string` | Optional | Name of the object | -| `owner` | `string` | Optional | Owner of the object | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `permission` | `string` | Optional | Indicates the permission which user or user group has on the object | -| `shared_permission` | `string` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with the user or user group | -| `group_permission` | [`List of GroupPermission`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "owner": null, - "author": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-admin-assignauthor-request.md b/Python/doc/models/tspublic-rest-v2-admin-assignauthor-request.md deleted file mode 100644 index 37e51deb5..000000000 --- a/Python/doc/models/tspublic-rest-v2-admin-assignauthor-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Admin Assignauthor Request - -## Structure - -`TspublicRestV2AdminAssignauthorRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `ts_object_id` | `List of string` | Required | A JSON array of GUIDs of the metadata objects. | -| `name` | `string` | Optional | User name of the user account | -| `id` | `string` | Optional | The GUID of the user account | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-admin-changeauthor-request.md b/Python/doc/models/tspublic-rest-v2-admin-changeauthor-request.md deleted file mode 100644 index 4ec5fe9c9..000000000 --- a/Python/doc/models/tspublic-rest-v2-admin-changeauthor-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Admin Changeauthor Request - -## Structure - -`TspublicRestV2AdminChangeauthorRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `ts_object_id` | `List of string` | Required | A JSON array of GUIDs of the metadata objects.

To change owner of all the objects owned by a user, provide single input as ALL.

If multiple object ids along with ALL is provided as input, then ALL will be considered. | -| `from_user` | [`FromUserNameAndIDInput`](../../doc/models/from-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered.

If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed.

Provide either name or id as input. When both are given user id will be considered. | -| `to_user` | [`ToUserNameAndIDInput`](../../doc/models/to-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "fromUser": { - "name": null, - "id": null - }, - "toUser": { - "name": null, - "id": null - } -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-admin-configuration-update-request.md b/Python/doc/models/tspublic-rest-v2-admin-configuration-update-request.md deleted file mode 100644 index e15da45da..000000000 --- a/Python/doc/models/tspublic-rest-v2-admin-configuration-update-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Configuration Update Request - -## Structure - -`TspublicRestV2AdminConfigurationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `configuration` | `string` | Optional | A JSON file with the key-value pair of configuration attributes to be updated.

Example: {"defaultChartDataSize": 5000} | - -## Example (as JSON) - -```json -{ - "configuration": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-admin-forcelogout-request.md b/Python/doc/models/tspublic-rest-v2-admin-forcelogout-request.md deleted file mode 100644 index de8b13e91..000000000 --- a/Python/doc/models/tspublic-rest-v2-admin-forcelogout-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Forcelogout Request - -## Structure - -`TspublicRestV2AdminForcelogoutRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user` | [`List of NameAndIdInput`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name of users or GUIDs of groups or both. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "user": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-admin-resetpassword-request.md b/Python/doc/models/tspublic-rest-v2-admin-resetpassword-request.md deleted file mode 100644 index d3a3e218e..000000000 --- a/Python/doc/models/tspublic-rest-v2-admin-resetpassword-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Admin Resetpassword Request - -## Structure - -`TspublicRestV2AdminResetpasswordRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | User name of the user account | -| `id` | `string` | Optional | The GUID of the user account to query. | -| `new_password` | `string` | Required | A new password for the user. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "newPassword": "newPassword6" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md b/Python/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md deleted file mode 100644 index c88636175..000000000 --- a/Python/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md +++ /dev/null @@ -1,40 +0,0 @@ - -# Tspublic Rest V2 Admin Syncprincipal Request - -## Structure - -`TspublicRestV2AdminSyncprincipalRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `principal_object` | `List of object` | Required | A JSON array of principal objects containing all users and groups present in the external system.

Example:

{

"name": "Customer Success",

"displayName": "Customer Success",

"description": "CS",

"created": 1568926267025,

"modified": 1568926982242,

"principalTypeEnum": "LOCAL_GROUP",

"groupNames": [],

"visibility": "DEFAULT"

},

{

"name": "test",

"displayName": "test one",

"created": 1587573621279,

"modified": 1587573621674,

"mail": "test2@test.com",

"principalTypeEnum": "LOCAL_USER",

"groupNames": [ "Administrator", "All" ],

"visibility": "DEFAULT"

}

You can leave the created and modified dates blank for new users.

You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum keyword.

Set visibility to NON_SHARABLE, if you do not want the user to be able to share ThoughtSpot objects with other users in this group. | -| `update_modified` | `bool` | Optional | Specifies whether to apply the changes to users and groups already in the cluster based on the principal object list input.
**Default**: `False` | -| `delete_removed` | `bool` | Optional | Specifies whether to delete the users and groups already in the cluster if not present in the principal object list input.
**Default**: `False` | -| `new_user_password` | `string` | Optional | Assign a password for new users added during the sync operation.

All new users added will have this password. It is mandatory to provide value for this field if new users are included in the input list. | - -## Example (as JSON) - -```json -{ - "principalObject": [ - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - } - ], - "updateModified": null, - "deleteRemoved": null, - "newUserPassword": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-connection-addtable-request.md b/Python/doc/models/tspublic-rest-v2-connection-addtable-request.md deleted file mode 100644 index 53e36757b..000000000 --- a/Python/doc/models/tspublic-rest-v2-connection-addtable-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Connection Addtable Request - -## Structure - -`TspublicRestV2ConnectionAddtableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the connection | -| `table` | [`List of AddTableInput`](../../doc/models/add-table-input.md) | Required | A JSON array of table details | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": "name6", - "dbName": "dbName4", - "schemaName": "schemaName0", - "columns": [ - { - "name": "name6", - "dataType": "dataType8" - } - ] - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-connection-create-request.md b/Python/doc/models/tspublic-rest-v2-connection-create-request.md deleted file mode 100644 index 686391e42..000000000 --- a/Python/doc/models/tspublic-rest-v2-connection-create-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Create Request - -## Structure - -`TspublicRestV2ConnectionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type14Enum`](../../doc/models/type-14-enum.md) | Required | Type of the data connection. | -| `name` | `string` | Required | Name of the connection | -| `description` | `string` | Optional | A short description of the connection. | -| `configuration` | `string` | Required | A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. | - -## Example (as JSON) - -```json -{ - "type": "DENODO", - "name": "name0", - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-connection-removetable-request.md b/Python/doc/models/tspublic-rest-v2-connection-removetable-request.md deleted file mode 100644 index 12ec783a0..000000000 --- a/Python/doc/models/tspublic-rest-v2-connection-removetable-request.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Tspublic Rest V2 Connection Removetable Request - -## Structure - -`TspublicRestV2ConnectionRemovetableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the connection | -| `table` | [`List of TableInput`](../../doc/models/table-input.md) | Required | A JSON array of name or GUIDs of the table or both. At least one input is required. Provide either table name or id. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-connection-search-request.md b/Python/doc/models/tspublic-rest-v2-connection-search-request.md deleted file mode 100644 index 67ad06a01..000000000 --- a/Python/doc/models/tspublic-rest-v2-connection-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Connection Search Request - -## Structure - -`TspublicRestV2ConnectionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `int` | Optional | The offset point, starting from where the records should be included in the response. If no input is provided then offset starts from 0
**Default**: `0` | -| `batch_number` | `int` | Optional | An alternate way to set offset for the starting point of the response. Offset field should be kept blank to use the value from this field. Offset value will be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batch_size` | `int` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided, then all records starting from the value provided in offset is included in the response.
**Default**: `-1` | -| `sort_by` | [`SortBy1Enum`](../../doc/models/sort-by-1-enum.md) | Optional | Field based on which the re.sponse needs to be ordered. Valid values
**Default**: `'DEFAULT'` | -| `sort_order` | [`SortOrder1Enum`](../../doc/models/sort-order-1-enum.md) | Optional | Order in which sortBy should be applied. Valid values | -| `mtype` | [`Type15Enum`](../../doc/models/type-15-enum.md) | Required | Type of the connect being searched. Valid values: SNOWFLAKE\|AMAZON_REDSHIFT\|GOOGLE_BIGQUERY\|AZURE_SYNAPSE\|TERADATA\|STARBURST\|SAP_HANA\|ORACLE_ADW\|DATABRICKS\|DENODO | -| `name_pattern` | `string` | Optional | A pattern to match the name of the connection. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | -| `fetch_id` | `List of string` | Optional | A JSON array containing the GUIDs of the connections that you want to fetch. | -| `skip_id` | `List of string` | Optional | A JSON array containing the GUIDs of the connections that you want to skip. | -| `tag` | [`List of TagNameAndIdInput`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "DENODO", - "namePattern": null, - "fetchId": null, - "skipId": null, - "tag": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-connection-table-request.md b/Python/doc/models/tspublic-rest-v2-connection-table-request.md deleted file mode 100644 index 40487ecf1..000000000 --- a/Python/doc/models/tspublic-rest-v2-connection-table-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Connection Table Request - -## Structure - -`TspublicRestV2ConnectionTableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | The GUID of the connection | -| `configuration` | `string` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | -| `include_column` | `bool` | Optional | When set to true, the response will include column level details as well
**Default**: `True` | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "includeColumn": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md b/Python/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md deleted file mode 100644 index 2c8e219fe..000000000 --- a/Python/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Connection Tablecoloumn Request - -## Structure - -`TspublicRestV2ConnectionTablecoloumnRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | The GUID of the connection | -| `configuration` | `string` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | -| `table` | [`List of ConnectionTableColumnsInput`](../../doc/models/connection-table-columns-input.md) | Required | List of table details | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "table": [ - { - "dbName": "dbName4", - "schemaName": "schemaName0", - "name": "name6" - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-connection-update-request.md b/Python/doc/models/tspublic-rest-v2-connection-update-request.md deleted file mode 100644 index 6c39f3253..000000000 --- a/Python/doc/models/tspublic-rest-v2-connection-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Update Request - -## Structure - -`TspublicRestV2ConnectionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the connection | -| `name` | `string` | Optional | The text to update the name of the connection. | -| `description` | `string` | Optional | The text to update the description of the connection. | -| `configuration` | `string` | Required | A JSON object of the connection metadata. Include all the configuration attributes with original value along with the changes required to any attribute. | - -## Example (as JSON) - -```json -{ - "id": "id0", - "name": null, - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-customaction-association-update-request.md b/Python/doc/models/tspublic-rest-v2-customaction-association-update-request.md deleted file mode 100644 index 61169999d..000000000 --- a/Python/doc/models/tspublic-rest-v2-customaction-association-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Association Update Request - -## Structure - -`TspublicRestV2CustomactionAssociationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the custom action | -| `association` | `string` | Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "id": "id0", - "association": "association0" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-customaction-create-request.md b/Python/doc/models/tspublic-rest-v2-customaction-create-request.md deleted file mode 100644 index aa54bf787..000000000 --- a/Python/doc/models/tspublic-rest-v2-customaction-create-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Create Request - -## Structure - -`TspublicRestV2CustomactionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `configuration` | `string` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "configuration": "configuration6" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-customaction-search-request.md b/Python/doc/models/tspublic-rest-v2-customaction-search-request.md deleted file mode 100644 index eb6b7e2e2..000000000 --- a/Python/doc/models/tspublic-rest-v2-customaction-search-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Search Request - -## Structure - -`TspublicRestV2CustomactionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `tag` | `List of string` | Optional | A JSON array of tag GUIDs.

If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags. | - -## Example (as JSON) - -```json -{ - "tag": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-customaction-update-request.md b/Python/doc/models/tspublic-rest-v2-customaction-update-request.md deleted file mode 100644 index bcad68a87..000000000 --- a/Python/doc/models/tspublic-rest-v2-customaction-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Update Request - -## Structure - -`TspublicRestV2CustomactionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the custom action | -| `configuration` | `string` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": "configuration6" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-data-answer-request.md b/Python/doc/models/tspublic-rest-v2-data-answer-request.md deleted file mode 100644 index 913d00e8f..000000000 --- a/Python/doc/models/tspublic-rest-v2-data-answer-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Data Answer Request - -## Structure - -`TspublicRestV2DataAnswerRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `int` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | -| `batch_number` | `int` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batch_size` | `int` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `id` | `string` | Required | The GUID of the Answer | -| `format_type` | [`FormatTypeEnum`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `'COMPACT'` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": "id0", - "formatType": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-data-liveboard-request.md b/Python/doc/models/tspublic-rest-v2-data-liveboard-request.md deleted file mode 100644 index d40b4164c..000000000 --- a/Python/doc/models/tspublic-rest-v2-data-liveboard-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Data Liveboard Request - -## Structure - -`TspublicRestV2DataLiveboardRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `int` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | -| `batch_number` | `int` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batch_size` | `int` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `id` | `string` | Optional | The GUID of the Liveboard | -| `transient_content` | `string` | Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboard data with unsaved changes then, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If value for this field is provided, then id will not be considered. | -| `viz_id` | `List of string` | Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | -| `runtime_filter` | `string` | Optional | JSON object which contains filter condition to filter the data at the time of data retrieval.

Example: {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | -| `runtime_sort` | `string` | Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. | -| `format_type` | [`FormatTypeEnum`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `'COMPACT'` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": null, - "transientContent": null, - "vizId": null, - "runtimeFilter": null, - "runtimeSort": null, - "formatType": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-data-search-request.md b/Python/doc/models/tspublic-rest-v2-data-search-request.md deleted file mode 100644 index ecd37cf44..000000000 --- a/Python/doc/models/tspublic-rest-v2-data-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Data Search Request - -## Structure - -`TspublicRestV2DataSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `int` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `-1` | -| `batch_number` | `int` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batch_size` | `int` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `query_string` | `string` | Required | The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' | -| `data_object_id` | `string` | Required | The GUID of the data object, either a worksheet, a view, or a table. | -| `format_type` | [`FormatTypeEnum`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `'COMPACT'` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "queryString": "queryString4", - "dataObjectId": "dataObjectId2", - "formatType": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-database-table-create-request.md b/Python/doc/models/tspublic-rest-v2-database-table-create-request.md deleted file mode 100644 index 0d57298e4..000000000 --- a/Python/doc/models/tspublic-rest-v2-database-table-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Create Request - -## Structure - -`TspublicRestV2DatabaseTableCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `create_database` | `bool` | Optional | Flag to indicate if the database and schema should be created if they do not exist in Falcon. (Valid values: True/False)
**Default**: `True` | -| `schema` | `string` | Optional | DDL of the table to be created. Example: {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} | - -## Example (as JSON) - -```json -{ - "createDatabase": null, - "schema": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-database-table-runquery-request.md b/Python/doc/models/tspublic-rest-v2-database-table-runquery-request.md deleted file mode 100644 index 14d23c592..000000000 --- a/Python/doc/models/tspublic-rest-v2-database-table-runquery-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Runquery Request - -## Structure - -`TspublicRestV2DatabaseTableRunqueryRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `statement` | `List of string` | Required | A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end with semi-colon (;). The TQL operations that can be run through this API are restricted to create database and schema, alter table, delete and update table rows. If a TQL statement fails, then the subsequent statements in the array are not run. Example: ["alter table test_db.test_schema.test_table drop contraint primary key;";"alter table test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] | - -## Example (as JSON) - -```json -{ - "statement": [ - "statement0" - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-addgroup-request.md b/Python/doc/models/tspublic-rest-v2-group-addgroup-request.md deleted file mode 100644 index b9ac6f289..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Addgroup Request - -## Structure - -`TspublicRestV2GroupAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | The GUID of the group to query. | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-addprivilege-request.md b/Python/doc/models/tspublic-rest-v2-group-addprivilege-request.md deleted file mode 100644 index f54924932..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-addprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Addprivilege Request - -## Structure - -`TspublicRestV2GroupAddprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | The GUID of the group to query. | -| `privileges` | [`List of PrivilegeEnum`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-adduser-request.md b/Python/doc/models/tspublic-rest-v2-group-adduser-request.md deleted file mode 100644 index 6883cd816..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-adduser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Adduser Request - -## Structure - -`TspublicRestV2GroupAdduserRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | The GUID of the group to query. | -| `users` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to update in user group. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-create-request.md b/Python/doc/models/tspublic-rest-v2-group-create-request.md deleted file mode 100644 index 77ceabb83..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-create-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Group Create Request - -## Structure - -`TspublicRestV2GroupCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the user group. The group name string must be unique. | -| `display_name` | `string` | Required | A unique display name string for the user group, for example, Developer group. | -| `visibility` | [`Visibility2Enum`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `'DEFAULT'` | -| `description` | `string` | Optional | Description text for the group. | -| `privileges` | [`List of PrivilegeEnum`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `org_id` | `int` | Optional | Unique identifier of the organization. If no value is provided then group will be created in the organization associated with the login session. | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the group belong to. | -| `users` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Optional | Array of names of user names that the group belong to. | -| `mtype` | [`Type10Enum`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `'LOCAL_GROUP'` | - -## Example (as JSON) - -```json -{ - "name": "name0", - "displayName": "displayName2", - "visibility": null, - "description": null, - "privileges": null, - "orgId": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-removegroup-request.md b/Python/doc/models/tspublic-rest-v2-group-removegroup-request.md deleted file mode 100644 index 5a2f79de1..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Removegroup Request - -## Structure - -`TspublicRestV2GroupRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | The GUID of the group to query. | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-removeprivilege-request.md b/Python/doc/models/tspublic-rest-v2-group-removeprivilege-request.md deleted file mode 100644 index 484f124b8..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-removeprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Removeprivilege Request - -## Structure - -`TspublicRestV2GroupRemoveprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | The GUID of the group to query. | -| `privileges` | [`List of PrivilegeEnum`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-removeuser-request.md b/Python/doc/models/tspublic-rest-v2-group-removeuser-request.md deleted file mode 100644 index 9b9260438..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-removeuser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Removeuser Request - -## Structure - -`TspublicRestV2GroupRemoveuserRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the group | -| `id` | `string` | Optional | The GUID of the group to query. | -| `users` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to delete from user group. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-search-request.md b/Python/doc/models/tspublic-rest-v2-group-search-request.md deleted file mode 100644 index 057743e61..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Search Request - -## Structure - -`TspublicRestV2GroupSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `output_fields` | `List of string` | Optional | Array of field names that need to be included in the response | -| `name` | `string` | Optional | Name of the user group | -| `id` | `string` | Optional | GUID of the group to update | -| `display_name` | `string` | Optional | A unique display name string for the user group, for example, Developer group. | -| `visibility` | `string` | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. | -| `description` | `string` | Optional | Description text for the group. | -| `privileges` | [`List of PrivilegeEnum`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `users` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Optional | Array of user name that associated with group. | -| `mtype` | `string` | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-group-update-request.md b/Python/doc/models/tspublic-rest-v2-group-update-request.md deleted file mode 100644 index ac369d962..000000000 --- a/Python/doc/models/tspublic-rest-v2-group-update-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Update Request - -## Structure - -`TspublicRestV2GroupUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the user group. The group name string must be unique. | -| `id` | `string` | Optional | he GUID of the user account to query. | -| `display_name` | `string` | Optional | A unique display name string for the user group, for example, Developer group. | -| `visibility` | [`Visibility2Enum`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `'DEFAULT'` | -| `description` | `string` | Optional | Description text for the group. | -| `privileges` | [`List of PrivilegeEnum`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `users` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Optional | Array of object, A JSON array of name of users of users. | -| `assigned_liveboards` | `List of string` | Optional | Array of string. An array of liveboard ids to be assigned to the group. | -| `mtype` | [`Type10Enum`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `'LOCAL_GROUP'` | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "type": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-materialization-refreshview-request.md b/Python/doc/models/tspublic-rest-v2-materialization-refreshview-request.md deleted file mode 100644 index fd33ba900..000000000 --- a/Python/doc/models/tspublic-rest-v2-materialization-refreshview-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Materialization Refreshview Request - -## Structure - -`TspublicRestV2MaterializationRefreshviewRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of metadata object | - -## Example (as JSON) - -```json -{ - "id": "id0" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-dependency-request.md b/Python/doc/models/tspublic-rest-v2-metadata-dependency-request.md deleted file mode 100644 index 0d2fa44cb..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-dependency-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Dependency Request - -## Structure - -`TspublicRestV2MetadataDependencyRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type13Enum`](../../doc/models/type-13-enum.md) | Required | Type of the data object | -| `id` | `List of string` | Required | A JSON array of GUIDs of the objects | -| `batch_size` | `int` | Optional | The maximum number of batches to fetch in a query. If this attribute is not defined, the value specified in the cluster configuration is used. To get the list of all dependent objects in a single query, define the batch size attribute as -1
**Default**: `-1` | - -## Example (as JSON) - -```json -{ - "type": "COLUMN", - "id": [ - "id0" - ], - "batchSize": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-detail-search-request.md b/Python/doc/models/tspublic-rest-v2-metadata-detail-search-request.md deleted file mode 100644 index c44572c85..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-detail-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Metadata Detail Search Request - -## Structure - -`TspublicRestV2MetadataDetailSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type6Enum`](../../doc/models/type-6-enum.md) | Required | Type of the metadata object being searched. | -| `id` | `List of string` | Required | A JSON array of GUIDs of the objects. | -| `show_hidden` | `bool` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `False` | -| `drop_question_details` | `bool` | Optional | When set to true, the search assist data associated with a worksheet is not included in the API response. This attribute is applicable only for DATAOBJECT data type.
**Default**: `False` | -| `version` | `string` | Optional | Specify the version to retrieve the objects from. By default, the API returns metadata for all versions of the object. | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "showHidden": null, - "dropQuestionDetails": null, - "version": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md b/Python/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md deleted file mode 100644 index 84df85a69..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Assign Request - -## Structure - -`TspublicRestV2MetadataFavoriteAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Optional | Name of the user | -| `user_id` | `string` | Optional | The GUID of the user | -| `ts_object` | [`List of TsObjectInput`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md b/Python/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md deleted file mode 100644 index 29b5f5ef6..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Unassign Request - -## Structure - -`TspublicRestV2MetadataFavoriteUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Optional | Name of the user | -| `user_id` | `string` | Optional | The GUID of the user | -| `ts_object` | [`List of TsObjectInput`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-header-search-request.md b/Python/doc/models/tspublic-rest-v2-metadata-header-search-request.md deleted file mode 100644 index 34d0a707c..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-header-search-request.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Tspublic Rest V2 Metadata Header Search Request - -## Structure - -`TspublicRestV2MetadataHeaderSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `output_fields` | `List of string` | Optional | Array of header field names that need to be included in the header response | -| `offset` | `int` | Optional | The batch offset, starting from where the records should be included in the response. If no input is provided then offset starts from 0. Default: 0
**Default**: `0` | -| `batch_number` | `int` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. | -| `batch_size` | `int` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided then first page is included in the response.
**Default**: `-1` | -| `sort_by` | [`SortByEnum`](../../doc/models/sort-by-enum.md) | Optional | Field based on which the response needs to be ordered.
**Default**: `'DEFAULT'` | -| `sort_order` | [`SortOrderEnum`](../../doc/models/sort-order-enum.md) | Optional | Order in which sortBy should be applied.
**Default**: `'DEFAULT'` | -| `mtype` | [`Type3Enum`](../../doc/models/type-3-enum.md) | Required | Type of the metadata object being searched. | -| `name_pattern` | `string` | Optional | A pattern to match the name of the metadata object. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | -| `fetch_id` | `List of string` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to fetch. | -| `skip_id` | `List of string` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to skip. | -| `show_hidden` | `bool` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `False` | -| `auto_created` | `bool` | Optional | A flag to indicate whether to list only the auto created objects. When no value is provided as input then all objects are returned. | -| `access_level` | [`List of AccessLevelInput`](../../doc/models/access-level-input.md) | Optional | A JSON array of objects with user details for which the metadata objects should be considered from the repository
If you specify ID or name of user and set the type parameter to USER, the API returns metadata objects associated with the user
If you specify ID or name of user group and set the type parameter to USER_GROUP, the API returns metadata objects for all the users mapped to the specified user group.
If the id or name parameter is not defined, but the type attribute is set to USER or USER_GROUP, then the API will not return and response.
If no input is provided for any field for this object, then the API returns headers for all users.
If both name and id is provided, then id will be considered. | -| `tag` | [`List of TagNameAndIdInput`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered. | -| `favorite_for` | [`List of NameAndIdInput`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. When both are given then id is considered. | -| `author` | [`List of NameAndIdInput`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who created the object. When both are given then id is considered | -| `last_modified_by` | [`List of NameAndIdInput`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who last modified the object. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "COLUMN_ALL", - "namePattern": null, - "fetchId": null, - "skipId": null, - "showHidden": null, - "autoCreated": null, - "accessLevel": null, - "tag": null, - "favoriteFor": null, - "author": null, - "lastModifiedBy": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md b/Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md deleted file mode 100644 index c1aed4c34..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Assign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Optional | Name of the user | -| `user_id` | `string` | Optional | The GUID of the user | -| `liveboard_id` | `string` | Optional | The GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardId": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md b/Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md deleted file mode 100644 index 79856cd29..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Unassign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user_name` | `string` | Optional | Name of the user | -| `user_id` | `string` | Optional | The GUID of the user | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md b/Python/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md deleted file mode 100644 index 508a23188..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Assign Request - -## Structure - -`TspublicRestV2MetadataTagAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the tag | -| `id` | `string` | Optional | The GUID of the tag | -| `ts_object` | [`List of TsObjectInput`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-tag-create-request.md b/Python/doc/models/tspublic-rest-v2-metadata-tag-create-request.md deleted file mode 100644 index da6a9af2e..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-tag-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Create Request - -## Structure - -`TspublicRestV2MetadataTagCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the tag | -| `color` | `string` | Optional | Hex color code to be assigned to the tag | - -## Example (as JSON) - -```json -{ - "name": "name0", - "color": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md b/Python/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md deleted file mode 100644 index b1103d1ab..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Unassign Request - -## Structure - -`TspublicRestV2MetadataTagUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the tag | -| `id` | `string` | Optional | The GUID of the tag | -| `ts_object` | [`List of TsObjectInput`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-tag-update-request.md b/Python/doc/models/tspublic-rest-v2-metadata-tag-update-request.md deleted file mode 100644 index 8dfc507ad..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-tag-update-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Update Request - -## Structure - -`TspublicRestV2MetadataTagUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the tag | -| `id` | `string` | Optional | The GUID of the tag | -| `color` | `string` | Optional | Hex color code to be assigned to the tag | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "color": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-tml-export-request.md b/Python/doc/models/tspublic-rest-v2-metadata-tml-export-request.md deleted file mode 100644 index 6dae52ea8..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-tml-export-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Export Request - -## Structure - -`TspublicRestV2MetadataTmlExportRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `List of string` | Required | A JSON array of GUIDs of the objects. | -| `format_type` | [`FormatType3Enum`](../../doc/models/format-type-3-enum.md) | Optional | The format in which to export the objects
**Default**: `'YAML'` | -| `export_associated` | `bool` | Optional | Specifies if you would like to export the associated objects. To export the objects associated with the objects specified in id, set the value to true. When set to true, the API exports any underlying worksheets, tables, or views for a given object. By default, the API does not export these underlying objects
**Default**: `False` | - -## Example (as JSON) - -```json -{ - "id": [ - "id0" - ], - "formatType": null, - "exportAssociated": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-metadata-tml-import-request.md b/Python/doc/models/tspublic-rest-v2-metadata-tml-import-request.md deleted file mode 100644 index c70e087c1..000000000 --- a/Python/doc/models/tspublic-rest-v2-metadata-tml-import-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Import Request - -## Structure - -`TspublicRestV2MetadataTmlImportRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `object_tml` | `List of string` | Required | A string array of TML objects to upload, in YAML or JSON format.

If TML is in YAML format, then use escape characters for quotes and new line characters.

Example TML:

guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: DONT_INDEX\n db_column_properties:\n data_type: INT64\n

If TML is in JSON format, then use escape characters for quotes.

Example TML:

{\\"guid\\": \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', | -| `import_policy` | [`ImportPolicyEnum`](../../doc/models/import-policy-enum.md) | Optional | Policy to follow during import
**Default**: `'PARTIAL'` | -| `force_create` | `bool` | Optional | Specifies if you are updating or creating objects. To create new objects, specify true. By default, ThoughtSpot updates existing objects that have the same GUID as the objects you are importing. When set to true, the GUID property in the imported TML is replaced on the server, and the response headers will include the id_guid property with the GUID of the new object. The new object will be assigned a new GUID, even if the imported TML file included a guid value. Thus, there is no need to include the guid in the TML file if you are using forceCreate=true.
**Default**: `False` | - -## Example (as JSON) - -```json -{ - "objectTML": [ - "objectTML7" - ], - "importPolicy": null, - "forceCreate": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-org-create-request.md b/Python/doc/models/tspublic-rest-v2-org-create-request.md deleted file mode 100644 index dcc737a96..000000000 --- a/Python/doc/models/tspublic-rest-v2-org-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Org Create Request - -## Structure - -`TspublicRestV2OrgCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the organization. | -| `description` | `string` | Optional | Description text for the organization. | - -## Example (as JSON) - -```json -{ - "name": "name0", - "description": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-org-search-request.md b/Python/doc/models/tspublic-rest-v2-org-search-request.md deleted file mode 100644 index b9c292ca9..000000000 --- a/Python/doc/models/tspublic-rest-v2-org-search-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Org Search Request - -## Structure - -`TspublicRestV2OrgSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the organization. | -| `id` | `int` | Optional | The ID of the organization. | -| `show_deleted` | `bool` | Optional | When set to true, the response will include the details of deleted organization also.
**Default**: `False` | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "showDeleted": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-org-update-request.md b/Python/doc/models/tspublic-rest-v2-org-update-request.md deleted file mode 100644 index a72f36085..000000000 --- a/Python/doc/models/tspublic-rest-v2-org-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Org Update Request - -## Structure - -`TspublicRestV2OrgUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the organization. | -| `id` | `int` | Optional | The ID of the organization. | -| `description` | `string` | Optional | Description text for the organization. | -| `active` | `bool` | Optional | Status of the organization. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "description": null, - "active": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md b/Python/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md deleted file mode 100644 index 83c52dea5..000000000 --- a/Python/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 Security Permission Principal Search Request - -## Structure - -`TspublicRestV2SecurityPermissionPrincipalSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `principal` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Required | A JSON array of principal names or GUIDs to be included in the request. When both are given then id is considered. | -| `ts_object` | [`List of TsObjectSearchInput`](../../doc/models/ts-object-search-input.md) | Optional | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "principal": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ], - "tsObject": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md b/Python/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md deleted file mode 100644 index 2f4c5a1c1..000000000 --- a/Python/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Security Permission Tsobject Search Request - -## Structure - -`TspublicRestV2SecurityPermissionTsobjectSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `ts_object` | [`List of TsObjectSearchInput`](../../doc/models/ts-object-search-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | -| `principal` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Optional | A JSON array of principal names or GUIDs. When both are given then id is considered. | -| `include_dependent` | `bool` | Optional | When this field is set to true, the API response includes the permission details for the dependent objects.
**Default**: `False` | - -## Example (as JSON) - -```json -{ - "tsObject": [ - { - "type": "DATAOBJECT", - "id": [ - "id2" - ] - }, - { - "type": "COLUMN", - "id": [ - "id3", - "id4" - ] - } - ], - "principal": null, - "includeDependent": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-security-share-tsobject-request.md b/Python/doc/models/tspublic-rest-v2-security-share-tsobject-request.md deleted file mode 100644 index 4eff80f87..000000000 --- a/Python/doc/models/tspublic-rest-v2-security-share-tsobject-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Security Share Tsobject Request - -## Structure - -`TspublicRestV2SecurityShareTsobjectRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `mtype` | [`Type18Enum`](../../doc/models/type-18-enum.md) | Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | -| `id` | `List of string` | Required | A JSON array of the GUIDs of the objects to be shared | -| `permission` | `string` | Required | A JSON object with GUIDs of user and user group, and the type of access privilge.

You can provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user group can view the shared object, whereas MODIFY access enables users to modify the object.

To remove access to a shared object, you can set the shareMode in the permission string to NO_ACCESS. Example:

{"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} | -| `email_id` | `List of string` | Optional | The email addresses that should ne notified when the objects are shared. | -| `notify` | `bool` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `True` | -| `message` | `string` | Optional | The message text to send in the notification email. | -| `include_custom_embed_url` | `bool` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `False` | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "permission": "permission2", - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-security-share-visualization-request.md b/Python/doc/models/tspublic-rest-v2-security-share-visualization-request.md deleted file mode 100644 index d40f1bfd9..000000000 --- a/Python/doc/models/tspublic-rest-v2-security-share-visualization-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Security Share Visualization Request - -## Structure - -`TspublicRestV2SecurityShareVisualizationRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | A JSON array of the GUIDs of the objects to be shared | -| `viz_id` | `string` | Required | The GUID of visualization | -| `principal_id` | `List of string` | Required | The GUID of the users and user groups with which you want to share the visualization | -| `email_id` | `List of string` | Optional | The email addresses that should ne notified when the objects are shared | -| `notify` | `bool` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `True` | -| `message` | `string` | Optional | The message text to send in the notification email. | -| `include_custom_embed_url` | `bool` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `False` | - -## Example (as JSON) - -```json -{ - "id": "id0", - "vizId": "vizId2", - "principalId": [ - "principalId8", - "principalId9", - "principalId0" - ], - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-user-addgroup-request.md b/Python/doc/models/tspublic-rest-v2-user-addgroup-request.md deleted file mode 100644 index 4f181b8c6..000000000 --- a/Python/doc/models/tspublic-rest-v2-user-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Addgroup Request - -## Structure - -`TspublicRestV2UserAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | User name of the user account | -| `id` | `string` | Optional | The GUID of the user account | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-user-addorg-request.md b/Python/doc/models/tspublic-rest-v2-user-addorg-request.md deleted file mode 100644 index 609ca11ae..000000000 --- a/Python/doc/models/tspublic-rest-v2-user-addorg-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 User Addorg Request - -## Structure - -`TspublicRestV2UserAddorgRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `org_id` | `int` | Optional | The ID of the organization. | -| `users` | [`List of UserNameAndIDInput`](../../doc/models/user-name-and-id-input.md) | Required | Array of objects. A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "orgId": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-user-changepassword-request.md b/Python/doc/models/tspublic-rest-v2-user-changepassword-request.md deleted file mode 100644 index f247aa1f0..000000000 --- a/Python/doc/models/tspublic-rest-v2-user-changepassword-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 User Changepassword Request - -## Structure - -`TspublicRestV2UserChangepasswordRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | User name of the user account. | -| `id` | `string` | Optional | The GUID of the user account to query. | -| `current_password` | `string` | Required | The current password of the user. | -| `new_password` | `string` | Required | A new password for the user. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "currentPassword": "currentPassword6", - "newPassword": "newPassword6" -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-user-removegroup-request.md b/Python/doc/models/tspublic-rest-v2-user-removegroup-request.md deleted file mode 100644 index 141fe141b..000000000 --- a/Python/doc/models/tspublic-rest-v2-user-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Removegroup Request - -## Structure - -`TspublicRestV2UserRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | User name of the user account | -| `id` | `string` | Optional | The GUID of the user account | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-user-search-request.md b/Python/doc/models/tspublic-rest-v2-user-search-request.md deleted file mode 100644 index 3a0a923e7..000000000 --- a/Python/doc/models/tspublic-rest-v2-user-search-request.md +++ /dev/null @@ -1,45 +0,0 @@ - -# Tspublic Rest V2 User Search Request - -## Structure - -`TspublicRestV2UserSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `output_fields` | `List of string` | Optional | Array of field names that need to be included in the response | -| `name` | `string` | Optional | User name of the user account | -| `id` | `string` | Optional | The GUID of the user account | -| `display_name` | `string` | Optional | A unique display name string for the user, usually their first and last name. | -| `visibility` | `string` | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. | -| `mail` | `string` | Optional | email of the user. | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `privileges` | [`List of PrivilegeEnum`](../../doc/models/privilege-enum.md) | Optional | Privileges assigned to user account | -| `state` | `string` | Optional | Status of user account. acitve or inactive. | -| `notify_on_share` | `bool` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | -| `show_walk_me` | `bool` | Optional | The user preference for revisiting the onboarding experience. | -| `analyst_onboarding_complete` | `bool` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | -| `mtype` | `string` | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null -} -``` - diff --git a/Python/doc/models/tspublic-rest-v2-user-update-request.md b/Python/doc/models/tspublic-rest-v2-user-update-request.md deleted file mode 100644 index d5f32d8c9..000000000 --- a/Python/doc/models/tspublic-rest-v2-user-update-request.md +++ /dev/null @@ -1,41 +0,0 @@ - -# Tspublic Rest V2 User Update Request - -## Structure - -`TspublicRestV2UserUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Name of the user. The username string must be unique. | -| `id` | `string` | Optional | The GUID of the user account to query | -| `display_name` | `string` | Optional | A unique display name string for the user, usually their first and last name. | -| `visibility` | [`Visibility1Enum`](../../doc/models/visibility-1-enum.md) | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects.
**Default**: `'DEFAULT'` | -| `mail` | `string` | Optional | email of the user. | -| `state` | [`State1Enum`](../../doc/models/state-1-enum.md) | Optional | Status of user account. acitve or inactive.
**Default**: `'ACTIVE'` | -| `notify_on_share` | `bool` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards.
**Default**: `True` | -| `show_walk_me` | `bool` | Optional | The user preference for revisiting the onboarding experience.
**Default**: `True` | -| `analyst_onboarding_complete` | `bool` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI.
**Default**: `False` | -| `mtype` | [`Type9Enum`](../../doc/models/type-9-enum.md) | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system.
**Default**: `'LOCAL_USER'` | -| `groups` | [`List of GroupNameAndIDInput`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null, - "groups": null -} -``` - diff --git a/Python/doc/models/type-1-enum.md b/Python/doc/models/type-1-enum.md deleted file mode 100644 index f4a3c36b9..000000000 --- a/Python/doc/models/type-1-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 1 Enum - -Type of access detail provided - -## Enumeration - -`Type1Enum` - -## Fields - -| Name | -| --- | -| `USER` | -| `USER_GROUP` | - diff --git a/Python/doc/models/type-10-enum.md b/Python/doc/models/type-10-enum.md deleted file mode 100644 index 6b990ecab..000000000 --- a/Python/doc/models/type-10-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 10 Enum - -Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type10Enum` - -## Fields - -| Name | -| --- | -| `LOCAL_GROUP` | -| `TENANT_GROUP` | - diff --git a/Python/doc/models/type-13-enum.md b/Python/doc/models/type-13-enum.md deleted file mode 100644 index 1912ab366..000000000 --- a/Python/doc/models/type-13-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 13 Enum - -Type of the data object - -## Enumeration - -`Type13Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | - diff --git a/Python/doc/models/type-14-enum.md b/Python/doc/models/type-14-enum.md deleted file mode 100644 index 10b5041f3..000000000 --- a/Python/doc/models/type-14-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 14 Enum - -Type of the data connection. - -## Enumeration - -`Type14Enum` - -## Fields - -| Name | -| --- | -| `SNOWFLAKE` | -| `AMAZON_REDSHIFT` | -| `GOOGLE_BIGQUERY` | -| `AZURE_SYNAPSE` | -| `TERADATA` | -| `STARBURST` | -| `SAP_HANA` | -| `ORACLE_ADW` | -| `DATABRICKS` | -| `DENODO` | -| `DREMIO` | - diff --git a/Python/doc/models/type-15-enum.md b/Python/doc/models/type-15-enum.md deleted file mode 100644 index 850fafbc4..000000000 --- a/Python/doc/models/type-15-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 15 Enum - -Type of the connect being searched. Valid values: SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - -## Enumeration - -`Type15Enum` - -## Fields - -| Name | -| --- | -| `SNOWFLAKE` | -| `AMAZON_REDSHIFT` | -| `GOOGLE_BIGQUERY` | -| `AZURE_SYNAPSE` | -| `TERADATA` | -| `STARBURST` | -| `SAP_HANA` | -| `ORACLE_ADW` | -| `DATABRICKS` | -| `DENODO` | -| `DREMIO` | - diff --git a/Python/doc/models/type-16-enum.md b/Python/doc/models/type-16-enum.md deleted file mode 100644 index 136de4cf8..000000000 --- a/Python/doc/models/type-16-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 16 Enum - -## Enumeration - -`Type16Enum` - -## Fields - -| Name | -| --- | -| `CSV` | -| `XLSX` | -| `PDF` | -| `PNG` | - diff --git a/Python/doc/models/type-18-enum.md b/Python/doc/models/type-18-enum.md deleted file mode 100644 index aa9d5da11..000000000 --- a/Python/doc/models/type-18-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 18 Enum - -Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - -## Enumeration - -`Type18Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/Python/doc/models/type-2-enum.md b/Python/doc/models/type-2-enum.md deleted file mode 100644 index b541e8352..000000000 --- a/Python/doc/models/type-2-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 2 Enum - -Type of the metadata objec - -## Enumeration - -`Type2Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/Python/doc/models/type-3-enum.md b/Python/doc/models/type-3-enum.md deleted file mode 100644 index f88874f75..000000000 --- a/Python/doc/models/type-3-enum.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Type 3 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type3Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT_ALL` | -| `DATAOBJECT_WORKSHEET` | -| `DATAOBJECT_TABLE` | -| `DATAOBJECT_USER_DEFINED` | -| `DATAOBJECT_VIEW` | -| `DATAOBJECT_CALENDAR_TABLE` | -| `COLUMN_ALL` | -| `COLUMN_WORKSHEET` | -| `COLUMN_TABLE` | -| `COLUMN_USER_DEFINED` | -| `COLUMN_VIEW` | -| `COLUMN_CALENDAR_TABLE` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USER_GROUP` | - diff --git a/Python/doc/models/type-4-enum.md b/Python/doc/models/type-4-enum.md deleted file mode 100644 index f0b251809..000000000 --- a/Python/doc/models/type-4-enum.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Type 4 Enum - -## Enumeration - -`Type4Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USER_GROUP` | - diff --git a/Python/doc/models/type-5-enum.md b/Python/doc/models/type-5-enum.md deleted file mode 100644 index 119760013..000000000 --- a/Python/doc/models/type-5-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Type 5 Enum - -## Enumeration - -`Type5Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT_ALL` | -| `DATAOBJECT_WORKSHEET` | -| `DATAOBJECT_TABLE` | -| `DATAOBJECT_USER_DEFINED` | -| `DATAOBJECT_VIEW` | -| `DATAOBJECT_CALENDAR_TABLE` | -| `COLUMN_ALL` | -| `COLUMN_WORKSHEET` | -| `COLUMN_TABLE` | -| `COLUMN_USER_DEFINED` | -| `COLUMN_VIEW` | -| `COLUMN_CALENDAR_TABLE` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USER_GROUP` | - diff --git a/Python/doc/models/type-6-enum.md b/Python/doc/models/type-6-enum.md deleted file mode 100644 index b5304ab29..000000000 --- a/Python/doc/models/type-6-enum.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Type 6 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type6Enum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `COLUMN` | -| `JOIN` | -| `CONNECTION` | -| `TAG` | -| `USER` | -| `USER_GROUP` | - diff --git a/Python/doc/models/type-7-enum.md b/Python/doc/models/type-7-enum.md deleted file mode 100644 index 6faa098f0..000000000 --- a/Python/doc/models/type-7-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 7 Enum - -## Enumeration - -`Type7Enum` - -## Fields - -| Name | -| --- | -| `LIVEBOARD` | -| `ANSWER` | -| `DATAOBJECT` | -| `COLUMN` | - diff --git a/Python/doc/models/type-8-enum.md b/Python/doc/models/type-8-enum.md deleted file mode 100644 index 19c74c8aa..000000000 --- a/Python/doc/models/type-8-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Type 8 Enum - -## Enumeration - -`Type8Enum` - -## Fields - -| Name | -| --- | -| `UNKNOWN` | -| `LDAP_USER` | -| `SAML_USER` | -| `OIDC_USER` | -| `LOCAL_USER` | - diff --git a/Python/doc/models/type-9-enum.md b/Python/doc/models/type-9-enum.md deleted file mode 100644 index 416611325..000000000 --- a/Python/doc/models/type-9-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# Type 9 Enum - -Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type9Enum` - -## Fields - -| Name | -| --- | -| `UNKNOWN` | -| `LDAP_USER` | -| `SAML_USER` | -| `OIDC_USER` | -| `LOCAL_USER` | - diff --git a/Python/doc/models/type-enum.md b/Python/doc/models/type-enum.md deleted file mode 100644 index ecf2ffb92..000000000 --- a/Python/doc/models/type-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type Enum - -Type of the metadata object - -## Enumeration - -`TypeEnum` - -## Fields - -| Name | -| --- | -| `ANSWER` | -| `LIVEBOARD` | -| `DATAOBJECT` | -| `CONNECTION` | - diff --git a/Python/doc/models/user-name-and-id-input.md b/Python/doc/models/user-name-and-id-input.md deleted file mode 100644 index 168cd0a8b..000000000 --- a/Python/doc/models/user-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID Input - -## Structure - -`UserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Username of the user | -| `id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/user-name-and-id.md b/Python/doc/models/user-name-and-id.md deleted file mode 100644 index 61b99bff7..000000000 --- a/Python/doc/models/user-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID - -## Structure - -`UserNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Username of the user | -| `id` | `string` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Python/doc/models/user-response.md b/Python/doc/models/user-response.md deleted file mode 100644 index d803d763e..000000000 --- a/Python/doc/models/user-response.md +++ /dev/null @@ -1,83 +0,0 @@ - -# User Response - -## Structure - -`UserResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | Username of the user account | -| `display_name` | `string` | Optional | Display name of the user account | -| `id` | `string` | Optional | GUID of the user account | -| `visibility` | `string` | Optional | Visibility of the user account | -| `mail` | `string` | Optional | Email of the user account | -| `groups` | [`List of GroupNameAndID`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which user account is added | -| `privileges` | `List of string` | Optional | Privileges assigned to user account | -| `orgs` | [`List of OrgType`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | -| `tags` | `List of string` | Optional | Tags assigned to the user | -| `state` | `string` | Optional | Indicates if the user account is active or inactive | -| `notify_on_share` | `bool` | Optional | Indicates if the email should be sent when object is shared with the user | -| `show_walk_me` | `bool` | Optional | Indicates if the walk me should be shown when logging in | -| `analyst_onboarding_complete` | `bool` | Optional | Indicates if the onboarding is completed for the user | -| `first_login` | `int` | Optional | Indicates if the use is logging in for the first time | -| `welcome_email_sent` | `bool` | Optional | Indicates if the welcome email is sent to email associated with the user account | -| `is_deleted` | `bool` | Optional | Indicates if the user account is deleted | -| `is_hidden` | `bool` | Optional | Indicates if the user account is hidden | -| `is_external` | `bool` | Optional | Indicates if the user account is from external system
isDeprecated | -| `is_deprecated` | `bool` | Optional | - | -| `complete` | `bool` | Optional | Indicates if the all the properties of user account is provided | -| `is_super_user` | `bool` | Optional | Indicates if the user account is super user | -| `is_system_principal` | `bool` | Optional | Indicates if the user account is system principal | -| `mtype` | `string` | Optional | Indicates the type of user account | -| `parenttype` | `string` | Optional | Indicates the type of parent object | -| `tenant_id` | `string` | Optional | Tenant id associated with the user account | -| `index_version` | `float` | Optional | - | -| `generation_num` | `float` | Optional | - | -| `created` | `float` | Optional | Date and time when user account was created | -| `modified` | `float` | Optional | Date and time of last modification of user account | -| `author` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modified_by` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID`](../../doc/models/user-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "orgs": null, - "tags": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "firstLogin": null, - "welcomeEmailSent": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSuperUser": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/Python/doc/models/visibility-1-enum.md b/Python/doc/models/visibility-1-enum.md deleted file mode 100644 index d57c13a51..000000000 --- a/Python/doc/models/visibility-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 1 Enum - -Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. - -## Enumeration - -`Visibility1Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NON_SHARABLE` | -| `SHARABLE` | - diff --git a/Python/doc/models/visibility-2-enum.md b/Python/doc/models/visibility-2-enum.md deleted file mode 100644 index cad29dd94..000000000 --- a/Python/doc/models/visibility-2-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 2 Enum - -Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. - -## Enumeration - -`Visibility2Enum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NON_SHARABLE` | -| `SHARABLE` | - diff --git a/Python/doc/models/visibility-enum.md b/Python/doc/models/visibility-enum.md deleted file mode 100644 index abe530ba2..000000000 --- a/Python/doc/models/visibility-enum.md +++ /dev/null @@ -1,15 +0,0 @@ - -# Visibility Enum - -## Enumeration - -`VisibilityEnum` - -## Fields - -| Name | -| --- | -| `DEFAULT` | -| `NON_SHARABLE` | -| `SHARABLE` | - diff --git a/Python/doc/models/viz-type.md b/Python/doc/models/viz-type.md deleted file mode 100644 index c63c14573..000000000 --- a/Python/doc/models/viz-type.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Viz Type - -## Structure - -`VizType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Optional | The name of the visualization | -| `id` | `string` | Optional | The GUID of the visualization | -| `query_sql` | `string` | Optional | SQL query associated with the visualization | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/Python/doc/utility-classes.md b/Python/doc/utility-classes.md deleted file mode 100644 index c09e079b6..000000000 --- a/Python/doc/utility-classes.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Utility Classes Documentation - -## ApiHelper - -A utility class for processing API Calls. Also contains classes for supporting standard datetime formats. - -### Methods - -| Name | Description | -| --- | --- | -| json_deserialize | Deserializes a JSON string to a Python dictionary. | - -### Classes - -| Name | Description | -| --- | --- | -| HttpDateTime | A wrapper for datetime to support HTTP date format. | -| UnixDateTime | A wrapper for datetime to support Unix date format. | -| RFC3339DateTime | A wrapper for datetime to support RFC3339 format. | - diff --git a/Python/requirements.txt b/Python/requirements.txt deleted file mode 100644 index 00aae20ab..000000000 --- a/Python/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -apimatic-core~=0.1.0 -apimatic-core-interfaces~=0.1.0 -apimatic-requests-client-adapter~=0.1.0 -python-dateutil~=2.8.1 -enum34~=1.1, >=1.1.10 diff --git a/Python/setup.py b/Python/setup.py deleted file mode 100644 index 199bb3a31..000000000 --- a/Python/setup.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- - -import sys -from setuptools import setup, find_packages - -if sys.version_info[0] < 3: - with open('README.md', 'r') as fh: - long_description = fh.read() -else: - with open('README.md', 'r', encoding='utf-8') as fh: - long_description = fh.read() - -setup( - name='thoughtspot-rest-api-sdk', - version='1.13.1', - description='Python client library for ThoughtSpot Public REST API', - long_description=long_description, - long_description_content_type="text/markdown", - author='APIMatic SDK Generator', - author_email='support@apimatic.io', - url='https://apimatic.io', - packages=find_packages(), - install_requires=[ - 'apimatic-core~=0.1.0', - 'apimatic-core-interfaces~=0.1.0', - 'apimatic-requests-client-adapter~=0.1.0', - 'python-dateutil~=2.8.1', - 'enum34~=1.1, >=1.1.10' - ], - tests_require=[ - 'pytest>=7.1.3' - ], -) \ No newline at end of file diff --git a/Python/test-requirements.txt b/Python/test-requirements.txt deleted file mode 100644 index f1fbc9439..000000000 --- a/Python/test-requirements.txt +++ /dev/null @@ -1 +0,0 @@ -pytest>=7.1.3 diff --git a/Python/tests/__init__.py b/Python/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Python/tests/controllers/__init__.py b/Python/tests/controllers/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/Python/tests/controllers/controller_test_base.py b/Python/tests/controllers/controller_test_base.py deleted file mode 100644 index 2f11a4f4e..000000000 --- a/Python/tests/controllers/controller_test_base.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import unittest -from tests.http_response_catcher import HttpResponseCatcher -from thoughtspotpublicrestapi.configuration import Configuration -from thoughtspotpublicrestapi.configuration import Environment -from thoughtspotpublicrestapi.thoughtspotpublicrestapi_client import ThoughtspotpublicrestapiClient - - -class ControllerTestBase(unittest.TestCase): - - """All test classes inherit from this base class. It abstracts out - common functionality and configuration variables set up.""" - - @classmethod - def setUpClass(cls): - """Class method called once before running tests in a test class.""" - cls.request_timeout = 30 - cls.assert_precision = 0.01 - cls.config = ControllerTestBase.create_configuration() - cls.client = ThoughtspotpublicrestapiClient(config=cls.config) - cls.auth_managers = cls.client.auth_managers - - @staticmethod - def create_configuration(): - return Configuration(http_call_back=HttpResponseCatcher()) diff --git a/Python/tests/controllers/test_group_controller.py b/Python/tests/controllers/test_group_controller.py deleted file mode 100644 index 4ca19ecd3..000000000 --- a/Python/tests/controllers/test_group_controller.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import json -import dateutil.parser - -from tests.controllers.controller_test_base import ControllerTestBase -from apimatic_core.utilities.comparison_helper import ComparisonHelper -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class GroupControllerTests(ControllerTestBase): - - @classmethod - def setUpClass(cls): - super(GroupControllerTests, cls).setUpClass() - cls.controller = cls.client.group - cls.response_catcher = cls.controller.http_call_back - - # To get the details of a specific group by name or id, use this endpoint. - #At Least one value needed. When both are given id will be considered to fetch user information. - def test_restapi_v_2__get_group(self): - # Parameters for the API call - name = None - id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__get_group(name, id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - - # To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information. - def test_restapi_v_2__delete_group(self): - # Parameters for the API call - name = None - id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__delete_group(name, id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - diff --git a/Python/tests/controllers/test_metadata_controller.py b/Python/tests/controllers/test_metadata_controller.py deleted file mode 100644 index 28f206149..000000000 --- a/Python/tests/controllers/test_metadata_controller.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import json -import dateutil.parser - -from tests.controllers.controller_test_base import ControllerTestBase -from apimatic_core.utilities.comparison_helper import ComparisonHelper -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class MetadataControllerTests(ControllerTestBase): - - @classmethod - def setUpClass(cls): - super(MetadataControllerTests, cls).setUpClass() - cls.controller = cls.client.metadata - cls.response_catcher = cls.controller.http_call_back - - # To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - def test_restapi_v_2__get_tag(self): - # Parameters for the API call - name = None - id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__get_tag(name, id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - - # To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - def test_restapi_v_2__get_home_liveboard(self): - # Parameters for the API call - user_name = None - user_id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__get_home_liveboard(user_name, user_id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - - # To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - def test_restapi_v_2__delete_tag(self): - # Parameters for the API call - name = None - id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__delete_tag(name, id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - diff --git a/Python/tests/controllers/test_org_controller.py b/Python/tests/controllers/test_org_controller.py deleted file mode 100644 index 588a140ff..000000000 --- a/Python/tests/controllers/test_org_controller.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import json -import dateutil.parser - -from tests.controllers.controller_test_base import ControllerTestBase -from apimatic_core.utilities.comparison_helper import ComparisonHelper -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class OrgControllerTests(ControllerTestBase): - - @classmethod - def setUpClass(cls): - super(OrgControllerTests, cls).setUpClass() - cls.controller = cls.client.org - cls.response_catcher = cls.controller.http_call_back - - # To get the details of a specific organization by name or id, use this endpoint. - # - #At least one value needed. When both are given,then id will be considered to fetch organization information. - # - #Requires Administration privilege for tenant. - def test_restapi_v_2__get_org(self): - # Parameters for the API call - name = None - id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__get_org(name, id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - - # To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. - # - #At least one value is needed. When both id and name are given, then id will be considered. - # - #Requires Administration privilege for tenant. - def test_restapi_v_2__delete_org(self): - # Parameters for the API call - name = None - id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__delete_org(name, id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - diff --git a/Python/tests/controllers/test_security_controller.py b/Python/tests/controllers/test_security_controller.py deleted file mode 100644 index 0b23337d3..000000000 --- a/Python/tests/controllers/test_security_controller.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import json -import dateutil.parser - -from tests.controllers.controller_test_base import ControllerTestBase -from apimatic_core.utilities.comparison_helper import ComparisonHelper -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class SecurityControllerTests(ControllerTestBase): - - @classmethod - def setUpClass(cls): - super(SecurityControllerTests, cls).setUpClass() - cls.controller = cls.client.security - cls.response_catcher = cls.controller.http_call_back - - # Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. - # - #Requires administration privilege - def test_restapi_v_2__get_permission_for_principal(self): - # Parameters for the API call - id = None - name = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__get_permission_for_principal(id, name) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - diff --git a/Python/tests/controllers/test_session_controller.py b/Python/tests/controllers/test_session_controller.py deleted file mode 100644 index 6151c2cdb..000000000 --- a/Python/tests/controllers/test_session_controller.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import json -import dateutil.parser - -from tests.controllers.controller_test_base import ControllerTestBase -from apimatic_core.utilities.comparison_helper import ComparisonHelper -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class SessionControllerTests(ControllerTestBase): - - @classmethod - def setUpClass(cls): - super(SessionControllerTests, cls).setUpClass() - cls.controller = cls.client.session - cls.response_catcher = cls.controller.http_call_back - - # You can programmatically create login session for a user in ThoughtSpot using this endpoint. - # - #You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. - # - #userName and password input is given precedence over "Authorization" header, when both are included in the request. - def test_restapi_v_2__login(self): - # Parameters for the API call - user_name = None - password = None - remember_me = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__login(user_name, password, remember_me) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - diff --git a/Python/tests/controllers/test_user_controller.py b/Python/tests/controllers/test_user_controller.py deleted file mode 100644 index bafe26460..000000000 --- a/Python/tests/controllers/test_user_controller.py +++ /dev/null @@ -1,65 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import json -import dateutil.parser - -from tests.controllers.controller_test_base import ControllerTestBase -from apimatic_core.utilities.comparison_helper import ComparisonHelper -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class UserControllerTests(ControllerTestBase): - - @classmethod - def setUpClass(cls): - super(UserControllerTests, cls).setUpClass() - cls.controller = cls.client.user - cls.response_catcher = cls.controller.http_call_back - - # To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information - def test_restapi_v_2__get_user(self): - # Parameters for the API call - name = None - id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__get_user(name, id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - - # To remove a user from the ThoughtSpot system, use this endpoint. - #At Least one value needed. When both are given user id will be considered to delete user. - def test_restapi_v_2__delete_user(self): - # Parameters for the API call - name = None - id = None - org_id = None - - # Perform the API call through the SDK function - result = self.controller.restapi_v_2__delete_user(name, id, org_id) - - # Test response code - assert self.response_catcher.response.status_code == 200 - - # Test headers - expected_headers = {} - expected_headers['content-type'] = 'application/json' - - assert ComparisonHelper.match_headers(expected_headers, self.response_catcher.response.headers) - - diff --git a/Python/tests/http_response_catcher.py b/Python/tests/http_response_catcher.py deleted file mode 100644 index c8b03a1c0..000000000 --- a/Python/tests/http_response_catcher.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.http.http_call_back import HttpCallBack - -class HttpResponseCatcher(HttpCallBack): - - """A class used for catching the HttpResponse object from controllers. - - This class inherits HttpCallBack and implements the on_after_response - method to catch the HttpResponse object as returned by the HttpClient - after a request is executed. - - """ - def on_before_request(self, request): - pass - - def on_after_response(self, response): - self.response = response - - - diff --git a/Python/thoughtspotpublicrestapi/__init__.py b/Python/thoughtspotpublicrestapi/__init__.py deleted file mode 100644 index e80695b15..000000000 --- a/Python/thoughtspotpublicrestapi/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -__all__ = [ - 'api_helper', - 'configuration', - 'controllers', - 'exceptions', - 'http', - 'models', - 'thoughtspotpublicrestapi_client', -] diff --git a/Python/thoughtspotpublicrestapi/api_helper.py b/Python/thoughtspotpublicrestapi/api_helper.py deleted file mode 100644 index 8266735e9..000000000 --- a/Python/thoughtspotpublicrestapi/api_helper.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core.utilities.api_helper import ApiHelper - - -class APIHelper(ApiHelper): - - """A Helper Class for various functions associated with API Calls. - - This class contains static methods for operations that need to be - performed during API requests. All of the methods inside this class are - static methods, there is no need to ever initialise an instance of this - class. - - """ \ No newline at end of file diff --git a/Python/thoughtspotpublicrestapi/configuration.py b/Python/thoughtspotpublicrestapi/configuration.py deleted file mode 100644 index c46eb170d..000000000 --- a/Python/thoughtspotpublicrestapi/configuration.py +++ /dev/null @@ -1,134 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from enum import Enum -from thoughtspotpublicrestapi.api_helper import APIHelper -from apimatic_core.http.configurations.http_client_configuration import HttpClientConfiguration -from apimatic_requests_client_adapter.requests_client import RequestsClient - - -class Environment(Enum): - """An enum for SDK environments""" - PRODUCTION = 0 - - -class Server(Enum): - """An enum for API servers""" - DEFAULT = 0 - - -class Configuration(HttpClientConfiguration): - """A class used for configuring the SDK by a user. - """ - - @property - def environment(self): - return self._environment - - @property - def base_url(self): - return self._base_url - - @property - def access_token(self): - return self._access_token - - @property - def skip_ssl_cert_verification(self): - return self._skip_ssl_cert_verification - - def __init__( - self, http_client_instance=None, override_http_client_configuration=False, http_call_back=None, - timeout=60, max_retries=0, backoff_factor=2, - retry_statuses=[408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524], - retry_methods=['GET', 'PUT', 'GET', 'PUT'], environment=Environment.PRODUCTION, base_url='https://localhost:443', - access_token='', skip_ssl_cert_verification=False - ): - super().__init__(http_client_instance, override_http_client_configuration, http_call_back, timeout, max_retries, - backoff_factor, retry_statuses, retry_methods) - # Current API environment - self._environment = environment - - # base_url value - self._base_url = base_url - - # The OAuth 2.0 Access Token to use for API requests. - self._access_token = access_token - - # Set to true to allow skipping ssl certificate verification - self._skip_ssl_cert_verification = skip_ssl_cert_verification - - # The Http Client to use for making requests. - super().set_http_client(self.create_http_client()) - - def clone_with(self, http_client_instance=None, - override_http_client_configuration=None, http_call_back=None, - timeout=None, max_retries=None, backoff_factor=None, - retry_statuses=None, retry_methods=None, environment=None, - base_url=None, access_token=None, - skip_ssl_cert_verification=None): - http_client_instance = http_client_instance or super().http_client_instance - override_http_client_configuration = override_http_client_configuration or super().override_http_client_configuration - http_call_back = http_call_back or super().http_callback - timeout = timeout or super().timeout - max_retries = max_retries or super().max_retries - backoff_factor = backoff_factor or super().backoff_factor - retry_statuses = retry_statuses or super().retry_statuses - retry_methods = retry_methods or super().retry_methods - environment = environment or self.environment - base_url = base_url or self.base_url - access_token = access_token or self.access_token - skip_ssl_cert_verification = skip_ssl_cert_verification or self.skip_ssl_cert_verification - return Configuration( - http_client_instance=http_client_instance, - override_http_client_configuration=override_http_client_configuration, - http_call_back=http_call_back, timeout=timeout, - max_retries=max_retries, backoff_factor=backoff_factor, - retry_statuses=retry_statuses, retry_methods=retry_methods, - environment=environment, base_url=base_url, access_token=access_token, - skip_ssl_cert_verification=skip_ssl_cert_verification - ) - - def create_http_client(self): - return RequestsClient( - timeout=super().timeout, max_retries=super().max_retries, - backoff_factor=super().backoff_factor, retry_statuses=super().retry_statuses, - retry_methods=super().retry_methods, - http_client_instance=super().http_client_instance, - override_http_client_configuration=super().override_http_client_configuration, - response_factory=super().http_response_factory, - verify=not self.skip_ssl_cert_verification - ) - - # All the environments the SDK can run in - environments = { - Environment.PRODUCTION: { - Server.DEFAULT: '{base-url}' - } - } - - def get_base_uri(self, server=Server.DEFAULT): - """Generates the appropriate base URI for the environment and the - server. - - Args: - server (Configuration.Server): The server enum for which the base - URI is required. - - Returns: - String: The base URI. - - """ - parameters = { - "base-url": {'value': self.base_url, 'encode': False}, - } - - return APIHelper.append_url_with_template_parameters( - self.environments[self.environment][server], parameters - ) diff --git a/Python/thoughtspotpublicrestapi/controllers/__init__.py b/Python/thoughtspotpublicrestapi/controllers/__init__.py deleted file mode 100644 index 065f9b1af..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -__all__ = [ - 'base_controller', - 'user_controller', - 'group_controller', - 'metadata_controller', - 'database_controller', - 'connection_controller', - 'data_controller', - 'logs_controller', - 'custom_actions_controller', - 'security_controller', - 'org_controller', - 'session_controller', - 'admin_controller', - 'report_controller', - 'materialization_controller', -] diff --git a/Python/thoughtspotpublicrestapi/controllers/admin_controller.py b/Python/thoughtspotpublicrestapi/controllers/admin_controller.py deleted file mode 100644 index 83498895d..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/admin_controller.py +++ /dev/null @@ -1,290 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.adminsync_principal_response import AdminsyncPrincipalResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class AdminController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(AdminController, self).__init__(config) - - def restapi_v_2__update_cluster_config(self, - body): - """Does a PUT request to /tspublic/rest/v2/admin/configuration/update. - - To update the Thoughtspot cluster configuration, use this endpoint. - - Args: - body (TspublicRestV2AdminConfigurationUpdateRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/admin/configuration/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__reset_user_password(self, - body): - """Does a PUT request to /tspublic/rest/v2/admin/resetpassword. - - To reset the password of a ThoughtSpot user account, use this - endpoint. - It is mandatory to use Authorization header with token of a user with - admin access to successfully run this endpoint. - At least one of User Id or username is mandatory. When both are given, - then user id will be considered. - - Args: - body (TspublicRestV2AdminResetpasswordRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/admin/resetpassword') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__sync_principal(self, - body): - """Does a PUT request to /tspublic/rest/v2/admin/syncprincipal. - - To programmatically synchronize user accounts and user groups from - external system with ThoughtSpot, use this endpoint. - The payload takes principals containing all users and groups present - in the external system. - The users and user groups in Thoughtspot get updated for any matching - inputs. - Any user and user group present in the input, but not present in the - cluster, gets created in cluster. - n You can optionally choose to delete the user and groups from the - cluster, that are not present in the input. - - Args: - body (TspublicRestV2AdminSyncprincipalRequest): TODO: type - description here. - - Returns: - AdminsyncPrincipalResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/admin/syncprincipal') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(AdminsyncPrincipalResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__change_author_of_objects(self, - body): - """Does a PUT request to /tspublic/rest/v2/admin/changeauthor. - - To programmatically change the owner of one or several objects from - one user account to another, use this endpoint. - You might want to transfer ownership of objects owned by a user to - another active user, when the account is removed from the ThoughtSpot - application. - - Args: - body (TspublicRestV2AdminChangeauthorRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/admin/changeauthor') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__assign_author_to_objects(self, - body): - """Does a PUT request to /tspublic/rest/v2/admin/assignauthor. - - To programmatically assign an author to one or several objects, use - this endpoint. - Provide either user name or id as input. When both are given user id - will be considered. - Requires administration privilege. - - Args: - body (TspublicRestV2AdminAssignauthorRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/admin/assignauthor') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__force_logout_users(self, - body): - """Does a POST request to /tspublic/rest/v2/admin/forcelogout. - - To logout one or more users from logged in session, use this endpoint. - If no input is provided then all logged in users are force logged out. - Requires administration privilege - - Args: - body (TspublicRestV2AdminForcelogoutRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/admin/forcelogout') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/base_controller.py b/Python/thoughtspotpublicrestapi/controllers/base_controller.py deleted file mode 100644 index 85482dc6c..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/base_controller.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -import platform -from apimatic_core.api_call import ApiCall -from apimatic_core.types.error_case import ErrorCase -from thoughtspotpublicrestapi.exceptions.api_exception import APIException - - -class BaseController(object): - - """All controllers inherit from this base class. - - Attributes: - config (Configuration): The HttpClient which a specific controller - instance will use. By default all the controller objects share - the same HttpClient. A user can use his own custom HttpClient - as well. - http_call_back (HttpCallBack): An object which holds call back - methods to be called before and after the execution of an HttpRequest. - new_api_call_builder (APICall): Returns the API Call builder instance. - auth_managers (dict): A dictionary which holds the instances of authentication managers. - - """ - - @staticmethod - def user_agent(): - return 'RestAPI V2 SDK' - - @staticmethod - def user_agent_parameters(): - return { - } - - @staticmethod - def global_errors(): - return{ - 'default': ErrorCase().description('HTTP response not OK.').exception_type(APIException), - } - - def __init__(self, config): - self._global_config = config - self._config = self._global_config.get_http_client_configuration() - self._http_call_back = self.config.http_callback - self.api_call = ApiCall(config) - - @property - def config(self): - return self._config - - @property - def http_call_back(self): - return self._http_call_back - - @property - def new_api_call_builder(self): - return self.api_call.new_builder - - @property - def auth_managers(self): - return self._global_config.get_auth_managers() diff --git a/Python/thoughtspotpublicrestapi/controllers/connection_controller.py b/Python/thoughtspotpublicrestapi/controllers/connection_controller.py deleted file mode 100644 index 8ce97335c..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/connection_controller.py +++ /dev/null @@ -1,463 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.types.array_serialization_format import SerializationFormats -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.connection_response import ConnectionResponse -from thoughtspotpublicrestapi.models.create_connection_response import CreateConnectionResponse -from thoughtspotpublicrestapi.models.connection_table_response import ConnectionTableResponse -from thoughtspotpublicrestapi.models.connection_table_columns_response import ConnectionTableColumnsResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class ConnectionController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(ConnectionController, self).__init__(config) - - def restapi_v_2__get_connection(self, - id): - """Does a GET request to /tspublic/rest/v2/connection. - - To get the details of a specific connection use this endpoint - - Args: - id (string): The GUID of the connection to query - - Returns: - ConnectionResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(ConnectionResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_connection_database(self, - id): - """Does a GET request to /tspublic/rest/v2/connection/database. - - To get the list of databases for a connection, use this endpoint. - The response will include databases from the data platform - corresponding to the connection id provided. - - Args: - id (string): The GUID of the connection - - Returns: - list of string: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/database') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__create_connection(self, - body): - """Does a POST request to /tspublic/rest/v2/connection/create. - - To programmatically create a connection in the ThoughtSpot system use - this API endpoint. - Using this API, you can create a connection and assign groups. - To create a connection, you require admin connection privileges. - All connections created in the ThoughtSpot system are added to - ALL_GROUP - - Args: - body (TspublicRestV2ConnectionCreateRequest): TODO: type - description here. - - Returns: - CreateConnectionResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/create') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(CreateConnectionResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__update_connection(self, - body): - """Does a PUT request to /tspublic/rest/v2/connection/update. - - You can use this endpoint to programmatically modify an existing - connection - To modify a connection, you require admin connection privileges. - At least one of Connection Id or connectionname is mandatory. When - both are given, then connection id will be considered and - connectionname will be updated - - Args: - body (TspublicRestV2ConnectionUpdateRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_connection(self, - id): - """Does a DELETE request to /tspublic/rest/v2/connection/delete. - - To remove a connection from the ThoughtSpot system, use this - endpoint. - - Args: - id (list of string): A JSON array of GUIDs of the connection - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .array_serialization_format(SerializationFormats.PLAIN) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__add_table_to_connection(self, - body): - """Does a PUT request to /tspublic/rest/v2/connection/addtable. - - To programmatically add table to an existing connection use this - endpoint. - When you assign groups to a connection, the connection inherits the - privileges assigned to those groups. - At least one of Connection Id or connectionname is mandatory. When - both are given, then connection id will be considered. - - Args: - body (TspublicRestV2ConnectionAddtableRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/addtable') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__remove_table_from_connection(self, - body): - """Does a PUT request to /tspublic/rest/v2/connection/removetable. - - To programmatically remove a table from a connection use API - endpoint. - The API removes only the connection association. It does not delete - the connection or group from the Thoughtspot system. - At least one of id or name of connection is required. When both are - given connection id will be considered. - - Args: - body (TspublicRestV2ConnectionRemovetableRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/removetable') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_connection(self, - body): - """Does a POST request to /tspublic/rest/v2/connection/search. - - To get the details of a specific connection or all connections in the - ThoughtSpot system use this end point. - - Args: - body (TspublicRestV2ConnectionSearchRequest): TODO: type - description here. - - Returns: - list of ConnectionResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(ConnectionResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_connection_tables(self, - body): - """Does a POST request to /tspublic/rest/v2/connection/table. - - To get the details of tables from a connection, use this endpoint. - You can get the details of tables in the data platform for the - connection id provided. - - Args: - body (TspublicRestV2ConnectionTableRequest): TODO: type - description here. - - Returns: - ConnectionTableResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/table') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(ConnectionTableResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_connection_table_columns(self, - body): - """Does a POST request to /tspublic/rest/v2/connection/tablecoloumn. - - To get the details of columns in a table associated to a connection, - use this endpoint. - You can get the columns of any table available in the data platform - for the connection id provided. - - Args: - body (TspublicRestV2ConnectionTablecoloumnRequest): TODO: type - description here. - - Returns: - ConnectionTableColumnsResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/connection/tablecoloumn') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(ConnectionTableColumnsResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/custom_actions_controller.py b/Python/thoughtspotpublicrestapi/controllers/custom_actions_controller.py deleted file mode 100644 index d2c647c83..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/custom_actions_controller.py +++ /dev/null @@ -1,370 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class CustomActionsController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(CustomActionsController, self).__init__(config) - - def restapi_v_2__get_custom_action(self, - id): - """Does a GET request to /tspublic/rest/v2/customaction. - - To get details of a specific custom action configured in the - ThoughtSpot system, use this endpoint - - Args: - id (string): GUID of the custom action - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customaction') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_custom_action(self, - body): - """Does a POST request to /tspublic/rest/v2/customaction/search. - - To search custom actions available on a ThoughtSpot instance, use this - endpoint - - Args: - body (TspublicRestV2CustomactionSearchRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customaction/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_custom_action_association(self, - id): - """Does a GET request to /tspublic/rest/v2/customaction/association. - - ThoughtSpot supports associating custom actions to Liveboards, - answers, and worksheets. To get the details of the ThoughtSpot objects - associated with a custom action, use this endpoint. - - Args: - id (string): GUID of the custom action - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customaction/association') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__create_custom_action(self, - body): - """Does a POST request to /tspublic/rest/v2/customaction/create. - - To programmatically create custom actions on ThoughtSpot clusters that - support embedding configuration, use this endpoint - - Args: - body (TspublicRestV2CustomactionCreateRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customaction/create') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__update_custom_action(self, - body): - """Does a PUT request to /tspublic/rest/v2/customaction/update. - - To programmatically edit an existing custom action, use this endpoint - - Args: - body (TspublicRestV2CustomactionUpdateRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customaction/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_custom_action(self, - id): - """Does a DELETE request to /tspublic/rest/v2/customaction/delete. - - To programmatically delete a custom action, use this endpoint - - Args: - id (string): GUID of the custom action - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customaction/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__update_custom_action_association(self, - body): - """Does a PUT request to /tspublic/rest/v2/customaction/association/update. - - To programmatically associate a custom action to a ThoughtSpot object, - use this endpoint - - Args: - body (TspublicRestV2CustomactionAssociationUpdateRequest): TODO: - type description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customaction/association/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_custom_action_association(self, - id, - association): - """Does a DELETE request to /tspublic/rest/v2/customactions/association/delete. - - To remove custom action associations to ThoughtSpot objects, use this - endpoint - - Args: - id (string): GUID of the custom action - association (string): A JSON map of the attributes with - association of the action to ThoughtSpot object ID Example: - {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My - worksheet - action","version":"v2","type":"URL","detail":{"link":"https://u - npkg.com","function":"my-worksheet-action","authSelect":"NONE", - "authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue": - "","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSH - EET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true", - "context":"PRIMARY"}}},"context":"NONE","availability":[ - ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/customactions/association/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .query_param(Parameter() - .key('association') - .value(association) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/data_controller.py b/Python/thoughtspotpublicrestapi/controllers/data_controller.py deleted file mode 100644 index e350eaf1b..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/data_controller.py +++ /dev/null @@ -1,246 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.types.array_serialization_format import SerializationFormats -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.answer_query_response import AnswerQueryResponse -from thoughtspotpublicrestapi.models.liveboard_query_response import LiveboardQueryResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class DataController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(DataController, self).__init__(config) - - def restapi_v_2__search_query_data(self, - body): - """Does a POST request to /tspublic/rest/v2/data/search. - - To programmatically retrieve data from ThoughtSpot using search query - string, use this endpoint - - Args: - body (TspublicRestV2DataSearchRequest): TODO: type description - here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/data/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__liveboard_data(self, - body): - """Does a POST request to /tspublic/rest/v2/data/liveboard. - - To retrieve data related to a Liveboard or visualization from the - ThoughtSpot system, you can use this endpoint - - Args: - body (TspublicRestV2DataLiveboardRequest): TODO: type description - here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/data/liveboard') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__answer_data(self, - body): - """Does a POST request to /tspublic/rest/v2/data/answer. - - To retrieve data related to a Answer from the ThoughtSpot system, you - can use this endpoint - - Args: - body (TspublicRestV2DataAnswerRequest): TODO: type description - here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/data/answer') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__answer_query_sql(self, - id): - """Does a GET request to /tspublic/rest/v2/data/answer/querysql. - - To retrieve the query SQL related to an Answer that is run on the data - platform, you can use this endpoint - - Args: - id (string): The GUID of the Answer - - Returns: - AnswerQueryResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/data/answer/querysql') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(AnswerQueryResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__liveboard_query_sql(self, - id, - viz_id=None): - """Does a GET request to /tspublic/rest/v2/data/liveboard/querysql. - - To retrieve the query SQL related to a Visualization in a Liveboard - that is run on the data platform, you can use this endpoint - - Args: - id (string): The GUID of the Answer - viz_id (list of string, optional): A JSON array of GUIDs of the - visualizations in the Liveboard. - - Returns: - LiveboardQueryResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/data/liveboard/querysql') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .query_param(Parameter() - .key('vizId') - .value(viz_id)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .array_serialization_format(SerializationFormats.PLAIN) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(LiveboardQueryResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/database_controller.py b/Python/thoughtspotpublicrestapi/controllers/database_controller.py deleted file mode 100644 index ad9662353..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/database_controller.py +++ /dev/null @@ -1,249 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.create_table_response import CreateTableResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class DatabaseController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(DatabaseController, self).__init__(config) - - def restapi_v_2__get_schemas(self, - database): - """Does a GET request to /tspublic/rest/v2/database/schema. - - To list all the schemas in a database in Falcon, use this endpoint. - - Args: - database (string): Name of the Falcon database - - Returns: - list of string: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/database/schema') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('database') - .value(database) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_tables(self, - database, - schema): - """Does a GET request to /tspublic/rest/v2/database/table. - - To list all the tables in a schema of a database in Falcon, use this - endpoint. - - Args: - database (string): Name of the Falcon database - schema (string): Name of the schema in Falcon database - - Returns: - list of string: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/database/table') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('database') - .value(database) - .is_required(True)) - .query_param(Parameter() - .key('schema') - .value(schema) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_table_details(self, - database, - table, - schema=None): - """Does a GET request to /tspublic/rest/v2/database/table/detail. - - Note: This endpoint is applicable only for on-prem deployments. - To provide details of a table in a schema of a database in Falcon, use - this endpoint. - - Args: - database (string): Name of the Falcon database - table (string): Name of the table in Falcon database - schema (string, optional): Name of the schema in Falcon database - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/database/table/detail') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('database') - .value(database) - .is_required(True)) - .query_param(Parameter() - .key('table') - .value(table) - .is_required(True)) - .query_param(Parameter() - .key('schema') - .value(schema)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__create_table(self, - body): - """Does a POST request to /tspublic/rest/v2/database/table/create. - - To create a table in Falcon, use this endpoint. - - Args: - body (TspublicRestV2DatabaseTableCreateRequest): TODO: type - description here. - - Returns: - CreateTableResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/database/table/create') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(CreateTableResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__run_query(self, - body): - """Does a POST request to /tspublic/rest/v2/database/table/runquery. - - To run a TQL statement in Falcon, use this endpoint. You can run only - following type of statements - Table DDL alter and Table rows update - and delete. - - Args: - body (TspublicRestV2DatabaseTableRunqueryRequest): TODO: type - description here. - - Returns: - list of object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/database/table/runquery') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/group_controller.py b/Python/thoughtspotpublicrestapi/controllers/group_controller.py deleted file mode 100644 index 733ae495e..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/group_controller.py +++ /dev/null @@ -1,508 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.group_response import GroupResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class GroupController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(GroupController, self).__init__(config) - - def restapi_v_2__get_group(self, - name=None, - id=None): - """Does a GET request to /tspublic/rest/v2/group. - - To get the details of a specific group by name or id, use this - endpoint. - At Least one value needed. When both are given id will be considered - to fetch user information. - - Args: - name (string, optional): Name of the group - id (string, optional): The GUID of the group to query. - - Returns: - GroupResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(GroupResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__create_group(self, - body): - """Does a POST request to /tspublic/rest/v2/group/create. - - To programmatically create a group in the ThoughtSpot system, use this - API endpoint. Using this API, you can create a group and assign - privileges and users. For ease of user management and access control, - ThoughtSpot administrators can create groups and assign privileges to - these groups. The privileges determine the actions that the users - belonging to a group are allowed to do. ThoughtSpot also has a default - group called ALL_GROUP. When you create new group in ThoughtSpot, they - are automatically added to ALL_GROUP. You cannot delete the ALL_GROUP - or remove members from it. - - Args: - body (TspublicRestV2GroupCreateRequest): TODO: type description - here. - - Returns: - GroupResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/create') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(GroupResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__update_group(self, - body): - """Does a PUT request to /tspublic/rest/v2/group/update. - - You can use this endpoint to programmatically modify an existing user - account. - To modify a user, you require admin user privileges. - At least one of User Id or username is mandatory. When both are given, - then user id will be considered and username will be updated - - Args: - body (TspublicRestV2GroupUpdateRequest): TODO: type description - here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_group(self, - name=None, - id=None): - """Does a DELETE request to /tspublic/rest/v2/group/delete. - - To remove a group from the ThoughtSpot system, send a DELETE request - to this endpoint. At Least one value needed. When both are given user - id will be considered to fetch user information. - - Args: - name (string, optional): Name of the group. - id (string, optional): The GUID of the group - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__add_privileges_to_group(self, - body): - """Does a PUT request to /tspublic/rest/v2/group/addprivilege. - - To programmatically add privileges to an existing group, use API - endpoint. - When you assign privileges to a group, all the users under to this - group inherits the privileges assigned to that group. - At least one of id or name of group is required. When both are given - user id will be considered. - - Args: - body (TspublicRestV2GroupAddprivilegeRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/addprivilege') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__remove_privileges_from_group(self, - body): - """Does a PUT request to /tspublic/rest/v2/group/removeprivilege. - - To programmatically remove privileges from a group, use API endpoint. - The API removes only the privilege association. It does not delete the - privilege or group from the Thoughtspot system. At least one of id or - name of group is required. When both are given user id will be - considered. - - Args: - body (TspublicRestV2GroupRemoveprivilegeRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/removeprivilege') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__add_users_to_group(self, - body): - """Does a PUT request to /tspublic/rest/v2/group/adduser. - - To programmatically add existing ThoughtSpot users to a group, use - this API endpoint. When you assign users to a group, the users - inherits the privileges assigned to that group. At least one of id or - name of the group is required. When both are given user id will be - considered. - - Args: - body (TspublicRestV2GroupAdduserRequest): TODO: type description - here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/adduser') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__remove_users_from_group(self, - body): - """Does a PUT request to /tspublic/rest/v2/group/removeuser. - - To programmatically remove users from a group, use API endpoint.The - API removes only the user association. It does not delete the users or - group from the Thoughtspot system. At least one of id or name of group - is required. When both are given user id will be considered. - - Args: - body (TspublicRestV2GroupRemoveuserRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/removeuser') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__add_groups_to_group(self, - body): - """Does a PUT request to /tspublic/rest/v2/group/addgroup. - - To programmatically add existing groups to a group, use API endpoint. - When you assign groups to a group, the group inherits the privileges - assigned to those groups. At least one of id or name of group is - required. When both are given user id will be considered. - - Args: - body (TspublicRestV2GroupAddgroupRequest): TODO: type description - here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/addgroup') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__remove_groups_from_group(self, - body): - """Does a PUT request to /tspublic/rest/v2/group/removegroup. - - To programmatically remove groups from a group, use API endpoint.The - API removes only the group association. It does not delete the group - from the Thoughtspot system. At least one of id or name of group is - required. When both are given user id will be considered. - - Args: - body (TspublicRestV2GroupRemovegroupRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/removegroup') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_groups(self, - body): - """Does a POST request to /tspublic/rest/v2/group/search. - - To get the details of a specific group account or all groups in the - ThoughtSpot system, use this end point. - - Args: - body (TspublicRestV2GroupSearchRequest): TODO: type description - here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/group/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/logs_controller.py b/Python/thoughtspotpublicrestapi/controllers/logs_controller.py deleted file mode 100644 index 6a564565b..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/logs_controller.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.logs_response import LogsResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class LogsController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(LogsController, self).__init__(config) - - def restapi_v_2__get_log_events(self, - topic, - from_epoch=None, - to_epoch=None): - """Does a GET request to /tspublic/rest/v2/logs/events. - - Note: This endpoint is applicable only for SAAS deployments. - The ThoughtSpot log streaming service API allows you to - programmatically get a security audit event log from the ThoughtSpot - system. - To use this API, make sure you have admin user privileges. - ThoughtSpot cloud deployments allow you to collect security audit - events and send them to your Security information and event management - (SIEM) application in real-time. - These events can help your security operations personnel to detect - potential security threats or compromised user accounts in your - organization. - - Args: - topic (TopicEnum): Type of the log - from_epoch (string, optional): The EPOCH time in milliseconds to - set the start time for streaming logs. Example: To set the - timestamp as June 1, 2021 8 am, specify 1622534400000. - to_epoch (string, optional): The EPOCH time in milliseconds to set - the end time for streaming logs. Example: To set the - timestamp as July 1, 2021, 8 am, specify 1625126400000. - - Returns: - LogsResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/logs/events') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('topic') - .value(topic) - .is_required(True)) - .query_param(Parameter() - .key('fromEpoch') - .value(from_epoch)) - .query_param(Parameter() - .key('toEpoch') - .value(to_epoch)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(LogsResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/materialization_controller.py b/Python/thoughtspotpublicrestapi/controllers/materialization_controller.py deleted file mode 100644 index 81392fd25..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/materialization_controller.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class MaterializationController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(MaterializationController, self).__init__(config) - - def restapi_v_2__refresh_materialized_view(self, - body): - """Does a PUT request to /tspublic/rest/v2/materialization/refreshview. - - Use this endpoint to refresh data in the materialized view by running - the query associated with it - - Args: - body (TspublicRestV2MaterializationRefreshviewRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/materialization/refreshview') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/metadata_controller.py b/Python/thoughtspotpublicrestapi/controllers/metadata_controller.py deleted file mode 100644 index e9d0e6078..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/metadata_controller.py +++ /dev/null @@ -1,899 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.types.array_serialization_format import SerializationFormats -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.metadata_tag_response import MetadataTagResponse -from thoughtspotpublicrestapi.models.home_liveboard_response import HomeLiveboardResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class MetadataController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(MetadataController, self).__init__(config) - - def restapi_v_2__get_tag(self, - name=None, - id=None): - """Does a GET request to /tspublic/rest/v2/metadata/tag. - - To get details of a specific tag, use this endpoint. At least one of - id or name of tag is required. When both are given, then id will be - considered. - - Args: - name (string, optional): Name of the tag - id (string, optional): The GUID of the tag - - Returns: - MetadataTagResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tag') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(MetadataTagResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_home_liveboard(self, - user_name=None, - user_id=None): - """Does a GET request to /tspublic/rest/v2/metadata/homeliveboard. - - To get the name and id of liveboard that is set as a home liveboard - for a user, use this endpoint. At least one of user id or username is - required. When both are given, then id will be considered. - - Args: - user_name (string, optional): Name of the tag - user_id (string, optional): The GUID of the tag - - Returns: - HomeLiveboardResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/homeliveboard') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('userName') - .value(user_name)) - .query_param(Parameter() - .key('userId') - .value(user_id)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(HomeLiveboardResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_object_header(self, - body): - """Does a POST request to /tspublic/rest/v2/metadata/header/search. - - To get header details for metadata objects, use this endpoint. You can - provide as input selective fields to get the data for. - - Args: - body (TspublicRestV2MetadataHeaderSearchRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/header/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_object_visualization_header(self, - id): - """Does a GET request to /tspublic/rest/v2/metadata/vizheader. - - Use this endpoint to get header details of visualization charts for a - given liveboard or answer. At least one of id or name of liveboard or - answer is required. When both are given, then id will be considered. - - Args: - id (string): The GUID of the liveboard or answer - - Returns: - list of object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/vizheader') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_object_detail(self, - mtype, - id): - """Does a GET request to /tspublic/rest/v2/metadata/detail. - - Use this endpoint to get full details of metadata objects - - Args: - mtype (Type4Enum): Type of the metadata object being searched. - id (list of string): A JSON array of GUIDs of the objects. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/detail') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('type') - .value(mtype) - .is_required(True)) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .array_serialization_format(SerializationFormats.PLAIN) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_object_header(self, - mtype, - id, - output_fields=None): - """Does a GET request to /tspublic/rest/v2/metadata/header. - - To get header detail of a metadata object, use this endpoint. You can - provide as input selective fields to get the data for. - - Args: - mtype (Type5Enum): Type of the metadata object being searched. - id (string): GUID of the metadata object - output_fields (list of string, optional): Array of header field - names that need to be included in the header response - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/header') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('type') - .value(mtype) - .is_required(True)) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .query_param(Parameter() - .key('outputFields') - .value(output_fields)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .array_serialization_format(SerializationFormats.PLAIN) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_object_detail(self, - body): - """Does a POST request to /tspublic/rest/v2/metadata/detail/search. - - Use this endpoint to get full details of metadata objects - - Args: - body (TspublicRestV2MetadataDetailSearchRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/detail/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__create_tag(self, - body): - """Does a POST request to /tspublic/rest/v2/metadata/tag/create. - - To programmatically create tags, use this endpoint - - Args: - body (TspublicRestV2MetadataTagCreateRequest): TODO: type - description here. - - Returns: - MetadataTagResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tag/create') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(MetadataTagResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__update_tag(self, - body): - """Does a PUT request to /tspublic/rest/v2/metadata/tag/update. - - To programmatically update tags, use this endpoint. At least one of id - or name of tag is required. When both are given, then id will be - considered. - - Args: - body (TspublicRestV2MetadataTagUpdateRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tag/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_tag(self, - name=None, - id=None): - """Does a DELETE request to /tspublic/rest/v2/metadata/tag/delete. - - To programmatically delete tags, use this endpoint. At least one of id - or name of tag is required. When both are given, then id will be - considered. - - Args: - name (string, optional): Name of the tag - id (string, optional): The GUID of the tag - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tag/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__assign_tag(self, - body): - """Does a PUT request to /tspublic/rest/v2/metadata/tag/assign. - - To programmatically assign tags to a metadata object, such as a - liveboard, search answer, table, worksheet, or view, use this - endpoint. At least one of id or name of tag is required. When both - are given, then id will be considered. - - Args: - body (TspublicRestV2MetadataTagAssignRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tag/assign') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__unassign_tag(self, - body): - """Does a PUT request to /tspublic/rest/v2/metadata/tag/unassign. - - To programmatically unassign tags to a metadata object, such as a - liveboard, search answer, table, worksheet, or view, use this - endpoint. At least one of id or name of tag is required. When both are - given, then id will be considered. - - Args: - body (TspublicRestV2MetadataTagUnassignRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tag/unassign') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__assign_favorite(self, - body): - """Does a PUT request to /tspublic/rest/v2/metadata/favorite/assign. - - To programmatically assign objects to favorites for a given user - account, use this endpoint. At least one of user id or username is - required. When both are given, then id will be considered. - - Args: - body (TspublicRestV2MetadataFavoriteAssignRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/favorite/assign') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__unassign_favorite(self, - body): - """Does a PUT request to /tspublic/rest/v2/metadata/favorite/unassign. - - To programmatically unassign objects to favorites for a given user - account, use this endpoint. At least one of user id or username is - required. When both are given, then id will be considered. - - Args: - body (TspublicRestV2MetadataFavoriteUnassignRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/favorite/unassign') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__assign_home_liveboard(self, - body): - """Does a PUT request to /tspublic/rest/v2/metadata/homeliveboard/assign. - - To assign a specific liveboard as a home liveboard for a user, use - this endpoint. At least one of user id or username is required. When - both are given, then id will be considered. - - Args: - body (TspublicRestV2MetadataHomeliveboardAssignRequest): TODO: - type description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/homeliveboard/assign') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__unassign_home_liveboard(self, - body): - """Does a PUT request to /tspublic/rest/v2/metadata/homeliveboard/unassign. - - To unassign the home liveboard set for a user, use this endpoint. At - least one of user id or username is required. When both are given, - then id will be considered. - - Args: - body (TspublicRestV2MetadataHomeliveboardUnassignRequest): TODO: - type description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/homeliveboard/unassign') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__export_object_tml(self, - body): - """Does a POST request to /tspublic/rest/v2/metadata/tml/export. - - To export ThoughtSpot objects represented in ThoughtSpot Modeling - Language (TML), use this endpoint - - Args: - body (TspublicRestV2MetadataTmlExportRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tml/export') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__import_object_tml(self, - body): - """Does a POST request to /tspublic/rest/v2/metadata/tml/import. - - To import ThoughtSpot objects represented in ThoughtSpot Modeling - Language (TML), use this endpoint - - Args: - body (TspublicRestV2MetadataTmlImportRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/tml/import') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_object(self, - mtype, - id): - """Does a DELETE request to /tspublic/rest/v2/metadata/delete. - - Use this endpoint to delete the metadata objects - - Args: - mtype (Type4Enum): Type of the metadata object being searched - id (list of string): A JSON array of GUIDs of the objects - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('type') - .value(mtype) - .is_required(True)) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .array_serialization_format(SerializationFormats.PLAIN) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_object_dependency(self, - body): - """Does a POST request to /tspublic/rest/v2/metadata/dependency. - - To query the details of dependent objects and associate objects as - dependents, you can use this API. Dependency is defined as relation - between referenced and referencing objects. A referencing object is - said to have a dependency on a referenced object, if the referenced - object cannot be deleted without first deleting the referencing - object. For example, consider a worksheet 'W1' that has a derived - logical column 'C1' that has a reference to a base logical column - 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a - dependency on C2 i.e. W1 is a referencing object and C2 is a - referenced object. It is not possible to delete C2 without first - deleting W1 because deletion of C2 will be prevented by the - relationship between W1's column C1 and C2. Similarly C1 is said to - have a dependency on C2 i.e. C1 is a referencing object and C2 is a - referenced object. It is not possible to delete C2 without first - deleting C1 - - Args: - body (TspublicRestV2MetadataDependencyRequest): TODO: type - description here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/metadata/dependency') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/org_controller.py b/Python/thoughtspotpublicrestapi/controllers/org_controller.py deleted file mode 100644 index 0d489e1a6..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/org_controller.py +++ /dev/null @@ -1,257 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.orgs_response import OrgsResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class OrgController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(OrgController, self).__init__(config) - - def restapi_v_2__get_org(self, - name=None, - id=None): - """Does a GET request to /tspublic/rest/v2/org. - - To get the details of a specific organization by name or id, use this - endpoint. - At least one value needed. When both are given,then id will be - considered to fetch organization information. - Requires Administration privilege for tenant. - - Args: - name (string, optional): Name of the organization. - id (int, optional): The ID of the organization. - - Returns: - OrgsResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/org') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(OrgsResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__create_org(self, - body): - """Does a POST request to /tspublic/rest/v2/org/create. - - To programmatically create an organization in the ThoughtSpot system, - use this API endpoint. - Requires Administration privilege for tenant. - - Args: - body (TspublicRestV2OrgCreateRequest): TODO: type description - here. - - Returns: - OrgsResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/org/create') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(OrgsResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__update_org(self, - body): - """Does a PUT request to /tspublic/rest/v2/org/update. - - You can use this endpoint to programmatically modify an existing org. - Provide name or id of the organization to update the properties. When - both id and name are given, then id will be considered and name of the - organization will be updated. - Requires Administration privilege for tenant. - - Args: - body (TspublicRestV2OrgUpdateRequest): TODO: type description - here. - - Returns: - OrgsResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/org/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(OrgsResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_org(self, - name=None, - id=None): - """Does a DELETE request to /tspublic/rest/v2/org/delete. - - To remove an organization from the ThoughtSpot system, send a DELETE - request to this endpoint. - At least one value is needed. When both id and name are given, then id - will be considered. - Requires Administration privilege for tenant. - - Args: - name (string, optional): Name of the organization. - id (int, optional): The ID of the organization. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/org/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_orgs(self, - body): - """Does a POST request to /tspublic/rest/v2/org/search. - - To get the details of a specific organization or all organizations in - the ThoughtSpot system use this end point. - If no input is provided, then all organizations are included in the - response. - Requires Administration privilege for tenant. - - Args: - body (TspublicRestV2OrgSearchRequest): TODO: type description - here. - - Returns: - list of OrgsResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/org/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(OrgsResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/report_controller.py b/Python/thoughtspotpublicrestapi/controllers/report_controller.py deleted file mode 100644 index bf76192e0..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/report_controller.py +++ /dev/null @@ -1,173 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.types.array_serialization_format import SerializationFormats -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class ReportController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(ReportController, self).__init__(config) - - def restapi_v_2__answer_report(self, - id, - mtype): - """Does a GET request to /tspublic/rest/v2/report/answer. - - To programmatically download Answer data as a file, use this endpoint. - The PDF will download data in the tabular format even if Answer is - saved as chart. - - Args: - id (string): GUID of the Answer to download. - mtype (Type16Enum): Type of file to be generated. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/report/answer') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .query_param(Parameter() - .key('type') - .value(mtype) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__liveboard_report(self, - mtype, - id=None, - viz_id=None, - transient_content=None, - runtime_filter=None, - runtime_sort=None, - pdf_options=None): - """Does a GET request to /tspublic/rest/v2/report/liveboard. - - To programmatically download Liveboard data or specific Visualization - data from Liveboard as a file, use this endpoint - - Args: - mtype (Type16Enum): Type of file to be generated. Valid values: - CSV/XLSX/PDF/PNG. - id (string, optional): GUID of the Liveboard to download. This - field is considered only when no input is provided for - transientContent field. - viz_id (list of string, optional): JSON Array of GUIDs of the - visualizations in the Liveboard to be included in the - downloaded file. For CSV, XLSX and PNG file download, - visualization id is mandatory. CSV and XLSX is valid only for - visualization of type table and PNG is valid for charts. - Only one value will be accepted for these formats. If multiple - values are provided then first value in the array will be - considered. - transient_content (string, optional): If you have embedded - ThoughtSpot in your host application, and you want to download - Liveboards with unsaved changes as a file, pass the transient - content from the browser fetch request, using the - getExportRequestForCurrentPinboard method. For more - information, see - https://developers.thoughtspot.com/docs/?pageid=liveboard-expor - t-api#transient-pinboard. - runtime_filter (string, optional): If you have embedded - ThoughtSpot in your host application, and you want to download - Liveboards with unsaved changes as a file, pass the transient - content from the browser fetch request, using the - getExportRequestForCurrentPinboard method. For more - information, see - https://developers.thoughtspot.com/docs/?pageid=liveboard-expor - t-api#transient-pinboard . - runtime_sort (string, optional): JSON object which provides - columns to sort the data at the time of data retrieval. - Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"} - For more information, see - https://developers.thoughtspot.com/docs/?pageid=runtime-filters - pdf_options (PdfOptionsInput, optional): Additional options that - are applicable for PDF type. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/report/liveboard') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('type') - .value(mtype) - .is_required(True)) - .query_param(Parameter() - .key('id') - .value(id)) - .query_param(Parameter() - .key('vizId') - .value(viz_id)) - .query_param(Parameter() - .key('transientContent') - .value(transient_content)) - .query_param(Parameter() - .key('runtimeFilter') - .value(runtime_filter)) - .query_param(Parameter() - .key('runtimeSort') - .value(runtime_sort)) - .query_param(Parameter() - .key('pdfOptions') - .value(pdf_options)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .array_serialization_format(SerializationFormats.PLAIN) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/security_controller.py b/Python/thoughtspotpublicrestapi/controllers/security_controller.py deleted file mode 100644 index d5926d3bc..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/security_controller.py +++ /dev/null @@ -1,326 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.security_permission_response import SecurityPermissionResponse -from thoughtspotpublicrestapi.models.principal_search_response import PrincipalSearchResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class SecurityController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(SecurityController, self).__init__(config) - - def restapi_v_2__get_permission_on_object(self, - id, - mtype, - include_dependent=None): - """Does a GET request to /tspublic/rest/v2/security/permission/tsobject. - - To list the permissions for user and user groups on an object, use - this endpoint. The response will include only those users and groups - with have either VIEW OR MODIFY permission. - You can optionally see the permission on the dependent objects as well - by enabling includeDependent field. - - Args: - id (string): GUID of the metadata object for which the permission - needs to be obtained. - mtype (Type7Enum): Type of metadata object. Valid values: - Liveboard|Answer|DataObject|Column - include_dependent (bool, optional): When this field is set to - true, the API returns the permission details for the dependent - objects for the the object included in the request - - Returns: - SecurityPermissionResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/security/permission/tsobject') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id) - .is_required(True)) - .query_param(Parameter() - .key('type') - .value(mtype) - .is_required(True)) - .query_param(Parameter() - .key('includeDependent') - .value(include_dependent)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(SecurityPermissionResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_permission_for_principal(self, - id=None, - name=None): - """Does a GET request to /tspublic/rest/v2/security/permission/principal. - - Use this endpoint to list the objects on which a user or user group - has permission. The response will include only those objects on which - the user or user group has either VIEW OR MODIFY permission. - Requires administration privilege - - Args: - id (string, optional): GUID of the user or user group for which - the object permission needs to be obtained - name (string, optional): Name of the ser or user group for which - the object permission needs to be obtained - - Returns: - PrincipalSearchResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/security/permission/principal') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('id') - .value(id)) - .query_param(Parameter() - .key('name') - .value(name)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(PrincipalSearchResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__share_object(self, - body): - """Does a POST request to /tspublic/rest/v2/security/share/tsobject. - - To programmatically share ThoughtSpot objects with another user or - user group, use this endpoint. - When you share an object like a Liveboard or visualization, a - notification with a live link is sent to the user. When the users - access this object, they can view the last saved version of the - object. - - Args: - body (TspublicRestV2SecurityShareTsobjectRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/security/share/tsobject') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__share_visualization(self, - body): - """Does a POST request to /tspublic/rest/v2/security/share/visualization. - - If you want to share a specific visualization from a Liveboard with - another user or user group, then use this endpoint. - Requires privilege to share the visualization - - Args: - body (TspublicRestV2SecurityShareVisualizationRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/security/share/visualization') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_permission_on_objects(self, - body): - """Does a POST request to /tspublic/rest/v2/security/permission/tsobject/search. - - To list the permissions for user and user groups on a list of objects, - use this endpoint. The response will include only those users and - groups with have either VIEW OR MODIFY permission. - You can either provide list of object ids or type of objects to list - the permissions for. One of these inputs is mandatory. If both are - provided then only object ids will be considred. - You can optionally provide users or user groups for which the - persmission needs to be displayed. - You can optionally see the permission on the dependent objects as well - by enabling includeDependent field. - Requires administration privilege - - Args: - body (TspublicRestV2SecurityPermissionTsobjectSearchRequest): - TODO: type description here. - - Returns: - list of SecurityPermissionResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/security/permission/tsobject/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(SecurityPermissionResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_permission_for_principals(self, - body): - """Does a POST request to /tspublic/rest/v2/security/permission/principal/search. - - To list the permissions for user and user groups on a list of objects, - use this endpoint. The response will include only those users and - groups with have either VIEW OR MODIFY permission. - You can either provide list of object ids or type of objects to list - the permissions for. One of these inputs is mandatory. If both are - provided then only object ids will be considred. - You can optionally provide users or user groups for which the - persmission needs to be displayed. - You can optionally see the permission on the dependent objects as well - by enabling includeDependent field. - Requires administration privilege - - Args: - body (TspublicRestV2SecurityPermissionPrincipalSearchRequest): - TODO: type description here. - - Returns: - list of PrincipalSearchResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/security/permission/principal/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(PrincipalSearchResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/session_controller.py b/Python/thoughtspotpublicrestapi/controllers/session_controller.py deleted file mode 100644 index eab1d8446..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/session_controller.py +++ /dev/null @@ -1,176 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.session_login_response import SessionLoginResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class SessionController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(SessionController, self).__init__(config) - - def restapi_v_2__login(self, - user_name=None, - password=None, - remember_me=None): - """Does a GET request to /tspublic/rest/v2/session/login. - - You can programmatically create login session for a user in - ThoughtSpot using this endpoint. - You can create session by either providing userName and password as - inputs in this request body or by including "Authorization" header - with the token generated through the endpoint - /tspublic/rest/v2/session/gettoken. - userName and password input is given precedence over "Authorization" - header, when both are included in the request. - - Args: - user_name (string, optional): Username of the user account - password (string, optional): The password of the user account - remember_me (bool, optional): A flag to remember the user session. - When set to true, sets a session cookie that persists in - subsequent API calls. - - Returns: - SessionLoginResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/session/login') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('userName') - .value(user_name)) - .query_param(Parameter() - .key('password') - .value(password)) - .query_param(Parameter() - .key('rememberMe') - .value(remember_me)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(SessionLoginResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__get_token(self, - user_name, - password=None, - secret_key=None, - access_level=None, - ts_object_id=None, - token_expiry_duration=None, - org_id=None): - """Does a GET request to /tspublic/rest/v2/session/gettoken. - - To programmatically create session token for a user in ThoughtSpot, - use this endpoint. - You can generate the token for a user by providing password or secret - key from the cluster. - You need to enable trusted authentication to generate secret key. To - generate secret key, follow below steps. - 1. Click the Develop tab. - 2. Under Customizations, click Settings. - 3. To enable trusted authentication, turn on the toggle. - 4. A secret_key for trusted authentication is generated. - 5. Click the clipboard icon to copy the token. - - Password is given precedence over secretKey input, when both are - included in the request. - - Args: - user_name (string): Username of the user account - password (string, optional): The password of the user account - secret_key (string, optional): The secret key string provided by - the ThoughtSpot application server. ThoughtSpot generates this - secret key when you enable trusted authentication. - access_level (AccessLevelEnum, optional): User access privilege. - FULL - Creates a session with full access. REPORT_BOOK_VIEW - - Allow view access to the specified visualizations. - ts_object_id (string, optional): GUID of the ThoughtSpot object. - If you have set the accessLevel attribute to REPORT_BOOK_VIEW, - specify the GUID of the Liveboard or visualization object. - token_expiry_duration (string, optional): Duration in seconds - after which the token expires - org_id (string, optional): Id of the organization to be associated - with the user login. If no input is provided then last logged - in organization will be considered - - Returns: - SessionLoginResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/session/gettoken') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('userName') - .value(user_name) - .is_required(True)) - .query_param(Parameter() - .key('password') - .value(password)) - .query_param(Parameter() - .key('secretKey') - .value(secret_key)) - .query_param(Parameter() - .key('accessLevel') - .value(access_level)) - .query_param(Parameter() - .key('tsObjectId') - .value(ts_object_id)) - .query_param(Parameter() - .key('tokenExpiryDuration') - .value(token_expiry_duration)) - .query_param(Parameter() - .key('orgId') - .value(org_id)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(SessionLoginResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/controllers/user_controller.py b/Python/thoughtspotpublicrestapi/controllers/user_controller.py deleted file mode 100644 index 92e694e58..000000000 --- a/Python/thoughtspotpublicrestapi/controllers/user_controller.py +++ /dev/null @@ -1,503 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.configuration import Server -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from apimatic_core.request_builder import RequestBuilder -from apimatic_core.response_handler import ResponseHandler -from apimatic_core.types.parameter import Parameter -from thoughtspotpublicrestapi.http.http_method_enum import HttpMethodEnum -from apimatic_core.types.array_serialization_format import SerializationFormats -from apimatic_core.authentication.multiple.single_auth import Single -from apimatic_core.authentication.multiple.and_auth_group import And -from apimatic_core.authentication.multiple.or_auth_group import Or -from thoughtspotpublicrestapi.models.user_response import UserResponse -from thoughtspotpublicrestapi.exceptions.error_response_exception import ErrorResponseException - - -class UserController(BaseController): - - """A Controller to access Endpoints in the thoughtspotpublicrestapi API.""" - def __init__(self, config): - super(UserController, self).__init__(config) - - def restapi_v_2__get_user(self, - name=None, - id=None): - """Does a GET request to /tspublic/rest/v2/user. - - To get the details of a specific user account by username or user id, - use this endpoint. At Least one value is needed. When both are given, - user id will be considered to fetch user information - - Args: - name (string, optional): Username of the user that you want to - query. - id (string, optional): The GUID of the user account to query - - Returns: - UserResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(UserResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__create_user(self, - name, - display_name, - password, - visibility=None, - mail=None, - org_ids=None, - groups=None, - state=None, - notify_on_share=None, - show_walk_me=None, - analyst_onboarding_complete=None, - mtype=None): - """Does a GET request to /tspublic/rest/v2/user/create. - - To programmatically create a user account in the ThoughtSpot system - use this API endpoint. Using this API, you can create a user and - assign groups. - To create a user, you require admin user privileges. - All users created in the ThoughtSpot system are added to ALL_GROUP - - Args: - name (string): Name of the user. The username string must be - unique. - display_name (string): A unique display name string for the user - account, usually their first and last name - password (string): Password for the user account. - visibility (VisibilityEnum, optional): Visibility of the user. The - visibility attribute is set to DEFAULT when creating a user. - The DEFAULT attribute makes a user visible to other users and - user groups, and this allows them to share objects - mail (string, optional): Email of the user account - org_ids (list of int, optional): Array of org identifiers. If no - value is provided then user will be created in the - organization associated with the login session. - groups (list of GroupNameAndIDInput, optional): Array of objects - of groups that the user belong to. - state (StateEnum, optional): Status of user account. acitve or - inactive. - notify_on_share (bool, optional): User preference for receiving - email notifications when another ThoughtSpot user shares - answers or pinboards. - show_walk_me (bool, optional): The user preference for revisiting - the onboarding experience. - analyst_onboarding_complete (bool, optional): ThoughtSpot provides - an interactive guided walkthrough to onboard new users. The - onboarding experience leads users through a set of actions to - help users get started and accomplish their tasks quickly. The - users can turn off the Onboarding experience and access it - again when they need assistance with the ThoughtSpot UI. - mtype (Type8Enum, optional): Type of user. LOCAL_USER indicates - that the user is created locally in the ThoughtSpot system. - - Returns: - UserResponse: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/create') - .http_method(HttpMethodEnum.GET) - .query_param(Parameter() - .key('name') - .value(name) - .is_required(True)) - .query_param(Parameter() - .key('displayName') - .value(display_name) - .is_required(True)) - .query_param(Parameter() - .key('password') - .value(password) - .is_required(True)) - .query_param(Parameter() - .key('visibility') - .value(visibility)) - .query_param(Parameter() - .key('mail') - .value(mail)) - .query_param(Parameter() - .key('orgIds') - .value(org_ids)) - .query_param(Parameter() - .key('groups') - .value(groups)) - .query_param(Parameter() - .key('state') - .value(state)) - .query_param(Parameter() - .key('notifyOnShare') - .value(notify_on_share)) - .query_param(Parameter() - .key('showWalkMe') - .value(show_walk_me)) - .query_param(Parameter() - .key('analystOnboardingComplete') - .value(analyst_onboarding_complete)) - .query_param(Parameter() - .key('type') - .value(mtype)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .array_serialization_format(SerializationFormats.PLAIN) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .deserialize_into(UserResponse.from_dictionary) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__update_user(self, - body): - """Does a PUT request to /tspublic/rest/v2/user/update. - - You can use this endpoint to programmatically modify an existing user - account. To modify a user, you require admin user privileges. - At least one of User Id or username is mandatory. When both are given, - then user id will be considered and username will be updated - - Args: - body (TspublicRestV2UserUpdateRequest): TODO: type description - here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/update') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__delete_user(self, - name=None, - id=None, - org_id=None): - """Does a DELETE request to /tspublic/rest/v2/user/delete. - - To remove a user from the ThoughtSpot system, use this endpoint. - At Least one value needed. When both are given user id will be - considered to delete user. - - Args: - name (string, optional): Username of the user that you want to - query. - id (string, optional): The GUID of the user account to query - org_id (int, optional): Unique identifier of the organization from - which the user would be deleted. If no value is provided then - user will be deleted from the organization associated with the - login session. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/delete') - .http_method(HttpMethodEnum.DELETE) - .query_param(Parameter() - .key('name') - .value(name)) - .query_param(Parameter() - .key('id') - .value(id)) - .query_param(Parameter() - .key('orgId') - .value(org_id)) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__add_user_to_groups(self, - body): - """Does a PUT request to /tspublic/rest/v2/user/addgroup. - - To programmatically add groups to an existing ThoughtSpot user use - this endpoint. - When you assign groups to a user, the user inherits the privileges - assigned to those groups. - At least one of User Id or username is mandatory. When both are given, - then user id will be considered. - - Args: - body (TspublicRestV2UserAddgroupRequest): TODO: type description - here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/addgroup') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__remove_user_from_groups(self, - body): - """Does a PUT request to /tspublic/rest/v2/user/removegroup. - - To programmatically remove groups from an existing ThoughtSpot user, - use this API endpoint. - The API removes only the user association. It does not delete the user - or group from the Thoughtspot system - At least one of User Id or username is mandatory. When both are given, - then user id will be considered. - - Args: - body (TspublicRestV2UserRemovegroupRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/removegroup') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__search_users(self, - body): - """Does a POST request to /tspublic/rest/v2/user/search. - - To get the details of a specific user account or all users in the - ThoughtSpot system use this end point. - - Args: - body (TspublicRestV2UserSearchRequest): TODO: type description - here. - - Returns: - object: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/search') - .http_method(HttpMethodEnum.POST) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .header_param(Parameter() - .key('accept') - .value('application/json')) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__change_password_of_user(self, - body): - """Does a PUT request to /tspublic/rest/v2/user/changepassword. - - To change the password of a ThoughtSpot user account, use this - endpoint. - At least one of id or name of user is required. When both are given - user id will be considered. - - Args: - body (TspublicRestV2UserChangepasswordRequest): TODO: type - description here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/changepassword') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() - - def restapi_v_2__add_user_to_orgs(self, - body): - """Does a PUT request to /tspublic/rest/v2/user/addorg. - - To programmatically add existing ThoughtSpot users to an organization, - use this API endpoint. - At least one of id or name of the organization is required. When both - are given, then organization id will be considered. - Requires Administration access for the organization to which users - need to be added. - - Args: - body (TspublicRestV2UserAddorgRequest): TODO: type description - here. - - Returns: - bool: Response from the API. - - Raises: - APIException: When an error occurs while fetching the data from - the remote API. This exception includes the HTTP Response - code, an error message, and the HTTP body that was received in - the request. - - """ - - return super().new_api_call_builder.request( - RequestBuilder().server(Server.DEFAULT) - .path('/tspublic/rest/v2/user/addorg') - .http_method(HttpMethodEnum.PUT) - .header_param(Parameter() - .key('Content-Type') - .value('application/json')) - .body_param(Parameter() - .value(body) - .is_required(True)) - .body_serializer(APIHelper.json_serialize) - .auth(Single('global')) - ).response( - ResponseHandler() - .deserializer(APIHelper.json_deserialize) - .local_error('500', 'Operation failed', ErrorResponseException) - ).execute() diff --git a/Python/thoughtspotpublicrestapi/exceptions/__init__.py b/Python/thoughtspotpublicrestapi/exceptions/__init__.py deleted file mode 100644 index 58864fae4..000000000 --- a/Python/thoughtspotpublicrestapi/exceptions/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -__all__ = [ - 'api_exception', - 'error_response_exception', -] diff --git a/Python/thoughtspotpublicrestapi/exceptions/api_exception.py b/Python/thoughtspotpublicrestapi/exceptions/api_exception.py deleted file mode 100644 index 91fa71330..000000000 --- a/Python/thoughtspotpublicrestapi/exceptions/api_exception.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class APIException(Exception): - - """Class that handles HTTP Exceptions when fetching API Endpoints. - - Attributes: - response_code (int): The status code of the response. - response (HttpResponse): The HttpResponse of the API call. - - """ - - def __init__(self, - reason, - response): - """Constructor for the APIException class - - Args: - reason (string): The reason (or error message) for the Exception - to be raised. - response (HttpResponse): The HttpResponse of the API call. - - """ - super(APIException, self).__init__(reason) - self.reason = reason - self.response = response - self.response_code = response.status_code diff --git a/Python/thoughtspotpublicrestapi/exceptions/error_response_exception.py b/Python/thoughtspotpublicrestapi/exceptions/error_response_exception.py deleted file mode 100644 index ea99f94b9..000000000 --- a/Python/thoughtspotpublicrestapi/exceptions/error_response_exception.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from thoughtspotpublicrestapi.api_helper import APIHelper -import thoughtspotpublicrestapi.exceptions.api_exception - - -class ErrorResponseException(thoughtspotpublicrestapi.exceptions.api_exception.APIException): - def __init__(self, reason, response): - """Constructor for the ErrorResponseException class - - Args: - reason (string): The reason (or error message) for the Exception - to be raised. - response (HttpResponse): The HttpResponse of the API call. - - """ - super(ErrorResponseException, self).__init__(reason, response) - dictionary = APIHelper.json_deserialize(self.response.text) - if isinstance(dictionary, dict): - self.unbox(dictionary) - - def unbox(self, dictionary): - """Populates the properties of this object by extracting them from a dictionary. - - Args: - dictionary (dictionary): A dictionary representation of the object as - obtained from the deserialization of the server's response. The keys - MUST match property names in the API description. - - """ - self.error = dictionary.get("error") if dictionary.get("error") else APIHelper.SKIP diff --git a/Python/thoughtspotpublicrestapi/http/__init__.py b/Python/thoughtspotpublicrestapi/http/__init__.py deleted file mode 100644 index b1344a840..000000000 --- a/Python/thoughtspotpublicrestapi/http/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -__all__ = [ - 'auth', - 'http_method_enum', - 'http_request', - 'http_response', - 'http_call_back', -] diff --git a/Python/thoughtspotpublicrestapi/http/auth/__init__.py b/Python/thoughtspotpublicrestapi/http/auth/__init__.py deleted file mode 100644 index 649126762..000000000 --- a/Python/thoughtspotpublicrestapi/http/auth/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -__all__ = [ - 'o_auth_2', -] diff --git a/Python/thoughtspotpublicrestapi/http/auth/o_auth_2.py b/Python/thoughtspotpublicrestapi/http/auth/o_auth_2.py deleted file mode 100644 index 9a8353e99..000000000 --- a/Python/thoughtspotpublicrestapi/http/auth/o_auth_2.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core.authentication.header_auth import HeaderAuth - - -class OAuth2(HeaderAuth): - - @property - def error_message(self): - """Display error message on occurrence of authentication failure - in BearerAuth - - """ - return "BearerAuth: access_token is undefined." - - def __init__(self, access_token): - auth_params = {} - self._access_token = access_token - if self._access_token: - auth_params["Authorization"] = "Bearer {}".format(self._access_token) - super().__init__(auth_params=auth_params) - diff --git a/Python/thoughtspotpublicrestapi/http/http_call_back.py b/Python/thoughtspotpublicrestapi/http/http_call_back.py deleted file mode 100644 index b46d9986d..000000000 --- a/Python/thoughtspotpublicrestapi/http/http_call_back.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core.http.http_callback import HttpCallBack - - -class HttpCallBack(HttpCallBack): - - """An interface for the callback to be called before and after the - HTTP call for an endpoint is made. - - This class should not be instantiated but should be used as a base class - for HttpCallBack classes. - - """ \ No newline at end of file diff --git a/Python/thoughtspotpublicrestapi/http/http_method_enum.py b/Python/thoughtspotpublicrestapi/http/http_method_enum.py deleted file mode 100644 index 0da02d750..000000000 --- a/Python/thoughtspotpublicrestapi/http/http_method_enum.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core_interfaces.types.http_method_enum import HttpMethodEnum - - -class HttpMethodEnum(HttpMethodEnum): - - """Enumeration of an HTTP Method - - Attributes: - GET: A GET Request - POST: A POST Request - PUT: A PUT Request - PATCH: A PATCH Request - DELETE: A DELETE Request - - """ \ No newline at end of file diff --git a/Python/thoughtspotpublicrestapi/http/http_request.py b/Python/thoughtspotpublicrestapi/http/http_request.py deleted file mode 100644 index c2ba4899c..000000000 --- a/Python/thoughtspotpublicrestapi/http/http_request.py +++ /dev/null @@ -1,54 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core.http.request.http_request import HttpRequest - - -class HttpRequest(HttpRequest): - - """Information about an HTTP Request including its method, headers, - parameters, URL, and Basic Auth details - - Attributes: - http_method (HttpMethodEnum): The HTTP Method that this request should - perform when called. - headers (dict): A dictionary of headers (key : value) that should be - sent along with the request. - query_url (string): The URL that the request should be sent to. - parameters (dict): A dictionary of parameters that are to be sent along - with the request in the form body of the request - - """ - - def __init__(self, - http_method, - query_url, - headers=None, - query_parameters=None, - parameters=None, - files=None): - """Constructor for the HttpRequest class - - Args: - http_method (HttpMethodEnum): The HTTP Method. - query_url (string): The URL to send the request to. - headers (dict, optional): The headers for the HTTP Request. - query_parameters (dict, optional): Query parameters to add in the - URL. - parameters (dict, optional): Form or body parameters to be included - in the body. - files (dict, optional): Files to be sent with the request. - - """ - super().__init__(http_method, - query_url, - headers, - query_parameters, - parameters, - files) diff --git a/Python/thoughtspotpublicrestapi/http/http_response.py b/Python/thoughtspotpublicrestapi/http/http_response.py deleted file mode 100644 index 6a53e7e25..000000000 --- a/Python/thoughtspotpublicrestapi/http/http_response.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core.http.response.http_response import HttpResponse - - -class HttpResponse(HttpResponse): - - """Information about an HTTP Response including its status code, returned - headers, and raw body - - Attributes: - status_code (int): The status code response from the server that - corresponds to this response. - reason_phrase (string): The reason phrase returned by the server. - headers (dict): A dictionary of headers (key : value) that were - returned with the response - text (string): The Raw body of the HTTP Response as a string - request (HttpRequest): The request that resulted in this response. - - """ - - def __init__(self, - status_code, - reason_phrase, - headers, - text, - request): - """Constructor for the HttpResponse class - - Args: - status_code (int): The response status code. - reason_phrase (string): The response reason phrase. - headers (dict): The response headers. - text (string): The raw body from the server. - request (HttpRequest): The request that resulted in this response. - - """ - super().__init__(status_code, reason_phrase, headers, text, request) diff --git a/Python/thoughtspotpublicrestapi/models/__init__.py b/Python/thoughtspotpublicrestapi/models/__init__.py deleted file mode 100644 index ad12eba67..000000000 --- a/Python/thoughtspotpublicrestapi/models/__init__.py +++ /dev/null @@ -1,145 +0,0 @@ -__all__ = [ - 'session_login_response', - 'group_name_and_id_input', - 'group_name_and_id', - 'user_name_and_id', - 'user_name_and_id_input', - 'user_response', - 'pinboard_details', - 'group_response', - 'liveboard_name_and_id', - 'metadata_tag_response', - 'client_state', - 'tag_name_and_id', - 'ts_object_input', - 'home_liveboard_response', - 'access_level_input', - 'tag_name_and_id_input', - 'name_and_id_input', - 'connection_response', - 'create_connection_response', - 'add_table_input', - 'table_input', - 'connection_table_response', - 'connection_table_columns_response', - 'answer_query_response', - 'liveboard_query_response', - 'from_user_name_and_id_input', - 'to_user_name_and_id_input', - 'adminsync_principal_response', - 'pdf_options_input', - 'logs_response', - 'ts_object_search_input', - 'security_permission_response', - 'principal_search_response', - 'orgs_response', - 'create_table_response', - 'connection_table_columns_input', - 'org_type', - 'table_list', - 'columns_input', - 'connection_database_type', - 'connection_columns_shema', - 'viz_type', - 'security_permission', - 'secuirity_dependents', - 'permissions_type_search', - 'logical_table_header', - 'connection_table_schema', - 'table_columns', - 'group_permission', - 'dependent_permission', - 'ts_object_type_serach', - 'connection_column', - 'tspublic_rest_v_2_admin_assignauthor_request', - 'tspublic_rest_v_2_admin_changeauthor_request', - 'tspublic_rest_v_2_admin_configuration_update_request', - 'tspublic_rest_v_2_admin_forcelogout_request', - 'tspublic_rest_v_2_admin_resetpassword_request', - 'tspublic_rest_v_2_admin_syncprincipal_request', - 'tspublic_rest_v_2_connection_addtable_request', - 'tspublic_rest_v_2_connection_create_request', - 'tspublic_rest_v_2_connection_removetable_request', - 'tspublic_rest_v_2_connection_search_request', - 'tspublic_rest_v_2_connection_table_request', - 'tspublic_rest_v_2_connection_tablecoloumn_request', - 'tspublic_rest_v_2_connection_update_request', - 'tspublic_rest_v_2_customaction_association_update_request', - 'tspublic_rest_v_2_customaction_create_request', - 'tspublic_rest_v_2_customaction_search_request', - 'tspublic_rest_v_2_customaction_update_request', - 'tspublic_rest_v_2_data_answer_request', - 'tspublic_rest_v_2_data_liveboard_request', - 'tspublic_rest_v_2_data_search_request', - 'tspublic_rest_v_2_database_table_create_request', - 'tspublic_rest_v_2_database_table_runquery_request', - 'tspublic_rest_v_2_group_addgroup_request', - 'tspublic_rest_v_2_group_addprivilege_request', - 'tspublic_rest_v_2_group_adduser_request', - 'tspublic_rest_v_2_group_create_request', - 'tspublic_rest_v_2_group_removegroup_request', - 'tspublic_rest_v_2_group_removeprivilege_request', - 'tspublic_rest_v_2_group_removeuser_request', - 'tspublic_rest_v_2_group_search_request', - 'tspublic_rest_v_2_group_update_request', - 'tspublic_rest_v_2_materialization_refreshview_request', - 'tspublic_rest_v_2_metadata_dependency_request', - 'tspublic_rest_v_2_metadata_detail_search_request', - 'tspublic_rest_v_2_metadata_favorite_assign_request', - 'tspublic_rest_v_2_metadata_favorite_unassign_request', - 'tspublic_rest_v_2_metadata_header_search_request', - 'tspublic_rest_v_2_metadata_homeliveboard_assign_request', - 'tspublic_rest_v_2_metadata_homeliveboard_unassign_request', - 'tspublic_rest_v_2_metadata_tag_assign_request', - 'tspublic_rest_v_2_metadata_tag_create_request', - 'tspublic_rest_v_2_metadata_tag_unassign_request', - 'tspublic_rest_v_2_metadata_tag_update_request', - 'tspublic_rest_v_2_metadata_tml_export_request', - 'tspublic_rest_v_2_metadata_tml_import_request', - 'tspublic_rest_v_2_org_create_request', - 'tspublic_rest_v_2_org_search_request', - 'tspublic_rest_v_2_org_update_request', - 'tspublic_rest_v_2_security_permission_principal_search_request', - 'tspublic_rest_v_2_security_permission_tsobject_search_request', - 'tspublic_rest_v_2_security_share_tsobject_request', - 'tspublic_rest_v_2_security_share_visualization_request', - 'tspublic_rest_v_2_user_addgroup_request', - 'tspublic_rest_v_2_user_addorg_request', - 'tspublic_rest_v_2_user_changepassword_request', - 'tspublic_rest_v_2_user_removegroup_request', - 'tspublic_rest_v_2_user_search_request', - 'tspublic_rest_v_2_user_update_request', - 'access_enum', - 'access_level_enum', - 'format_type_enum', - 'format_type_3_enum', - 'import_policy_enum', - 'orientation_enum', - 'privilege_enum', - 'sort_by_enum', - 'sort_by_1_enum', - 'sort_order_enum', - 'sort_order_1_enum', - 'state_enum', - 'state_1_enum', - 'topic_enum', - 'type_enum', - 'type_1_enum', - 'type_2_enum', - 'type_3_enum', - 'type_4_enum', - 'type_5_enum', - 'type_6_enum', - 'type_7_enum', - 'type_8_enum', - 'type_9_enum', - 'type_10_enum', - 'type_13_enum', - 'type_14_enum', - 'type_15_enum', - 'type_16_enum', - 'type_18_enum', - 'visibility_enum', - 'visibility_1_enum', - 'visibility_2_enum', -] diff --git a/Python/thoughtspotpublicrestapi/models/access_enum.py b/Python/thoughtspotpublicrestapi/models/access_enum.py deleted file mode 100644 index 62176c157..000000000 --- a/Python/thoughtspotpublicrestapi/models/access_enum.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class AccessEnum(object): - - """Implementation of the 'Access' enum. - - Minimum access level that the specified user or user group has. If no - input is provided then minimum access of READ_ONLY will be considered. - - Attributes: - READ_ONLY: TODO: type description here. - MODIFY: TODO: type description here. - - """ - - READ_ONLY = 'READ_ONLY' - - MODIFY = 'MODIFY' diff --git a/Python/thoughtspotpublicrestapi/models/access_level_enum.py b/Python/thoughtspotpublicrestapi/models/access_level_enum.py deleted file mode 100644 index 583a37ace..000000000 --- a/Python/thoughtspotpublicrestapi/models/access_level_enum.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class AccessLevelEnum(object): - - """Implementation of the 'accessLevel' enum. - - TODO: type enum description here. - - Attributes: - FULL: TODO: type description here. - REPORT_BOOK_VIEW: TODO: type description here. - - """ - - FULL = 'FULL' - - REPORT_BOOK_VIEW = 'REPORT_BOOK_VIEW' diff --git a/Python/thoughtspotpublicrestapi/models/access_level_input.py b/Python/thoughtspotpublicrestapi/models/access_level_input.py deleted file mode 100644 index 1342a358c..000000000 --- a/Python/thoughtspotpublicrestapi/models/access_level_input.py +++ /dev/null @@ -1,87 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class AccessLevelInput(object): - - """Implementation of the 'AccessLevelInput' model. - - TODO: type model description here. - - Attributes: - name (string): Username or name of the user group - id (string): GUID of the user or user group - mtype (Type1Enum): Type of access detail provided - access (AccessEnum): Minimum access level that the specified user or - user group has. If no input is provided then minimum access of - READ_ONLY will be considered. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "mtype": 'type', - "access": 'access' - } - - _optionals = [ - 'name', - 'id', - 'mtype', - 'access', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - mtype=APIHelper.SKIP, - access=APIHelper.SKIP): - """Constructor for the AccessLevelInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if access is not APIHelper.SKIP: - self.access = access - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - access = dictionary.get("access") if dictionary.get("access") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - mtype, - access) diff --git a/Python/thoughtspotpublicrestapi/models/add_table_input.py b/Python/thoughtspotpublicrestapi/models/add_table_input.py deleted file mode 100644 index afd5e0146..000000000 --- a/Python/thoughtspotpublicrestapi/models/add_table_input.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.models.columns_input import ColumnsInput - - -class AddTableInput(object): - - """Implementation of the 'AddTableInput' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the table - db_name (string): Name of the database in the data platform - schema_name (string): Name of the schema in the database - columns (list of ColumnsInput): A JSON array of column details - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "db_name": 'dbName', - "schema_name": 'schemaName', - "columns": 'columns' - } - - def __init__(self, - name=None, - db_name=None, - schema_name=None, - columns=None): - """Constructor for the AddTableInput class""" - - # Initialize members of the class - self.name = name - self.db_name = db_name - self.schema_name = schema_name - self.columns = columns - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else None - db_name = dictionary.get("dbName") if dictionary.get("dbName") else None - schema_name = dictionary.get("schemaName") if dictionary.get("schemaName") else None - columns = None - if dictionary.get('columns') is not None: - columns = [ColumnsInput.from_dictionary(x) for x in dictionary.get('columns')] - # Return an object of this model - return cls(name, - db_name, - schema_name, - columns) diff --git a/Python/thoughtspotpublicrestapi/models/adminsync_principal_response.py b/Python/thoughtspotpublicrestapi/models/adminsync_principal_response.py deleted file mode 100644 index b74fccd35..000000000 --- a/Python/thoughtspotpublicrestapi/models/adminsync_principal_response.py +++ /dev/null @@ -1,101 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class AdminsyncPrincipalResponse(object): - - """Implementation of the 'AdminsyncPrincipalResponse' model. - - TODO: type model description here. - - Attributes: - users_added (list of string): Username of list of users added - users_deleted (list of string): Username of list of users deleted - users_updated (list of string): Username of list of users updated - groups_added (list of string): Group name of list of groups added - groups_deleted (list of string): Group name of list of groups deleted - groups_updated (list of string): Group name of list of groups updated - - """ - - # Create a mapping from Model property names to API property names - _names = { - "users_added": 'usersAdded', - "users_deleted": 'usersDeleted', - "users_updated": 'usersUpdated', - "groups_added": 'groupsAdded', - "groups_deleted": 'groupsDeleted', - "groups_updated": 'groupsUpdated' - } - - _optionals = [ - 'users_added', - 'users_deleted', - 'users_updated', - 'groups_added', - 'groups_deleted', - 'groups_updated', - ] - - def __init__(self, - users_added=APIHelper.SKIP, - users_deleted=APIHelper.SKIP, - users_updated=APIHelper.SKIP, - groups_added=APIHelper.SKIP, - groups_deleted=APIHelper.SKIP, - groups_updated=APIHelper.SKIP): - """Constructor for the AdminsyncPrincipalResponse class""" - - # Initialize members of the class - if users_added is not APIHelper.SKIP: - self.users_added = users_added - if users_deleted is not APIHelper.SKIP: - self.users_deleted = users_deleted - if users_updated is not APIHelper.SKIP: - self.users_updated = users_updated - if groups_added is not APIHelper.SKIP: - self.groups_added = groups_added - if groups_deleted is not APIHelper.SKIP: - self.groups_deleted = groups_deleted - if groups_updated is not APIHelper.SKIP: - self.groups_updated = groups_updated - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - users_added = dictionary.get("usersAdded") if dictionary.get("usersAdded") else APIHelper.SKIP - users_deleted = dictionary.get("usersDeleted") if dictionary.get("usersDeleted") else APIHelper.SKIP - users_updated = dictionary.get("usersUpdated") if dictionary.get("usersUpdated") else APIHelper.SKIP - groups_added = dictionary.get("groupsAdded") if dictionary.get("groupsAdded") else APIHelper.SKIP - groups_deleted = dictionary.get("groupsDeleted") if dictionary.get("groupsDeleted") else APIHelper.SKIP - groups_updated = dictionary.get("groupsUpdated") if dictionary.get("groupsUpdated") else APIHelper.SKIP - # Return an object of this model - return cls(users_added, - users_deleted, - users_updated, - groups_added, - groups_deleted, - groups_updated) diff --git a/Python/thoughtspotpublicrestapi/models/answer_query_response.py b/Python/thoughtspotpublicrestapi/models/answer_query_response.py deleted file mode 100644 index 7c70e382e..000000000 --- a/Python/thoughtspotpublicrestapi/models/answer_query_response.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class AnswerQueryResponse(object): - - """Implementation of the 'AnswerQueryResponse' model. - - TODO: type model description here. - - Attributes: - name (string): The name of the saved Answer - id (string): The GUID of the saved Answer - query_sql (string): SQL query associated with the saved Answer - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "query_sql": 'querySql' - } - - _optionals = [ - 'name', - 'id', - 'query_sql', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - query_sql=APIHelper.SKIP): - """Constructor for the AnswerQueryResponse class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if query_sql is not APIHelper.SKIP: - self.query_sql = query_sql - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - query_sql = dictionary.get("querySql") if dictionary.get("querySql") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - query_sql) diff --git a/Python/thoughtspotpublicrestapi/models/client_state.py b/Python/thoughtspotpublicrestapi/models/client_state.py deleted file mode 100644 index 74eb67d5a..000000000 --- a/Python/thoughtspotpublicrestapi/models/client_state.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class ClientState(object): - - """Implementation of the 'ClientState' model. - - TODO: type model description here. - - Attributes: - color (string): Color assigned to the tag - - """ - - # Create a mapping from Model property names to API property names - _names = { - "color": 'color' - } - - _optionals = [ - 'color', - ] - - def __init__(self, - color=APIHelper.SKIP): - """Constructor for the ClientState class""" - - # Initialize members of the class - if color is not APIHelper.SKIP: - self.color = color - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - color = dictionary.get("color") if dictionary.get("color") else APIHelper.SKIP - # Return an object of this model - return cls(color) diff --git a/Python/thoughtspotpublicrestapi/models/columns_input.py b/Python/thoughtspotpublicrestapi/models/columns_input.py deleted file mode 100644 index 5968379f1..000000000 --- a/Python/thoughtspotpublicrestapi/models/columns_input.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class ColumnsInput(object): - - """Implementation of the 'ColumnsInput' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the column - data_type (string): Datatype of the column - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "data_type": 'dataType' - } - - def __init__(self, - name=None, - data_type=None): - """Constructor for the ColumnsInput class""" - - # Initialize members of the class - self.name = name - self.data_type = data_type - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else None - data_type = dictionary.get("dataType") if dictionary.get("dataType") else None - # Return an object of this model - return cls(name, - data_type) diff --git a/Python/thoughtspotpublicrestapi/models/connection_column.py b/Python/thoughtspotpublicrestapi/models/connection_column.py deleted file mode 100644 index 7fa439e02..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_column.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.table_columns import TableColumns - - -class ConnectionColumn(object): - - """Implementation of the 'ConnectionColumn' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the table - mtype (string): Type of the Table - column (list of TableColumns): List of columns in the table - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "mtype": 'type', - "column": 'column' - } - - _optionals = [ - 'name', - 'mtype', - 'column', - ] - - def __init__(self, - name=APIHelper.SKIP, - mtype=APIHelper.SKIP, - column=APIHelper.SKIP): - """Constructor for the ConnectionColumn class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if column is not APIHelper.SKIP: - self.column = column - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - column = None - if dictionary.get('column') is not None: - column = [TableColumns.from_dictionary(x) for x in dictionary.get('column')] - else: - column = APIHelper.SKIP - # Return an object of this model - return cls(name, - mtype, - column) diff --git a/Python/thoughtspotpublicrestapi/models/connection_columns_shema.py b/Python/thoughtspotpublicrestapi/models/connection_columns_shema.py deleted file mode 100644 index 35565f124..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_columns_shema.py +++ /dev/null @@ -1,90 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.table_columns import TableColumns - - -class ConnectionColumnsShema(object): - - """Implementation of the 'ConnectionColumnsShema' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the table - db_name (string): Name of the database - schema_name (string): Name of the schema - columns (list of TableColumns): List of columns in the table - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "db_name": 'dbName', - "schema_name": 'schemaName', - "columns": 'columns' - } - - _optionals = [ - 'name', - 'db_name', - 'schema_name', - 'columns', - ] - - def __init__(self, - name=APIHelper.SKIP, - db_name=APIHelper.SKIP, - schema_name=APIHelper.SKIP, - columns=APIHelper.SKIP): - """Constructor for the ConnectionColumnsShema class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if db_name is not APIHelper.SKIP: - self.db_name = db_name - if schema_name is not APIHelper.SKIP: - self.schema_name = schema_name - if columns is not APIHelper.SKIP: - self.columns = columns - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - db_name = dictionary.get("dbName") if dictionary.get("dbName") else APIHelper.SKIP - schema_name = dictionary.get("schemaName") if dictionary.get("schemaName") else APIHelper.SKIP - columns = None - if dictionary.get('columns') is not None: - columns = [TableColumns.from_dictionary(x) for x in dictionary.get('columns')] - else: - columns = APIHelper.SKIP - # Return an object of this model - return cls(name, - db_name, - schema_name, - columns) diff --git a/Python/thoughtspotpublicrestapi/models/connection_database_type.py b/Python/thoughtspotpublicrestapi/models/connection_database_type.py deleted file mode 100644 index 2b97e9603..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_database_type.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.connection_table_schema import ConnectionTableSchema - - -class ConnectionDatabaseType(object): - - """Implementation of the 'ConnectionDatabaseType' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the database - schema (list of ConnectionTableSchema): List of schemas - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "schema": 'schema' - } - - _optionals = [ - 'name', - 'schema', - ] - - def __init__(self, - name=APIHelper.SKIP, - schema=APIHelper.SKIP): - """Constructor for the ConnectionDatabaseType class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if schema is not APIHelper.SKIP: - self.schema = schema - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - schema = None - if dictionary.get('schema') is not None: - schema = [ConnectionTableSchema.from_dictionary(x) for x in dictionary.get('schema')] - else: - schema = APIHelper.SKIP - # Return an object of this model - return cls(name, - schema) diff --git a/Python/thoughtspotpublicrestapi/models/connection_response.py b/Python/thoughtspotpublicrestapi/models/connection_response.py deleted file mode 100644 index 30d73992b..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_response.py +++ /dev/null @@ -1,232 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.table_list import TableList -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class ConnectionResponse(object): - - """Implementation of the 'ConnectionResponse' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the connection - description (string): Description associated with the connection - mtype (string): Type of the connection. The database associated with - this type can be obtained from the response returned by the - /tspublic/rest/v2/connection/types API endpoint. - id (string): GUID of the connection - scheduled (bool): Indicates if the data sync is scheduled for this - connection - connection_type (string): TODO: type description here. - configuration (string): Configuration properties of the connection - is_external (bool): TODO: type description here. - is_deprecated (bool): Indicates if the connection is deprecated - is_deleted (bool): Indicates if the connection is deleted - is_hidden (bool): Indicates if the connection is hideen - complete (bool): Indicates if the all the properties of connection is - provided - index_version (float): TODO: type description here. - generation_num (float): TODO: type description here. - created (string): Date and time when the connection was created - modified (string): Date and time of last modification of the - connection - author (UserNameAndID): TODO: type description here. - modified_by (UserNameAndID): TODO: type description here. - owner (UserNameAndID): TODO: type description here. - tags (list of string): List of tags assigned to the connection - tables (list of TableList): List of tables linked to this connection - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "description": 'description', - "mtype": 'type', - "id": 'id', - "scheduled": 'scheduled', - "connection_type": 'connectionType', - "configuration": 'configuration', - "is_external": 'isExternal', - "is_deprecated": 'isDeprecated', - "is_deleted": 'isDeleted', - "is_hidden": 'isHidden', - "complete": 'complete', - "index_version": 'indexVersion', - "generation_num": 'generationNum', - "created": 'created', - "modified": 'modified', - "author": 'author', - "modified_by": 'modifiedBy', - "owner": 'owner', - "tags": 'tags', - "tables": 'tables' - } - - _optionals = [ - 'name', - 'description', - 'mtype', - 'id', - 'scheduled', - 'connection_type', - 'configuration', - 'is_external', - 'is_deprecated', - 'is_deleted', - 'is_hidden', - 'complete', - 'index_version', - 'generation_num', - 'created', - 'modified', - 'author', - 'modified_by', - 'owner', - 'tags', - 'tables', - ] - - def __init__(self, - name=APIHelper.SKIP, - description=APIHelper.SKIP, - mtype=APIHelper.SKIP, - id=APIHelper.SKIP, - scheduled=APIHelper.SKIP, - connection_type=APIHelper.SKIP, - configuration=APIHelper.SKIP, - is_external=APIHelper.SKIP, - is_deprecated=APIHelper.SKIP, - is_deleted=APIHelper.SKIP, - is_hidden=APIHelper.SKIP, - complete=APIHelper.SKIP, - index_version=APIHelper.SKIP, - generation_num=APIHelper.SKIP, - created=APIHelper.SKIP, - modified=APIHelper.SKIP, - author=APIHelper.SKIP, - modified_by=APIHelper.SKIP, - owner=APIHelper.SKIP, - tags=APIHelper.SKIP, - tables=APIHelper.SKIP): - """Constructor for the ConnectionResponse class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if description is not APIHelper.SKIP: - self.description = description - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if id is not APIHelper.SKIP: - self.id = id - if scheduled is not APIHelper.SKIP: - self.scheduled = scheduled - if connection_type is not APIHelper.SKIP: - self.connection_type = connection_type - if configuration is not APIHelper.SKIP: - self.configuration = configuration - if is_external is not APIHelper.SKIP: - self.is_external = is_external - if is_deprecated is not APIHelper.SKIP: - self.is_deprecated = is_deprecated - if is_deleted is not APIHelper.SKIP: - self.is_deleted = is_deleted - if is_hidden is not APIHelper.SKIP: - self.is_hidden = is_hidden - if complete is not APIHelper.SKIP: - self.complete = complete - if index_version is not APIHelper.SKIP: - self.index_version = index_version - if generation_num is not APIHelper.SKIP: - self.generation_num = generation_num - if created is not APIHelper.SKIP: - self.created = created - if modified is not APIHelper.SKIP: - self.modified = modified - if author is not APIHelper.SKIP: - self.author = author - if modified_by is not APIHelper.SKIP: - self.modified_by = modified_by - if owner is not APIHelper.SKIP: - self.owner = owner - if tags is not APIHelper.SKIP: - self.tags = tags - if tables is not APIHelper.SKIP: - self.tables = tables - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - scheduled = dictionary.get("scheduled") if "scheduled" in dictionary.keys() else APIHelper.SKIP - connection_type = dictionary.get("connectionType") if dictionary.get("connectionType") else APIHelper.SKIP - configuration = dictionary.get("configuration") if dictionary.get("configuration") else APIHelper.SKIP - is_external = dictionary.get("isExternal") if "isExternal" in dictionary.keys() else APIHelper.SKIP - is_deprecated = dictionary.get("isDeprecated") if "isDeprecated" in dictionary.keys() else APIHelper.SKIP - is_deleted = dictionary.get("isDeleted") if "isDeleted" in dictionary.keys() else APIHelper.SKIP - is_hidden = dictionary.get("isHidden") if "isHidden" in dictionary.keys() else APIHelper.SKIP - complete = dictionary.get("complete") if "complete" in dictionary.keys() else APIHelper.SKIP - index_version = dictionary.get("indexVersion") if dictionary.get("indexVersion") else APIHelper.SKIP - generation_num = dictionary.get("generationNum") if dictionary.get("generationNum") else APIHelper.SKIP - created = dictionary.get("created") if dictionary.get("created") else APIHelper.SKIP - modified = dictionary.get("modified") if dictionary.get("modified") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - modified_by = UserNameAndID.from_dictionary(dictionary.get('modifiedBy')) if 'modifiedBy' in dictionary.keys() else APIHelper.SKIP - owner = UserNameAndID.from_dictionary(dictionary.get('owner')) if 'owner' in dictionary.keys() else APIHelper.SKIP - tags = dictionary.get("tags") if dictionary.get("tags") else APIHelper.SKIP - tables = None - if dictionary.get('tables') is not None: - tables = [TableList.from_dictionary(x) for x in dictionary.get('tables')] - else: - tables = APIHelper.SKIP - # Return an object of this model - return cls(name, - description, - mtype, - id, - scheduled, - connection_type, - configuration, - is_external, - is_deprecated, - is_deleted, - is_hidden, - complete, - index_version, - generation_num, - created, - modified, - author, - modified_by, - owner, - tags, - tables) diff --git a/Python/thoughtspotpublicrestapi/models/connection_table_columns_input.py b/Python/thoughtspotpublicrestapi/models/connection_table_columns_input.py deleted file mode 100644 index ecf4ebf3a..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_table_columns_input.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class ConnectionTableColumnsInput(object): - - """Implementation of the 'ConnectionTableColumnsInput' model. - - TODO: type model description here. - - Attributes: - db_name (string): Name of the database - schema_name (string): Name of the schema - name (string): Name of the table - - """ - - # Create a mapping from Model property names to API property names - _names = { - "db_name": 'dbName', - "schema_name": 'schemaName', - "name": 'name' - } - - def __init__(self, - db_name=None, - schema_name=None, - name=None): - """Constructor for the ConnectionTableColumnsInput class""" - - # Initialize members of the class - self.db_name = db_name - self.schema_name = schema_name - self.name = name - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - db_name = dictionary.get("dbName") if dictionary.get("dbName") else None - schema_name = dictionary.get("schemaName") if dictionary.get("schemaName") else None - name = dictionary.get("name") if dictionary.get("name") else None - # Return an object of this model - return cls(db_name, - schema_name, - name) diff --git a/Python/thoughtspotpublicrestapi/models/connection_table_columns_response.py b/Python/thoughtspotpublicrestapi/models/connection_table_columns_response.py deleted file mode 100644 index 0d4e4893f..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_table_columns_response.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.connection_columns_shema import ConnectionColumnsShema - - -class ConnectionTableColumnsResponse(object): - - """Implementation of the 'ConnectionTableColumnsResponse' model. - - TODO: type model description here. - - Attributes: - id (string): Connection id - table (list of ConnectionColumnsShema): List of table details - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "table": 'table' - } - - _optionals = [ - 'id', - 'table', - ] - - def __init__(self, - id=APIHelper.SKIP, - table=APIHelper.SKIP): - """Constructor for the ConnectionTableColumnsResponse class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if table is not APIHelper.SKIP: - self.table = table - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - table = None - if dictionary.get('table') is not None: - table = [ConnectionColumnsShema.from_dictionary(x) for x in dictionary.get('table')] - else: - table = APIHelper.SKIP - # Return an object of this model - return cls(id, - table) diff --git a/Python/thoughtspotpublicrestapi/models/connection_table_response.py b/Python/thoughtspotpublicrestapi/models/connection_table_response.py deleted file mode 100644 index 80d78ecaa..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_table_response.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.connection_database_type import ConnectionDatabaseType - - -class ConnectionTableResponse(object): - - """Implementation of the 'ConnectionTableResponse' model. - - TODO: type model description here. - - Attributes: - id (string): Connection id - database (list of ConnectionDatabaseType): List of databases - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "database": 'database' - } - - _optionals = [ - 'id', - 'database', - ] - - def __init__(self, - id=APIHelper.SKIP, - database=APIHelper.SKIP): - """Constructor for the ConnectionTableResponse class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if database is not APIHelper.SKIP: - self.database = database - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - database = None - if dictionary.get('database') is not None: - database = [ConnectionDatabaseType.from_dictionary(x) for x in dictionary.get('database')] - else: - database = APIHelper.SKIP - # Return an object of this model - return cls(id, - database) diff --git a/Python/thoughtspotpublicrestapi/models/connection_table_schema.py b/Python/thoughtspotpublicrestapi/models/connection_table_schema.py deleted file mode 100644 index 8e4871831..000000000 --- a/Python/thoughtspotpublicrestapi/models/connection_table_schema.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.connection_column import ConnectionColumn - - -class ConnectionTableSchema(object): - - """Implementation of the 'ConnectionTableSchema' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the schema - table (list of ConnectionColumn): List of table details - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "table": 'table' - } - - _optionals = [ - 'name', - 'table', - ] - - def __init__(self, - name=APIHelper.SKIP, - table=APIHelper.SKIP): - """Constructor for the ConnectionTableSchema class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if table is not APIHelper.SKIP: - self.table = table - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - table = None - if dictionary.get('table') is not None: - table = [ConnectionColumn.from_dictionary(x) for x in dictionary.get('table')] - else: - table = APIHelper.SKIP - # Return an object of this model - return cls(name, - table) diff --git a/Python/thoughtspotpublicrestapi/models/create_connection_response.py b/Python/thoughtspotpublicrestapi/models/create_connection_response.py deleted file mode 100644 index 111adfbda..000000000 --- a/Python/thoughtspotpublicrestapi/models/create_connection_response.py +++ /dev/null @@ -1,227 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class CreateConnectionResponse(object): - - """Implementation of the 'CreateConnectionResponse' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the connection - description (string): Description associated with the connection - mtype (string): Type of the connection. The database associated with - this type can be obtained from the response returned by the - /tspublic/rest/v2/connection/types API endpoint. - id (string): GUID of the connection - scheduled (bool): Indicates if the data sync is scheduled for this - connection - connection_type (string): TODO: type description here. - configuration (string): Configuration properties of the connection - is_external (bool): TODO: type description here. - is_deprecated (bool): Indicates if the connection is deprecated - is_deleted (bool): Indicates if the connection is deleted - is_hidden (bool): Indicates if the connection is hideen - complete (bool): Indicates if the all the properties of connection is - provided - index_version (float): TODO: type description here. - generation_num (float): TODO: type description here. - created (string): Date and time when user account was created - modified (string): Date and time of last modification of user account - author (UserNameAndID): TODO: type description here. - modified_by (UserNameAndID): TODO: type description here. - owner (UserNameAndID): TODO: type description here. - tags (list of string): List of tags assigned to the connection - tables (list of string): List of tables linked to this connection and - details of the columns in the table - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "description": 'description', - "mtype": 'type', - "id": 'id', - "scheduled": 'scheduled', - "connection_type": 'connectionType', - "configuration": 'configuration', - "is_external": 'isExternal', - "is_deprecated": 'isDeprecated', - "is_deleted": 'isDeleted', - "is_hidden": 'isHidden', - "complete": 'complete', - "index_version": 'indexVersion', - "generation_num": 'generationNum', - "created": 'created', - "modified": 'modified', - "author": 'author', - "modified_by": 'modifiedBy', - "owner": 'owner', - "tags": 'tags', - "tables": 'tables' - } - - _optionals = [ - 'name', - 'description', - 'mtype', - 'id', - 'scheduled', - 'connection_type', - 'configuration', - 'is_external', - 'is_deprecated', - 'is_deleted', - 'is_hidden', - 'complete', - 'index_version', - 'generation_num', - 'created', - 'modified', - 'author', - 'modified_by', - 'owner', - 'tags', - 'tables', - ] - - def __init__(self, - name=APIHelper.SKIP, - description=APIHelper.SKIP, - mtype=APIHelper.SKIP, - id=APIHelper.SKIP, - scheduled=APIHelper.SKIP, - connection_type=APIHelper.SKIP, - configuration=APIHelper.SKIP, - is_external=APIHelper.SKIP, - is_deprecated=APIHelper.SKIP, - is_deleted=APIHelper.SKIP, - is_hidden=APIHelper.SKIP, - complete=APIHelper.SKIP, - index_version=APIHelper.SKIP, - generation_num=APIHelper.SKIP, - created=APIHelper.SKIP, - modified=APIHelper.SKIP, - author=APIHelper.SKIP, - modified_by=APIHelper.SKIP, - owner=APIHelper.SKIP, - tags=APIHelper.SKIP, - tables=APIHelper.SKIP): - """Constructor for the CreateConnectionResponse class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if description is not APIHelper.SKIP: - self.description = description - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if id is not APIHelper.SKIP: - self.id = id - if scheduled is not APIHelper.SKIP: - self.scheduled = scheduled - if connection_type is not APIHelper.SKIP: - self.connection_type = connection_type - if configuration is not APIHelper.SKIP: - self.configuration = configuration - if is_external is not APIHelper.SKIP: - self.is_external = is_external - if is_deprecated is not APIHelper.SKIP: - self.is_deprecated = is_deprecated - if is_deleted is not APIHelper.SKIP: - self.is_deleted = is_deleted - if is_hidden is not APIHelper.SKIP: - self.is_hidden = is_hidden - if complete is not APIHelper.SKIP: - self.complete = complete - if index_version is not APIHelper.SKIP: - self.index_version = index_version - if generation_num is not APIHelper.SKIP: - self.generation_num = generation_num - if created is not APIHelper.SKIP: - self.created = created - if modified is not APIHelper.SKIP: - self.modified = modified - if author is not APIHelper.SKIP: - self.author = author - if modified_by is not APIHelper.SKIP: - self.modified_by = modified_by - if owner is not APIHelper.SKIP: - self.owner = owner - if tags is not APIHelper.SKIP: - self.tags = tags - if tables is not APIHelper.SKIP: - self.tables = tables - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - scheduled = dictionary.get("scheduled") if "scheduled" in dictionary.keys() else APIHelper.SKIP - connection_type = dictionary.get("connectionType") if dictionary.get("connectionType") else APIHelper.SKIP - configuration = dictionary.get("configuration") if dictionary.get("configuration") else APIHelper.SKIP - is_external = dictionary.get("isExternal") if "isExternal" in dictionary.keys() else APIHelper.SKIP - is_deprecated = dictionary.get("isDeprecated") if "isDeprecated" in dictionary.keys() else APIHelper.SKIP - is_deleted = dictionary.get("isDeleted") if "isDeleted" in dictionary.keys() else APIHelper.SKIP - is_hidden = dictionary.get("isHidden") if "isHidden" in dictionary.keys() else APIHelper.SKIP - complete = dictionary.get("complete") if "complete" in dictionary.keys() else APIHelper.SKIP - index_version = dictionary.get("indexVersion") if dictionary.get("indexVersion") else APIHelper.SKIP - generation_num = dictionary.get("generationNum") if dictionary.get("generationNum") else APIHelper.SKIP - created = dictionary.get("created") if dictionary.get("created") else APIHelper.SKIP - modified = dictionary.get("modified") if dictionary.get("modified") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - modified_by = UserNameAndID.from_dictionary(dictionary.get('modifiedBy')) if 'modifiedBy' in dictionary.keys() else APIHelper.SKIP - owner = UserNameAndID.from_dictionary(dictionary.get('owner')) if 'owner' in dictionary.keys() else APIHelper.SKIP - tags = dictionary.get("tags") if dictionary.get("tags") else APIHelper.SKIP - tables = dictionary.get("tables") if dictionary.get("tables") else APIHelper.SKIP - # Return an object of this model - return cls(name, - description, - mtype, - id, - scheduled, - connection_type, - configuration, - is_external, - is_deprecated, - is_deleted, - is_hidden, - complete, - index_version, - generation_num, - created, - modified, - author, - modified_by, - owner, - tags, - tables) diff --git a/Python/thoughtspotpublicrestapi/models/create_table_response.py b/Python/thoughtspotpublicrestapi/models/create_table_response.py deleted file mode 100644 index ba84ae955..000000000 --- a/Python/thoughtspotpublicrestapi/models/create_table_response.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.logical_table_header import LogicalTableHeader - - -class CreateTableResponse(object): - - """Implementation of the 'CreateTableResponse' model. - - TODO: type model description here. - - Attributes: - logical_table_header (LogicalTableHeader): TODO: type description - here. - physical_table_id (string): TODO: type description here. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "logical_table_header": 'logicalTableHeader', - "physical_table_id": 'physicalTableId' - } - - _optionals = [ - 'logical_table_header', - 'physical_table_id', - ] - - def __init__(self, - logical_table_header=APIHelper.SKIP, - physical_table_id=APIHelper.SKIP): - """Constructor for the CreateTableResponse class""" - - # Initialize members of the class - if logical_table_header is not APIHelper.SKIP: - self.logical_table_header = logical_table_header - if physical_table_id is not APIHelper.SKIP: - self.physical_table_id = physical_table_id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - logical_table_header = LogicalTableHeader.from_dictionary(dictionary.get('logicalTableHeader')) if 'logicalTableHeader' in dictionary.keys() else APIHelper.SKIP - physical_table_id = dictionary.get("physicalTableId") if dictionary.get("physicalTableId") else APIHelper.SKIP - # Return an object of this model - return cls(logical_table_header, - physical_table_id) diff --git a/Python/thoughtspotpublicrestapi/models/dependent_permission.py b/Python/thoughtspotpublicrestapi/models/dependent_permission.py deleted file mode 100644 index 8df0e4cbc..000000000 --- a/Python/thoughtspotpublicrestapi/models/dependent_permission.py +++ /dev/null @@ -1,111 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_permission import GroupPermission - - -class DependentPermission(object): - - """Implementation of the 'DependentPermission' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the object - name (string): Name of the object - mtype (string): Indicates the type of the object - permission (string): Indicates the permission which user or user group - has on the object - shared_permission (string): Indicates the permission which user or - user group has on the object through sharing of the object with - this user or user group - group_permission (list of GroupPermission): An array of object with - details of permission on the user groups to which the user or user - group belongs - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "mtype": 'type', - "permission": 'permission', - "shared_permission": 'sharedPermission', - "group_permission": 'groupPermission' - } - - _optionals = [ - 'id', - 'name', - 'mtype', - 'permission', - 'shared_permission', - 'group_permission', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - mtype=APIHelper.SKIP, - permission=APIHelper.SKIP, - shared_permission=APIHelper.SKIP, - group_permission=APIHelper.SKIP): - """Constructor for the DependentPermission class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if permission is not APIHelper.SKIP: - self.permission = permission - if shared_permission is not APIHelper.SKIP: - self.shared_permission = shared_permission - if group_permission is not APIHelper.SKIP: - self.group_permission = group_permission - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - permission = dictionary.get("permission") if dictionary.get("permission") else APIHelper.SKIP - shared_permission = dictionary.get("sharedPermission") if dictionary.get("sharedPermission") else APIHelper.SKIP - group_permission = None - if dictionary.get('groupPermission') is not None: - group_permission = [GroupPermission.from_dictionary(x) for x in dictionary.get('groupPermission')] - else: - group_permission = APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - mtype, - permission, - shared_permission, - group_permission) diff --git a/Python/thoughtspotpublicrestapi/models/format_type_3_enum.py b/Python/thoughtspotpublicrestapi/models/format_type_3_enum.py deleted file mode 100644 index 979e21742..000000000 --- a/Python/thoughtspotpublicrestapi/models/format_type_3_enum.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class FormatType3Enum(object): - - """Implementation of the 'FormatType3' enum. - - The format in which to export the objects - - Attributes: - YAML: TODO: type description here. - JSON: TODO: type description here. - - """ - - YAML = 'YAML' - - JSON = 'JSON' diff --git a/Python/thoughtspotpublicrestapi/models/format_type_enum.py b/Python/thoughtspotpublicrestapi/models/format_type_enum.py deleted file mode 100644 index a98b7ba0d..000000000 --- a/Python/thoughtspotpublicrestapi/models/format_type_enum.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class FormatTypeEnum(object): - - """Implementation of the 'FormatType' enum. - - The format of the data in the response. - FULL: The response comes in "column":"value" format. - COMPACT: The response includes only the value of the columns. - - Attributes: - COMPACT: TODO: type description here. - FULL: TODO: type description here. - - """ - - COMPACT = 'COMPACT' - - FULL = 'FULL' diff --git a/Python/thoughtspotpublicrestapi/models/from_user_name_and_id_input.py b/Python/thoughtspotpublicrestapi/models/from_user_name_and_id_input.py deleted file mode 100644 index d0ee6a763..000000000 --- a/Python/thoughtspotpublicrestapi/models/from_user_name_and_id_input.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class FromUserNameAndIDInput(object): - - """Implementation of the 'FromUserNameAndIDInput' model. - - A JSON object of name or GUIDs of the current owner of the objects. When - both are given then id is considered. - If a list of object ids are provided as input for TsObjectId, then only - for those ids that have owner as the value provided in fromUser, the owner - will be changed. - Provide either name or id as input. When both are given user id will be - considered. - - Attributes: - name (string): Username of the user - id (string): GUID of the user - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the FromUserNameAndIDInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/group_name_and_id.py b/Python/thoughtspotpublicrestapi/models/group_name_and_id.py deleted file mode 100644 index 893bca1bd..000000000 --- a/Python/thoughtspotpublicrestapi/models/group_name_and_id.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class GroupNameAndID(object): - - """Implementation of the 'GroupNameAndID' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): GUID of the group - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the GroupNameAndID class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/group_name_and_id_input.py b/Python/thoughtspotpublicrestapi/models/group_name_and_id_input.py deleted file mode 100644 index c2444487d..000000000 --- a/Python/thoughtspotpublicrestapi/models/group_name_and_id_input.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class GroupNameAndIDInput(object): - - """Implementation of the 'GroupNameAndIDInput' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): GUID of the group - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the GroupNameAndIDInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/group_permission.py b/Python/thoughtspotpublicrestapi/models/group_permission.py deleted file mode 100644 index da6afb88a..000000000 --- a/Python/thoughtspotpublicrestapi/models/group_permission.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class GroupPermission(object): - - """Implementation of the 'GroupPermission' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the user group - name (string): Name of the user group - permission (string): Indicates the permission which user group has on - the object - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "permission": 'permission' - } - - _optionals = [ - 'id', - 'name', - 'permission', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - permission=APIHelper.SKIP): - """Constructor for the GroupPermission class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if permission is not APIHelper.SKIP: - self.permission = permission - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - permission = dictionary.get("permission") if dictionary.get("permission") else APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - permission) diff --git a/Python/thoughtspotpublicrestapi/models/group_response.py b/Python/thoughtspotpublicrestapi/models/group_response.py deleted file mode 100644 index d91bc5bb3..000000000 --- a/Python/thoughtspotpublicrestapi/models/group_response.py +++ /dev/null @@ -1,317 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id import GroupNameAndID -from thoughtspotpublicrestapi.models.liveboard_name_and_id import LiveboardNameAndID -from thoughtspotpublicrestapi.models.org_type import OrgType -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class GroupResponse(object): - - """Implementation of the 'GroupResponse' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - display_name (string): A unique display name string for the user - group - id (string): GUID of the group - visibility (string): Visibility of the group - description (string): Description of the group - privileges (list of string): Privileges assigned to the group - orgs (list of OrgType): The organizations that user belongs to - groups (list of GroupNameAndID): Name of the group to which is added - users (list of UserNameAndID): User Group Information by Id or Name. - assigned_liveboards (list of LiveboardNameAndID): Liveboards assigned - to the group - user_group_content (object): TODO: type description here. - tags (list of string): Tags assigned to the group - is_deleted (bool): Indicates if the group is deleted - is_hidden (bool): Indicates if the group is hidden - is_external (bool): Indicates if the group is from external system - is_deprecated (bool): TODO: type description here. - complete (bool): Indicates if the all the properties of group is - provided - is_system_principal (bool): Indicates if the group is system - principal - mtype (string): Indicates the type of group - parenttype (string): Indicates the type of parent object - group_idx (int): TODO: type description here. - metadata_version (int): TODO: type description here. - tenant_id (string): Tenant id associated with the group - index_version (float): TODO: type description here. - generation_num (float): TODO: type description here. - created (float): Date and time when group was created - modified (float): Date and time of last modification of the group - author (UserNameAndID): TODO: type description here. - modified_by (UserNameAndID): TODO: type description here. - owner (UserNameAndID): TODO: type description here. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "display_name": 'displayName', - "id": 'id', - "visibility": 'visibility', - "description": 'description', - "privileges": 'privileges', - "orgs": 'orgs', - "groups": 'groups', - "users": 'users', - "assigned_liveboards": 'assignedLiveboards', - "user_group_content": 'userGroupContent', - "tags": 'tags', - "is_deleted": 'isDeleted', - "is_hidden": 'isHidden', - "is_external": 'isExternal', - "is_deprecated": 'isDeprecated', - "complete": 'complete', - "is_system_principal": 'isSystemPrincipal', - "mtype": 'type', - "parenttype": 'parenttype', - "group_idx": 'groupIdx', - "metadata_version": 'metadataVersion', - "tenant_id": 'tenantId', - "index_version": 'indexVersion', - "generation_num": 'generationNum', - "created": 'created', - "modified": 'modified', - "author": 'author', - "modified_by": 'modifiedBy', - "owner": 'owner' - } - - _optionals = [ - 'name', - 'display_name', - 'id', - 'visibility', - 'description', - 'privileges', - 'orgs', - 'groups', - 'users', - 'assigned_liveboards', - 'user_group_content', - 'tags', - 'is_deleted', - 'is_hidden', - 'is_external', - 'is_deprecated', - 'complete', - 'is_system_principal', - 'mtype', - 'parenttype', - 'group_idx', - 'metadata_version', - 'tenant_id', - 'index_version', - 'generation_num', - 'created', - 'modified', - 'author', - 'modified_by', - 'owner', - ] - - def __init__(self, - name=APIHelper.SKIP, - display_name=APIHelper.SKIP, - id=APIHelper.SKIP, - visibility=APIHelper.SKIP, - description=APIHelper.SKIP, - privileges=APIHelper.SKIP, - orgs=APIHelper.SKIP, - groups=APIHelper.SKIP, - users=APIHelper.SKIP, - assigned_liveboards=APIHelper.SKIP, - user_group_content=APIHelper.SKIP, - tags=APIHelper.SKIP, - is_deleted=APIHelper.SKIP, - is_hidden=APIHelper.SKIP, - is_external=APIHelper.SKIP, - is_deprecated=APIHelper.SKIP, - complete=APIHelper.SKIP, - is_system_principal=APIHelper.SKIP, - mtype=APIHelper.SKIP, - parenttype=APIHelper.SKIP, - group_idx=APIHelper.SKIP, - metadata_version=APIHelper.SKIP, - tenant_id=APIHelper.SKIP, - index_version=APIHelper.SKIP, - generation_num=APIHelper.SKIP, - created=APIHelper.SKIP, - modified=APIHelper.SKIP, - author=APIHelper.SKIP, - modified_by=APIHelper.SKIP, - owner=APIHelper.SKIP): - """Constructor for the GroupResponse class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if display_name is not APIHelper.SKIP: - self.display_name = display_name - if id is not APIHelper.SKIP: - self.id = id - if visibility is not APIHelper.SKIP: - self.visibility = visibility - if description is not APIHelper.SKIP: - self.description = description - if privileges is not APIHelper.SKIP: - self.privileges = privileges - if orgs is not APIHelper.SKIP: - self.orgs = orgs - if groups is not APIHelper.SKIP: - self.groups = groups - if users is not APIHelper.SKIP: - self.users = users - if assigned_liveboards is not APIHelper.SKIP: - self.assigned_liveboards = assigned_liveboards - if user_group_content is not APIHelper.SKIP: - self.user_group_content = user_group_content - if tags is not APIHelper.SKIP: - self.tags = tags - if is_deleted is not APIHelper.SKIP: - self.is_deleted = is_deleted - if is_hidden is not APIHelper.SKIP: - self.is_hidden = is_hidden - if is_external is not APIHelper.SKIP: - self.is_external = is_external - if is_deprecated is not APIHelper.SKIP: - self.is_deprecated = is_deprecated - if complete is not APIHelper.SKIP: - self.complete = complete - if is_system_principal is not APIHelper.SKIP: - self.is_system_principal = is_system_principal - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if parenttype is not APIHelper.SKIP: - self.parenttype = parenttype - if group_idx is not APIHelper.SKIP: - self.group_idx = group_idx - if metadata_version is not APIHelper.SKIP: - self.metadata_version = metadata_version - if tenant_id is not APIHelper.SKIP: - self.tenant_id = tenant_id - if index_version is not APIHelper.SKIP: - self.index_version = index_version - if generation_num is not APIHelper.SKIP: - self.generation_num = generation_num - if created is not APIHelper.SKIP: - self.created = created - if modified is not APIHelper.SKIP: - self.modified = modified - if author is not APIHelper.SKIP: - self.author = author - if modified_by is not APIHelper.SKIP: - self.modified_by = modified_by - if owner is not APIHelper.SKIP: - self.owner = owner - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - display_name = dictionary.get("displayName") if dictionary.get("displayName") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - visibility = dictionary.get("visibility") if dictionary.get("visibility") else APIHelper.SKIP - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - orgs = None - if dictionary.get('orgs') is not None: - orgs = [OrgType.from_dictionary(x) for x in dictionary.get('orgs')] - else: - orgs = APIHelper.SKIP - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndID.from_dictionary(x) for x in dictionary.get('groups')] - else: - groups = APIHelper.SKIP - users = None - if dictionary.get('users') is not None: - users = [UserNameAndID.from_dictionary(x) for x in dictionary.get('users')] - else: - users = APIHelper.SKIP - assigned_liveboards = None - if dictionary.get('assignedLiveboards') is not None: - assigned_liveboards = [LiveboardNameAndID.from_dictionary(x) for x in dictionary.get('assignedLiveboards')] - else: - assigned_liveboards = APIHelper.SKIP - user_group_content = dictionary.get("userGroupContent") if dictionary.get("userGroupContent") else APIHelper.SKIP - tags = dictionary.get("tags") if dictionary.get("tags") else APIHelper.SKIP - is_deleted = dictionary.get("isDeleted") if "isDeleted" in dictionary.keys() else APIHelper.SKIP - is_hidden = dictionary.get("isHidden") if "isHidden" in dictionary.keys() else APIHelper.SKIP - is_external = dictionary.get("isExternal") if "isExternal" in dictionary.keys() else APIHelper.SKIP - is_deprecated = dictionary.get("isDeprecated") if "isDeprecated" in dictionary.keys() else APIHelper.SKIP - complete = dictionary.get("complete") if "complete" in dictionary.keys() else APIHelper.SKIP - is_system_principal = dictionary.get("isSystemPrincipal") if "isSystemPrincipal" in dictionary.keys() else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - parenttype = dictionary.get("parenttype") if dictionary.get("parenttype") else APIHelper.SKIP - group_idx = dictionary.get("groupIdx") if dictionary.get("groupIdx") else APIHelper.SKIP - metadata_version = dictionary.get("metadataVersion") if dictionary.get("metadataVersion") else APIHelper.SKIP - tenant_id = dictionary.get("tenantId") if dictionary.get("tenantId") else APIHelper.SKIP - index_version = dictionary.get("indexVersion") if dictionary.get("indexVersion") else APIHelper.SKIP - generation_num = dictionary.get("generationNum") if dictionary.get("generationNum") else APIHelper.SKIP - created = dictionary.get("created") if dictionary.get("created") else APIHelper.SKIP - modified = dictionary.get("modified") if dictionary.get("modified") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - modified_by = UserNameAndID.from_dictionary(dictionary.get('modifiedBy')) if 'modifiedBy' in dictionary.keys() else APIHelper.SKIP - owner = UserNameAndID.from_dictionary(dictionary.get('owner')) if 'owner' in dictionary.keys() else APIHelper.SKIP - # Return an object of this model - return cls(name, - display_name, - id, - visibility, - description, - privileges, - orgs, - groups, - users, - assigned_liveboards, - user_group_content, - tags, - is_deleted, - is_hidden, - is_external, - is_deprecated, - complete, - is_system_principal, - mtype, - parenttype, - group_idx, - metadata_version, - tenant_id, - index_version, - generation_num, - created, - modified, - author, - modified_by, - owner) diff --git a/Python/thoughtspotpublicrestapi/models/home_liveboard_response.py b/Python/thoughtspotpublicrestapi/models/home_liveboard_response.py deleted file mode 100644 index 4d228bade..000000000 --- a/Python/thoughtspotpublicrestapi/models/home_liveboard_response.py +++ /dev/null @@ -1,85 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class HomeLiveboardResponse(object): - - """Implementation of the 'HomeLiveboardResponse' model. - - TODO: type model description here. - - Attributes: - user_name (string): Name of the user - user_id (string): The GUID of the user - liveboard_name (string): Name of the liveboard - liveboard_id (string): The GUID of the liveboard - - """ - - # Create a mapping from Model property names to API property names - _names = { - "user_name": 'userName', - "user_id": 'userId', - "liveboard_name": 'liveboardName', - "liveboard_id": 'liveboardId' - } - - _optionals = [ - 'user_name', - 'user_id', - 'liveboard_name', - 'liveboard_id', - ] - - def __init__(self, - user_name=APIHelper.SKIP, - user_id=APIHelper.SKIP, - liveboard_name=APIHelper.SKIP, - liveboard_id=APIHelper.SKIP): - """Constructor for the HomeLiveboardResponse class""" - - # Initialize members of the class - if user_name is not APIHelper.SKIP: - self.user_name = user_name - if user_id is not APIHelper.SKIP: - self.user_id = user_id - if liveboard_name is not APIHelper.SKIP: - self.liveboard_name = liveboard_name - if liveboard_id is not APIHelper.SKIP: - self.liveboard_id = liveboard_id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - user_name = dictionary.get("userName") if dictionary.get("userName") else APIHelper.SKIP - user_id = dictionary.get("userId") if dictionary.get("userId") else APIHelper.SKIP - liveboard_name = dictionary.get("liveboardName") if dictionary.get("liveboardName") else APIHelper.SKIP - liveboard_id = dictionary.get("liveboardId") if dictionary.get("liveboardId") else APIHelper.SKIP - # Return an object of this model - return cls(user_name, - user_id, - liveboard_name, - liveboard_id) diff --git a/Python/thoughtspotpublicrestapi/models/import_policy_enum.py b/Python/thoughtspotpublicrestapi/models/import_policy_enum.py deleted file mode 100644 index 0e2372f54..000000000 --- a/Python/thoughtspotpublicrestapi/models/import_policy_enum.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class ImportPolicyEnum(object): - - """Implementation of the 'ImportPolicy' enum. - - Policy to follow during import - - Attributes: - PARTIAL: TODO: type description here. - ALL_OR_NONE: TODO: type description here. - VALIDATE_ONLY: TODO: type description here. - - """ - - PARTIAL = 'PARTIAL' - - ALL_OR_NONE = 'ALL_OR_NONE' - - VALIDATE_ONLY = 'VALIDATE_ONLY' diff --git a/Python/thoughtspotpublicrestapi/models/liveboard_name_and_id.py b/Python/thoughtspotpublicrestapi/models/liveboard_name_and_id.py deleted file mode 100644 index 0673ce398..000000000 --- a/Python/thoughtspotpublicrestapi/models/liveboard_name_and_id.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class LiveboardNameAndID(object): - - """Implementation of the 'LiveboardNameAndID' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the liveboard - id (string): GUID of the liveboard - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the LiveboardNameAndID class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/liveboard_query_response.py b/Python/thoughtspotpublicrestapi/models/liveboard_query_response.py deleted file mode 100644 index c0ee9402f..000000000 --- a/Python/thoughtspotpublicrestapi/models/liveboard_query_response.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.viz_type import VizType - - -class LiveboardQueryResponse(object): - - """Implementation of the 'LiveboardQueryResponse' model. - - TODO: type model description here. - - Attributes: - name (string): The name of the Liveboard - id (string): The GUID of the Liveboard - viz (list of VizType): SQL query associated with the saved Answer - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "viz": 'viz' - } - - _optionals = [ - 'name', - 'id', - 'viz', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - viz=APIHelper.SKIP): - """Constructor for the LiveboardQueryResponse class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if viz is not APIHelper.SKIP: - self.viz = viz - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - viz = None - if dictionary.get('viz') is not None: - viz = [VizType.from_dictionary(x) for x in dictionary.get('viz')] - else: - viz = APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - viz) diff --git a/Python/thoughtspotpublicrestapi/models/logical_table_header.py b/Python/thoughtspotpublicrestapi/models/logical_table_header.py deleted file mode 100644 index f0f300872..000000000 --- a/Python/thoughtspotpublicrestapi/models/logical_table_header.py +++ /dev/null @@ -1,181 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class LogicalTableHeader(object): - - """Implementation of the 'LogicalTableHeader' model. - - TODO: type model description here. - - Attributes: - id (string): TODO: type description here. - name (string): TODO: type description here. - author (string): TODO: type description here. - author_name (string): TODO: type description here. - author_display_name (string): TODO: type description here. - created (float): TODO: type description here. - modified (float): TODO: type description here. - modified_by (string): TODO: type description here. - generation_num (int): TODO: type description here. - owner (string): TODO: type description here. - deleted (bool): TODO: type description here. - hidden (bool): TODO: type description here. - database (string): TODO: type description here. - schema (string): TODO: type description here. - mtype (string): TODO: type description here. - sub_type (string): TODO: type description here. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "author": 'author', - "author_name": 'authorName', - "author_display_name": 'authorDisplayName', - "created": 'created', - "modified": 'modified', - "modified_by": 'modifiedBy', - "generation_num": 'generationNum', - "owner": 'owner', - "deleted": 'deleted', - "hidden": 'hidden', - "database": 'database', - "schema": 'schema', - "mtype": 'type', - "sub_type": 'subType' - } - - _optionals = [ - 'id', - 'name', - 'author', - 'author_name', - 'author_display_name', - 'created', - 'modified', - 'modified_by', - 'generation_num', - 'owner', - 'deleted', - 'hidden', - 'database', - 'schema', - 'mtype', - 'sub_type', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - author=APIHelper.SKIP, - author_name=APIHelper.SKIP, - author_display_name=APIHelper.SKIP, - created=APIHelper.SKIP, - modified=APIHelper.SKIP, - modified_by=APIHelper.SKIP, - generation_num=APIHelper.SKIP, - owner=APIHelper.SKIP, - deleted=APIHelper.SKIP, - hidden=APIHelper.SKIP, - database=APIHelper.SKIP, - schema=APIHelper.SKIP, - mtype=APIHelper.SKIP, - sub_type=APIHelper.SKIP): - """Constructor for the LogicalTableHeader class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if author is not APIHelper.SKIP: - self.author = author - if author_name is not APIHelper.SKIP: - self.author_name = author_name - if author_display_name is not APIHelper.SKIP: - self.author_display_name = author_display_name - if created is not APIHelper.SKIP: - self.created = created - if modified is not APIHelper.SKIP: - self.modified = modified - if modified_by is not APIHelper.SKIP: - self.modified_by = modified_by - if generation_num is not APIHelper.SKIP: - self.generation_num = generation_num - if owner is not APIHelper.SKIP: - self.owner = owner - if deleted is not APIHelper.SKIP: - self.deleted = deleted - if hidden is not APIHelper.SKIP: - self.hidden = hidden - if database is not APIHelper.SKIP: - self.database = database - if schema is not APIHelper.SKIP: - self.schema = schema - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if sub_type is not APIHelper.SKIP: - self.sub_type = sub_type - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - author = dictionary.get("author") if dictionary.get("author") else APIHelper.SKIP - author_name = dictionary.get("authorName") if dictionary.get("authorName") else APIHelper.SKIP - author_display_name = dictionary.get("authorDisplayName") if dictionary.get("authorDisplayName") else APIHelper.SKIP - created = dictionary.get("created") if dictionary.get("created") else APIHelper.SKIP - modified = dictionary.get("modified") if dictionary.get("modified") else APIHelper.SKIP - modified_by = dictionary.get("modifiedBy") if dictionary.get("modifiedBy") else APIHelper.SKIP - generation_num = dictionary.get("generationNum") if dictionary.get("generationNum") else APIHelper.SKIP - owner = dictionary.get("owner") if dictionary.get("owner") else APIHelper.SKIP - deleted = dictionary.get("deleted") if "deleted" in dictionary.keys() else APIHelper.SKIP - hidden = dictionary.get("hidden") if "hidden" in dictionary.keys() else APIHelper.SKIP - database = dictionary.get("database") if dictionary.get("database") else APIHelper.SKIP - schema = dictionary.get("schema") if dictionary.get("schema") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - sub_type = dictionary.get("subType") if dictionary.get("subType") else APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - author, - author_name, - author_display_name, - created, - modified, - modified_by, - generation_num, - owner, - deleted, - hidden, - database, - schema, - mtype, - sub_type) diff --git a/Python/thoughtspotpublicrestapi/models/logs_response.py b/Python/thoughtspotpublicrestapi/models/logs_response.py deleted file mode 100644 index 43ec4fa35..000000000 --- a/Python/thoughtspotpublicrestapi/models/logs_response.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class LogsResponse(object): - - """Implementation of the 'LogsResponse' model. - - TODO: type model description here. - - Attributes: - date (string): Date and time for the event in the log - log (string): Logged event at the time specified in JSON format. This - includes, Event ID, A unique description of the event, for - example, User login failed, Timestamp, User ID of the person - initiating the event and IP address of the ThoughtSpot instance. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "date": 'date', - "log": 'log' - } - - _optionals = [ - 'date', - 'log', - ] - - def __init__(self, - date=APIHelper.SKIP, - log=APIHelper.SKIP): - """Constructor for the LogsResponse class""" - - # Initialize members of the class - if date is not APIHelper.SKIP: - self.date = date - if log is not APIHelper.SKIP: - self.log = log - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - date = dictionary.get("date") if dictionary.get("date") else APIHelper.SKIP - log = dictionary.get("log") if dictionary.get("log") else APIHelper.SKIP - # Return an object of this model - return cls(date, - log) diff --git a/Python/thoughtspotpublicrestapi/models/metadata_tag_response.py b/Python/thoughtspotpublicrestapi/models/metadata_tag_response.py deleted file mode 100644 index 8136776ec..000000000 --- a/Python/thoughtspotpublicrestapi/models/metadata_tag_response.py +++ /dev/null @@ -1,167 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.client_state import ClientState -from thoughtspotpublicrestapi.models.tag_name_and_id import TagNameAndID - - -class MetadataTagResponse(object): - - """Implementation of the 'MetadataTagResponse' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the tag - id (string): GUID of the tag - client_state (ClientState): TODO: type description here. - index_version (float): TODO: type description here. - generation_num (float): TODO: type description here. - is_deleted (bool): Indicates if the tag is deleted - is_hidden (bool): Indicates if the tag is hidden - is_external (bool): Indicates if the tag is from external system - is_deprecated (bool): TODO: type description here. - created (float): Date and time when group was created - modified (float): Date and time of last modification of the group - modified_by (TagNameAndID): TODO: type description here. - author (TagNameAndID): TODO: type description here. - owner (TagNameAndID): TODO: type description here. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "client_state": 'clientState', - "index_version": 'indexVersion', - "generation_num": 'generationNum', - "is_deleted": 'isDeleted', - "is_hidden": 'isHidden', - "is_external": 'isExternal', - "is_deprecated": 'isDeprecated', - "created": 'created', - "modified": 'modified', - "modified_by": 'modifiedBy', - "author": 'author', - "owner": 'owner' - } - - _optionals = [ - 'name', - 'id', - 'client_state', - 'index_version', - 'generation_num', - 'is_deleted', - 'is_hidden', - 'is_external', - 'is_deprecated', - 'created', - 'modified', - 'modified_by', - 'author', - 'owner', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - client_state=APIHelper.SKIP, - index_version=APIHelper.SKIP, - generation_num=APIHelper.SKIP, - is_deleted=APIHelper.SKIP, - is_hidden=APIHelper.SKIP, - is_external=APIHelper.SKIP, - is_deprecated=APIHelper.SKIP, - created=APIHelper.SKIP, - modified=APIHelper.SKIP, - modified_by=APIHelper.SKIP, - author=APIHelper.SKIP, - owner=APIHelper.SKIP): - """Constructor for the MetadataTagResponse class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if client_state is not APIHelper.SKIP: - self.client_state = client_state - if index_version is not APIHelper.SKIP: - self.index_version = index_version - if generation_num is not APIHelper.SKIP: - self.generation_num = generation_num - if is_deleted is not APIHelper.SKIP: - self.is_deleted = is_deleted - if is_hidden is not APIHelper.SKIP: - self.is_hidden = is_hidden - if is_external is not APIHelper.SKIP: - self.is_external = is_external - if is_deprecated is not APIHelper.SKIP: - self.is_deprecated = is_deprecated - if created is not APIHelper.SKIP: - self.created = created - if modified is not APIHelper.SKIP: - self.modified = modified - if modified_by is not APIHelper.SKIP: - self.modified_by = modified_by - if author is not APIHelper.SKIP: - self.author = author - if owner is not APIHelper.SKIP: - self.owner = owner - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - client_state = ClientState.from_dictionary(dictionary.get('clientState')) if 'clientState' in dictionary.keys() else APIHelper.SKIP - index_version = dictionary.get("indexVersion") if dictionary.get("indexVersion") else APIHelper.SKIP - generation_num = dictionary.get("generationNum") if dictionary.get("generationNum") else APIHelper.SKIP - is_deleted = dictionary.get("isDeleted") if "isDeleted" in dictionary.keys() else APIHelper.SKIP - is_hidden = dictionary.get("isHidden") if "isHidden" in dictionary.keys() else APIHelper.SKIP - is_external = dictionary.get("isExternal") if "isExternal" in dictionary.keys() else APIHelper.SKIP - is_deprecated = dictionary.get("isDeprecated") if "isDeprecated" in dictionary.keys() else APIHelper.SKIP - created = dictionary.get("created") if dictionary.get("created") else APIHelper.SKIP - modified = dictionary.get("modified") if dictionary.get("modified") else APIHelper.SKIP - modified_by = TagNameAndID.from_dictionary(dictionary.get('modifiedBy')) if 'modifiedBy' in dictionary.keys() else APIHelper.SKIP - author = TagNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - owner = TagNameAndID.from_dictionary(dictionary.get('owner')) if 'owner' in dictionary.keys() else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - client_state, - index_version, - generation_num, - is_deleted, - is_hidden, - is_external, - is_deprecated, - created, - modified, - modified_by, - author, - owner) diff --git a/Python/thoughtspotpublicrestapi/models/name_and_id_input.py b/Python/thoughtspotpublicrestapi/models/name_and_id_input.py deleted file mode 100644 index 9788d9bb1..000000000 --- a/Python/thoughtspotpublicrestapi/models/name_and_id_input.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class NameAndIdInput(object): - - """Implementation of the 'NameAndIdInput' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the user - id (string): GUID of the user - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the NameAndIdInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/org_type.py b/Python/thoughtspotpublicrestapi/models/org_type.py deleted file mode 100644 index fe3664a88..000000000 --- a/Python/thoughtspotpublicrestapi/models/org_type.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class OrgType(object): - - """Implementation of the 'OrgType' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the organization - id (int): Id of the organization - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the OrgType class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/orgs_response.py b/Python/thoughtspotpublicrestapi/models/orgs_response.py deleted file mode 100644 index 0711c2a18..000000000 --- a/Python/thoughtspotpublicrestapi/models/orgs_response.py +++ /dev/null @@ -1,102 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class OrgsResponse(object): - - """Implementation of the 'OrgsResponse' model. - - TODO: type model description here. - - Attributes: - org_id (int): ID of the organization searched for - org_name (string): Name of the organization searched for - description (string): Description associated with the organization - all_group_user_id (string): GUID of the ALL group in the organization - default_admin_user_group_id (string): GUID of the admin group in the - organization - active (bool): Indicates if the organization is active or not - - """ - - # Create a mapping from Model property names to API property names - _names = { - "org_id": 'orgId', - "org_name": 'orgName', - "description": 'description', - "all_group_user_id": 'allGroupUserId', - "default_admin_user_group_id": 'defaultAdminUserGroupId', - "active": 'active' - } - - _optionals = [ - 'org_id', - 'org_name', - 'description', - 'all_group_user_id', - 'default_admin_user_group_id', - 'active', - ] - - def __init__(self, - org_id=APIHelper.SKIP, - org_name=APIHelper.SKIP, - description=APIHelper.SKIP, - all_group_user_id=APIHelper.SKIP, - default_admin_user_group_id=APIHelper.SKIP, - active=APIHelper.SKIP): - """Constructor for the OrgsResponse class""" - - # Initialize members of the class - if org_id is not APIHelper.SKIP: - self.org_id = org_id - if org_name is not APIHelper.SKIP: - self.org_name = org_name - if description is not APIHelper.SKIP: - self.description = description - if all_group_user_id is not APIHelper.SKIP: - self.all_group_user_id = all_group_user_id - if default_admin_user_group_id is not APIHelper.SKIP: - self.default_admin_user_group_id = default_admin_user_group_id - if active is not APIHelper.SKIP: - self.active = active - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - org_id = dictionary.get("orgId") if dictionary.get("orgId") else APIHelper.SKIP - org_name = dictionary.get("orgName") if dictionary.get("orgName") else APIHelper.SKIP - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - all_group_user_id = dictionary.get("allGroupUserId") if dictionary.get("allGroupUserId") else APIHelper.SKIP - default_admin_user_group_id = dictionary.get("defaultAdminUserGroupId") if dictionary.get("defaultAdminUserGroupId") else APIHelper.SKIP - active = dictionary.get("active") if "active" in dictionary.keys() else APIHelper.SKIP - # Return an object of this model - return cls(org_id, - org_name, - description, - all_group_user_id, - default_admin_user_group_id, - active) diff --git a/Python/thoughtspotpublicrestapi/models/orientation_enum.py b/Python/thoughtspotpublicrestapi/models/orientation_enum.py deleted file mode 100644 index dc46d538d..000000000 --- a/Python/thoughtspotpublicrestapi/models/orientation_enum.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class OrientationEnum(object): - - """Implementation of the 'Orientation' enum. - - Page orientation for the PDF. Default: PORTRAIT - - Attributes: - PORTRAIT: TODO: type description here. - LANDSCAPE: TODO: type description here. - - """ - - PORTRAIT = 'PORTRAIT' - - LANDSCAPE = 'LANDSCAPE' diff --git a/Python/thoughtspotpublicrestapi/models/pdf_options_input.py b/Python/thoughtspotpublicrestapi/models/pdf_options_input.py deleted file mode 100644 index ed71f040b..000000000 --- a/Python/thoughtspotpublicrestapi/models/pdf_options_input.py +++ /dev/null @@ -1,118 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class PdfOptionsInput(object): - - """Implementation of the 'pdfOptionsInput' model. - - TODO: type model description here. - - Attributes: - orientation (OrientationEnum): Page orientation for the PDF. Default: - PORTRAIT - truncate_tables (bool): When set to true, only the first page of the - tables is displayed in the file. This setting is applicable only - when generating report for specific visualization ids. Default: - false - include_logo (bool): Include customized wide logo if available in the - footer. Default: true - footer_text (string): Footer text to include in the footer of each - page of the PDF. - include_page_number (bool): When set to true, the page number is - included in the footer of each page. Default: true - include_cover_page (bool): When set to true, a cover page with the - Liveboard title is added in the PDF. Default: true - include_filter_page (bool): When set to true, a second page with a - list of all applied filters is added in the PDF. Default: true - - """ - - # Create a mapping from Model property names to API property names - _names = { - "orientation": 'orientation', - "truncate_tables": 'truncateTables', - "include_logo": 'includeLogo', - "footer_text": 'footerText', - "include_page_number": 'includePageNumber', - "include_cover_page": 'includeCoverPage', - "include_filter_page": 'includeFilterPage' - } - - _optionals = [ - 'orientation', - 'truncate_tables', - 'include_logo', - 'footer_text', - 'include_page_number', - 'include_cover_page', - 'include_filter_page', - ] - - def __init__(self, - orientation=APIHelper.SKIP, - truncate_tables=APIHelper.SKIP, - include_logo=APIHelper.SKIP, - footer_text=APIHelper.SKIP, - include_page_number=APIHelper.SKIP, - include_cover_page=APIHelper.SKIP, - include_filter_page=APIHelper.SKIP): - """Constructor for the PdfOptionsInput class""" - - # Initialize members of the class - if orientation is not APIHelper.SKIP: - self.orientation = orientation - if truncate_tables is not APIHelper.SKIP: - self.truncate_tables = truncate_tables - if include_logo is not APIHelper.SKIP: - self.include_logo = include_logo - if footer_text is not APIHelper.SKIP: - self.footer_text = footer_text - if include_page_number is not APIHelper.SKIP: - self.include_page_number = include_page_number - if include_cover_page is not APIHelper.SKIP: - self.include_cover_page = include_cover_page - if include_filter_page is not APIHelper.SKIP: - self.include_filter_page = include_filter_page - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - orientation = dictionary.get("orientation") if dictionary.get("orientation") else APIHelper.SKIP - truncate_tables = dictionary.get("truncateTables") if "truncateTables" in dictionary.keys() else APIHelper.SKIP - include_logo = dictionary.get("includeLogo") if "includeLogo" in dictionary.keys() else APIHelper.SKIP - footer_text = dictionary.get("footerText") if dictionary.get("footerText") else APIHelper.SKIP - include_page_number = dictionary.get("includePageNumber") if "includePageNumber" in dictionary.keys() else APIHelper.SKIP - include_cover_page = dictionary.get("includeCoverPage") if "includeCoverPage" in dictionary.keys() else APIHelper.SKIP - include_filter_page = dictionary.get("includeFilterPage") if "includeFilterPage" in dictionary.keys() else APIHelper.SKIP - # Return an object of this model - return cls(orientation, - truncate_tables, - include_logo, - footer_text, - include_page_number, - include_cover_page, - include_filter_page) diff --git a/Python/thoughtspotpublicrestapi/models/permissions_type_search.py b/Python/thoughtspotpublicrestapi/models/permissions_type_search.py deleted file mode 100644 index 3d0a839ba..000000000 --- a/Python/thoughtspotpublicrestapi/models/permissions_type_search.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.ts_object_type_serach import TsObjectTypeSerach - - -class PermissionsTypeSearch(object): - - """Implementation of the 'PermissionsTypeSearch' model. - - TODO: type model description here. - - Attributes: - mtype (string): Indicates the type of the object - ts_object (list of TsObjectTypeSerach): An array of objects of type - mentioned in type field - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "ts_object": 'tsObject' - } - - _optionals = [ - 'mtype', - 'ts_object', - ] - - def __init__(self, - mtype=APIHelper.SKIP, - ts_object=APIHelper.SKIP): - """Constructor for the PermissionsTypeSearch class""" - - # Initialize members of the class - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if ts_object is not APIHelper.SKIP: - self.ts_object = ts_object - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - ts_object = None - if dictionary.get('tsObject') is not None: - ts_object = [TsObjectTypeSerach.from_dictionary(x) for x in dictionary.get('tsObject')] - else: - ts_object = APIHelper.SKIP - # Return an object of this model - return cls(mtype, - ts_object) diff --git a/Python/thoughtspotpublicrestapi/models/pinboard_details.py b/Python/thoughtspotpublicrestapi/models/pinboard_details.py deleted file mode 100644 index 5a72f8474..000000000 --- a/Python/thoughtspotpublicrestapi/models/pinboard_details.py +++ /dev/null @@ -1,85 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class PinboardDetails(object): - - """Implementation of the 'PinboardDetails' model. - - TODO: type model description here. - - Attributes: - pinboard_id (string): pinboard id of recently pinned pinboard - pinboard_name (string): pinboard name of recently pinned pinboard - tab_id (string): tab id of recently pinned tab - tab_name (string): tab name of recently pinned tab - - """ - - # Create a mapping from Model property names to API property names - _names = { - "pinboard_id": 'pinboardId', - "pinboard_name": 'pinboardName', - "tab_id": 'tabId', - "tab_name": 'tabName' - } - - _optionals = [ - 'pinboard_id', - 'pinboard_name', - 'tab_id', - 'tab_name', - ] - - def __init__(self, - pinboard_id=APIHelper.SKIP, - pinboard_name=APIHelper.SKIP, - tab_id=APIHelper.SKIP, - tab_name=APIHelper.SKIP): - """Constructor for the PinboardDetails class""" - - # Initialize members of the class - if pinboard_id is not APIHelper.SKIP: - self.pinboard_id = pinboard_id - if pinboard_name is not APIHelper.SKIP: - self.pinboard_name = pinboard_name - if tab_id is not APIHelper.SKIP: - self.tab_id = tab_id - if tab_name is not APIHelper.SKIP: - self.tab_name = tab_name - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - pinboard_id = dictionary.get("pinboardId") if dictionary.get("pinboardId") else APIHelper.SKIP - pinboard_name = dictionary.get("pinboardName") if dictionary.get("pinboardName") else APIHelper.SKIP - tab_id = dictionary.get("tabId") if dictionary.get("tabId") else APIHelper.SKIP - tab_name = dictionary.get("tabName") if dictionary.get("tabName") else APIHelper.SKIP - # Return an object of this model - return cls(pinboard_id, - pinboard_name, - tab_id, - tab_name) diff --git a/Python/thoughtspotpublicrestapi/models/principal_search_response.py b/Python/thoughtspotpublicrestapi/models/principal_search_response.py deleted file mode 100644 index 982e15d27..000000000 --- a/Python/thoughtspotpublicrestapi/models/principal_search_response.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.permissions_type_search import PermissionsTypeSearch - - -class PrincipalSearchResponse(object): - - """Implementation of the 'PrincipalSearchResponse' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the user or user group - name (string): Name of the user or user group - mtype (string): Indicates the type of principal - permissions (list of PermissionsTypeSearch): Indicates the permission - which user or user group has on the object - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "mtype": 'type', - "permissions": 'permissions' - } - - _optionals = [ - 'id', - 'name', - 'mtype', - 'permissions', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - mtype=APIHelper.SKIP, - permissions=APIHelper.SKIP): - """Constructor for the PrincipalSearchResponse class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if permissions is not APIHelper.SKIP: - self.permissions = permissions - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - permissions = None - if dictionary.get('permissions') is not None: - permissions = [PermissionsTypeSearch.from_dictionary(x) for x in dictionary.get('permissions')] - else: - permissions = APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - mtype, - permissions) diff --git a/Python/thoughtspotpublicrestapi/models/privilege_enum.py b/Python/thoughtspotpublicrestapi/models/privilege_enum.py deleted file mode 100644 index d41e54aa9..000000000 --- a/Python/thoughtspotpublicrestapi/models/privilege_enum.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class PrivilegeEnum(object): - - """Implementation of the 'Privilege' enum. - - TODO: type enum description here. - - Attributes: - RANALYSIS: TODO: type description here. - DATAMANAGEMENT: TODO: type description here. - APPLICATION_ADMINISTRATION: TODO: type description here. - USER_ADMINISTRATION: TODO: type description here. - SYSTEMMANAGEMENT: TODO: type description here. - SYSTEM_INFO_ADMINISTRATION: TODO: type description here. - AUTHORING: TODO: type description here. - BACKUP_ADMINISTRATION: TODO: type description here. - SHAREWITHALL: TODO: type description here. - DEVELOPER: TODO: type description here. - JOBSCHEDULING: TODO: type description here. - GROUP_ADMINISTRATION: TODO: type description here. - BYPASSRLS: TODO: type description here. - EXPERIMENTALFEATUREPRIVILEGE: TODO: type description here. - A3ANALYSIS: TODO: type description here. - USERDATAUPLOADING: TODO: type description here. - DATADOWNLOADING: TODO: type description here. - DISABLE_PINBOARD_CREATION: TODO: type description here. - ADMINISTRATION: TODO: type description here. - - """ - - RANALYSIS = 'RANALYSIS' - - DATAMANAGEMENT = 'DATAMANAGEMENT' - - APPLICATION_ADMINISTRATION = 'APPLICATION_ADMINISTRATION' - - USER_ADMINISTRATION = 'USER_ADMINISTRATION' - - SYSTEMMANAGEMENT = 'SYSTEMMANAGEMENT' - - SYSTEM_INFO_ADMINISTRATION = 'SYSTEM_INFO_ADMINISTRATION' - - AUTHORING = 'AUTHORING' - - BACKUP_ADMINISTRATION = 'BACKUP_ADMINISTRATION' - - SHAREWITHALL = 'SHAREWITHALL' - - DEVELOPER = 'DEVELOPER' - - JOBSCHEDULING = 'JOBSCHEDULING' - - GROUP_ADMINISTRATION = 'GROUP_ADMINISTRATION' - - BYPASSRLS = 'BYPASSRLS' - - EXPERIMENTALFEATUREPRIVILEGE = 'EXPERIMENTALFEATUREPRIVILEGE' - - A3ANALYSIS = 'A3ANALYSIS' - - USERDATAUPLOADING = 'USERDATAUPLOADING' - - DATADOWNLOADING = 'DATADOWNLOADING' - - DISABLE_PINBOARD_CREATION = 'DISABLE_PINBOARD_CREATION' - - ADMINISTRATION = 'ADMINISTRATION' diff --git a/Python/thoughtspotpublicrestapi/models/secuirity_dependents.py b/Python/thoughtspotpublicrestapi/models/secuirity_dependents.py deleted file mode 100644 index 69e4cdb8a..000000000 --- a/Python/thoughtspotpublicrestapi/models/secuirity_dependents.py +++ /dev/null @@ -1,108 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.dependent_permission import DependentPermission -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class SecuirityDependents(object): - - """Implementation of the 'SecuirityDependents' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the object - name (string): Name of the object - mtype (string): Indicates the type of the object - owner (string): Owner of the object - author (UserNameAndID): TODO: type description here. - permissions (list of DependentPermission): TODO: type description - here. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "mtype": 'type', - "owner": 'owner', - "author": 'author', - "permissions": 'permissions' - } - - _optionals = [ - 'id', - 'name', - 'mtype', - 'owner', - 'author', - 'permissions', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - mtype=APIHelper.SKIP, - owner=APIHelper.SKIP, - author=APIHelper.SKIP, - permissions=APIHelper.SKIP): - """Constructor for the SecuirityDependents class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if owner is not APIHelper.SKIP: - self.owner = owner - if author is not APIHelper.SKIP: - self.author = author - if permissions is not APIHelper.SKIP: - self.permissions = permissions - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - owner = dictionary.get("owner") if dictionary.get("owner") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - permissions = None - if dictionary.get('permissions') is not None: - permissions = [DependentPermission.from_dictionary(x) for x in dictionary.get('permissions')] - else: - permissions = APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - mtype, - owner, - author, - permissions) diff --git a/Python/thoughtspotpublicrestapi/models/security_permission.py b/Python/thoughtspotpublicrestapi/models/security_permission.py deleted file mode 100644 index e0e3e038a..000000000 --- a/Python/thoughtspotpublicrestapi/models/security_permission.py +++ /dev/null @@ -1,111 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_permission import GroupPermission - - -class SecurityPermission(object): - - """Implementation of the 'SecurityPermission' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the user or user group - name (string): Name of the user or user group - mtype (string): Indicates the type of principal - permission (string): Indicates the permission which user or user group - has on the object - shared_permission (string): Indicates the permission which user or - user group has on the object through sharing of the object with - this user or user group - group_permission (list of GroupPermission): An array of object with - details of permission on the user groups to which the user or user - group belongs - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "mtype": 'type', - "permission": 'permission', - "shared_permission": 'sharedPermission', - "group_permission": 'groupPermission' - } - - _optionals = [ - 'id', - 'name', - 'mtype', - 'permission', - 'shared_permission', - 'group_permission', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - mtype=APIHelper.SKIP, - permission=APIHelper.SKIP, - shared_permission=APIHelper.SKIP, - group_permission=APIHelper.SKIP): - """Constructor for the SecurityPermission class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if permission is not APIHelper.SKIP: - self.permission = permission - if shared_permission is not APIHelper.SKIP: - self.shared_permission = shared_permission - if group_permission is not APIHelper.SKIP: - self.group_permission = group_permission - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - permission = dictionary.get("permission") if dictionary.get("permission") else APIHelper.SKIP - shared_permission = dictionary.get("sharedPermission") if dictionary.get("sharedPermission") else APIHelper.SKIP - group_permission = None - if dictionary.get('groupPermission') is not None: - group_permission = [GroupPermission.from_dictionary(x) for x in dictionary.get('groupPermission')] - else: - group_permission = APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - mtype, - permission, - shared_permission, - group_permission) diff --git a/Python/thoughtspotpublicrestapi/models/security_permission_response.py b/Python/thoughtspotpublicrestapi/models/security_permission_response.py deleted file mode 100644 index 5f31e3837..000000000 --- a/Python/thoughtspotpublicrestapi/models/security_permission_response.py +++ /dev/null @@ -1,122 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.secuirity_dependents import SecuirityDependents -from thoughtspotpublicrestapi.models.security_permission import SecurityPermission -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class SecurityPermissionResponse(object): - - """Implementation of the 'SecurityPermissionResponse' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the object - name (string): Name of the object - mtype (string): Indicates the type of the object - owner (string): GUID of the owner of the object - author (UserNameAndID): TODO: type description here. - permissions (list of SecurityPermission): An array of object with - details of permission on users and user groups - dependents (list of SecuirityDependents): The objects on which the - primary object is dependent on - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "mtype": 'type', - "owner": 'owner', - "author": 'author', - "permissions": 'permissions', - "dependents": 'dependents' - } - - _optionals = [ - 'id', - 'name', - 'mtype', - 'owner', - 'author', - 'permissions', - 'dependents', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - mtype=APIHelper.SKIP, - owner=APIHelper.SKIP, - author=APIHelper.SKIP, - permissions=APIHelper.SKIP, - dependents=APIHelper.SKIP): - """Constructor for the SecurityPermissionResponse class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if owner is not APIHelper.SKIP: - self.owner = owner - if author is not APIHelper.SKIP: - self.author = author - if permissions is not APIHelper.SKIP: - self.permissions = permissions - if dependents is not APIHelper.SKIP: - self.dependents = dependents - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - owner = dictionary.get("owner") if dictionary.get("owner") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - permissions = None - if dictionary.get('permissions') is not None: - permissions = [SecurityPermission.from_dictionary(x) for x in dictionary.get('permissions')] - else: - permissions = APIHelper.SKIP - dependents = None - if dictionary.get('dependents') is not None: - dependents = [SecuirityDependents.from_dictionary(x) for x in dictionary.get('dependents')] - else: - dependents = APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - mtype, - owner, - author, - permissions, - dependents) diff --git a/Python/thoughtspotpublicrestapi/models/session_login_response.py b/Python/thoughtspotpublicrestapi/models/session_login_response.py deleted file mode 100644 index ed4f3ffbc..000000000 --- a/Python/thoughtspotpublicrestapi/models/session_login_response.py +++ /dev/null @@ -1,97 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class SessionLoginResponse(object): - - """Implementation of the 'SessionLoginResponse' model. - - Login response - - Attributes: - user_name (string): Username of the user account for which token is - generated - token (string): Bearer token generated. This will be blank when token - type is Cookie - token_created_time (string): Date and time at which the token is - generated - token_expiry_duration (string): Duration in seconds after which the - token expires - token_type (string): Type of token generated - - """ - - # Create a mapping from Model property names to API property names - _names = { - "user_name": 'userName', - "token": 'token', - "token_created_time": 'tokenCreatedTime', - "token_expiry_duration": 'tokenExpiryDuration', - "token_type": 'tokenType' - } - - _optionals = [ - 'user_name', - 'token', - 'token_created_time', - 'token_expiry_duration', - 'token_type', - ] - - def __init__(self, - user_name=APIHelper.SKIP, - token=APIHelper.SKIP, - token_created_time=APIHelper.SKIP, - token_expiry_duration=APIHelper.SKIP, - token_type=APIHelper.SKIP): - """Constructor for the SessionLoginResponse class""" - - # Initialize members of the class - if user_name is not APIHelper.SKIP: - self.user_name = user_name - if token is not APIHelper.SKIP: - self.token = token - if token_created_time is not APIHelper.SKIP: - self.token_created_time = token_created_time - if token_expiry_duration is not APIHelper.SKIP: - self.token_expiry_duration = token_expiry_duration - if token_type is not APIHelper.SKIP: - self.token_type = token_type - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - user_name = dictionary.get("userName") if dictionary.get("userName") else APIHelper.SKIP - token = dictionary.get("token") if dictionary.get("token") else APIHelper.SKIP - token_created_time = dictionary.get("tokenCreatedTime") if dictionary.get("tokenCreatedTime") else APIHelper.SKIP - token_expiry_duration = dictionary.get("tokenExpiryDuration") if dictionary.get("tokenExpiryDuration") else APIHelper.SKIP - token_type = dictionary.get("tokenType") if dictionary.get("tokenType") else APIHelper.SKIP - # Return an object of this model - return cls(user_name, - token, - token_created_time, - token_expiry_duration, - token_type) diff --git a/Python/thoughtspotpublicrestapi/models/sort_by_1_enum.py b/Python/thoughtspotpublicrestapi/models/sort_by_1_enum.py deleted file mode 100644 index 53671341b..000000000 --- a/Python/thoughtspotpublicrestapi/models/sort_by_1_enum.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class SortBy1Enum(object): - - """Implementation of the 'SortBy1' enum. - - Field based on which the re.sponse needs to be ordered. Valid values - - Attributes: - DEFAULT: TODO: type description here. - NAME: TODO: type description here. - DISPLAY_NAME: TODO: type description here. - AUTHOR: TODO: type description here. - CREATED: TODO: type description here. - MODIFIED: TODO: type description here. - LAST_ACCESSED: TODO: type description here. - SYNCED: TODO: type description here. - VIEWS: TODO: type description here. - NONE: TODO: type description here. - USER_STATE: TODO: type description here. - ROW_COUNT: TODO: type description here. - - """ - - DEFAULT = 'DEFAULT' - - NAME = 'NAME' - - DISPLAY_NAME = 'DISPLAY_NAME' - - AUTHOR = 'AUTHOR' - - CREATED = 'CREATED' - - MODIFIED = 'MODIFIED' - - LAST_ACCESSED = 'LAST_ACCESSED' - - SYNCED = 'SYNCED' - - VIEWS = 'VIEWS' - - NONE = 'NONE' - - USER_STATE = 'USER_STATE' - - ROW_COUNT = 'ROW_COUNT' diff --git a/Python/thoughtspotpublicrestapi/models/sort_by_enum.py b/Python/thoughtspotpublicrestapi/models/sort_by_enum.py deleted file mode 100644 index f1370918a..000000000 --- a/Python/thoughtspotpublicrestapi/models/sort_by_enum.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class SortByEnum(object): - - """Implementation of the 'SortBy' enum. - - Field based on which the response needs to be ordered. - - Attributes: - DEFAULT: TODO: type description here. - NAME: TODO: type description here. - DISPLAY_NAME: TODO: type description here. - AUTHOR: TODO: type description here. - CREATED: TODO: type description here. - MODIFIED: TODO: type description here. - LAST_ACCESSED: TODO: type description here. - SYNCED: TODO: type description here. - VIEWS: TODO: type description here. - NONE: TODO: type description here. - USER_STATE: TODO: type description here. - ROW_COUNT: TODO: type description here. - - """ - - DEFAULT = 'DEFAULT' - - NAME = 'NAME' - - DISPLAY_NAME = 'DISPLAY_NAME' - - AUTHOR = 'AUTHOR' - - CREATED = 'CREATED' - - MODIFIED = 'MODIFIED' - - LAST_ACCESSED = 'LAST_ACCESSED' - - SYNCED = 'SYNCED' - - VIEWS = 'VIEWS' - - NONE = 'NONE' - - USER_STATE = 'USER_STATE' - - ROW_COUNT = 'ROW_COUNT' diff --git a/Python/thoughtspotpublicrestapi/models/sort_order_1_enum.py b/Python/thoughtspotpublicrestapi/models/sort_order_1_enum.py deleted file mode 100644 index 5fdbc160c..000000000 --- a/Python/thoughtspotpublicrestapi/models/sort_order_1_enum.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class SortOrder1Enum(object): - - """Implementation of the 'SortOrder1' enum. - - Order in which sortBy should be applied. Valid values - - Attributes: - DEFAULT: TODO: type description here. - ASC: TODO: type description here. - DESC: TODO: type description here. - - """ - - DEFAULT = 'DEFAULT' - - ASC = 'ASC' - - DESC = 'DESC' diff --git a/Python/thoughtspotpublicrestapi/models/sort_order_enum.py b/Python/thoughtspotpublicrestapi/models/sort_order_enum.py deleted file mode 100644 index 2442a94ca..000000000 --- a/Python/thoughtspotpublicrestapi/models/sort_order_enum.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class SortOrderEnum(object): - - """Implementation of the 'SortOrder' enum. - - Order in which sortBy should be applied. - - Attributes: - DEFAULT: TODO: type description here. - ASC: TODO: type description here. - DESC: TODO: type description here. - - """ - - DEFAULT = 'DEFAULT' - - ASC = 'ASC' - - DESC = 'DESC' diff --git a/Python/thoughtspotpublicrestapi/models/state_1_enum.py b/Python/thoughtspotpublicrestapi/models/state_1_enum.py deleted file mode 100644 index 6e8083f7c..000000000 --- a/Python/thoughtspotpublicrestapi/models/state_1_enum.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class State1Enum(object): - - """Implementation of the 'State1' enum. - - Status of user account. acitve or inactive. - - Attributes: - ACTIVE: TODO: type description here. - INACTIVE: TODO: type description here. - EXPIRED: TODO: type description here. - LOCKED: TODO: type description here. - PENDING: TODO: type description here. - - """ - - ACTIVE = 'ACTIVE' - - INACTIVE = 'INACTIVE' - - EXPIRED = 'EXPIRED' - - LOCKED = 'LOCKED' - - PENDING = 'PENDING' diff --git a/Python/thoughtspotpublicrestapi/models/state_enum.py b/Python/thoughtspotpublicrestapi/models/state_enum.py deleted file mode 100644 index 14e20923f..000000000 --- a/Python/thoughtspotpublicrestapi/models/state_enum.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class StateEnum(object): - - """Implementation of the 'state' enum. - - TODO: type enum description here. - - Attributes: - ACTIVE: TODO: type description here. - INACTIVE: TODO: type description here. - EXPIRED: TODO: type description here. - LOCKED: TODO: type description here. - PENDING: TODO: type description here. - - """ - - ACTIVE = 'ACTIVE' - - INACTIVE = 'INACTIVE' - - EXPIRED = 'EXPIRED' - - LOCKED = 'LOCKED' - - PENDING = 'PENDING' diff --git a/Python/thoughtspotpublicrestapi/models/table_columns.py b/Python/thoughtspotpublicrestapi/models/table_columns.py deleted file mode 100644 index e92721afb..000000000 --- a/Python/thoughtspotpublicrestapi/models/table_columns.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TableColumns(object): - - """Implementation of the 'TableColumns' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the column - data_type (string): Datatype of the column - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "data_type": 'dataType' - } - - _optionals = [ - 'name', - 'data_type', - ] - - def __init__(self, - name=APIHelper.SKIP, - data_type=APIHelper.SKIP): - """Constructor for the TableColumns class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if data_type is not APIHelper.SKIP: - self.data_type = data_type - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - data_type = dictionary.get("dataType") if dictionary.get("dataType") else APIHelper.SKIP - # Return an object of this model - return cls(name, - data_type) diff --git a/Python/thoughtspotpublicrestapi/models/table_input.py b/Python/thoughtspotpublicrestapi/models/table_input.py deleted file mode 100644 index 34025154c..000000000 --- a/Python/thoughtspotpublicrestapi/models/table_input.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TableInput(object): - - """Implementation of the 'TableInput' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the table - id (string): GUID of the Table - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TableInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/table_list.py b/Python/thoughtspotpublicrestapi/models/table_list.py deleted file mode 100644 index fd6503e6b..000000000 --- a/Python/thoughtspotpublicrestapi/models/table_list.py +++ /dev/null @@ -1,191 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class TableList(object): - - """Implementation of the 'tableList' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the table - mtype (string): Type of the table - id (string): GUID of the table - database_stripe (string): Name of the database to which the table - belongs - schema_stripe (string): Name of the schema to which the table belongs - is_external (bool): TODO: type description here. - is_deprecated (bool): Indicates if the table is deprecated - is_deleted (bool): Indicates if the table is deleted - is_hidden (bool): Indicates if the table is hideen - index_version (float): TODO: type description here. - generation_num (float): TODO: type description here. - created (string): Date and time when the table was created - modified (string): Date and time of last modification of the table - author (UserNameAndID): TODO: type description here. - modified_by (UserNameAndID): TODO: type description here. - owner (UserNameAndID): TODO: type description here. - tags (list of string): List of tags assigned to the table - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "mtype": 'type', - "id": 'id', - "database_stripe": 'databaseStripe', - "schema_stripe": 'schemaStripe', - "is_external": 'isExternal', - "is_deprecated": 'isDeprecated', - "is_deleted": 'isDeleted', - "is_hidden": 'isHidden', - "index_version": 'indexVersion', - "generation_num": 'generationNum', - "created": 'created', - "modified": 'modified', - "author": 'author', - "modified_by": 'modifiedBy', - "owner": 'owner', - "tags": 'tags' - } - - _optionals = [ - 'name', - 'mtype', - 'id', - 'database_stripe', - 'schema_stripe', - 'is_external', - 'is_deprecated', - 'is_deleted', - 'is_hidden', - 'index_version', - 'generation_num', - 'created', - 'modified', - 'author', - 'modified_by', - 'owner', - 'tags', - ] - - def __init__(self, - name=APIHelper.SKIP, - mtype=APIHelper.SKIP, - id=APIHelper.SKIP, - database_stripe=APIHelper.SKIP, - schema_stripe=APIHelper.SKIP, - is_external=APIHelper.SKIP, - is_deprecated=APIHelper.SKIP, - is_deleted=APIHelper.SKIP, - is_hidden=APIHelper.SKIP, - index_version=APIHelper.SKIP, - generation_num=APIHelper.SKIP, - created=APIHelper.SKIP, - modified=APIHelper.SKIP, - author=APIHelper.SKIP, - modified_by=APIHelper.SKIP, - owner=APIHelper.SKIP, - tags=APIHelper.SKIP): - """Constructor for the TableList class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if id is not APIHelper.SKIP: - self.id = id - if database_stripe is not APIHelper.SKIP: - self.database_stripe = database_stripe - if schema_stripe is not APIHelper.SKIP: - self.schema_stripe = schema_stripe - if is_external is not APIHelper.SKIP: - self.is_external = is_external - if is_deprecated is not APIHelper.SKIP: - self.is_deprecated = is_deprecated - if is_deleted is not APIHelper.SKIP: - self.is_deleted = is_deleted - if is_hidden is not APIHelper.SKIP: - self.is_hidden = is_hidden - if index_version is not APIHelper.SKIP: - self.index_version = index_version - if generation_num is not APIHelper.SKIP: - self.generation_num = generation_num - if created is not APIHelper.SKIP: - self.created = created - if modified is not APIHelper.SKIP: - self.modified = modified - if author is not APIHelper.SKIP: - self.author = author - if modified_by is not APIHelper.SKIP: - self.modified_by = modified_by - if owner is not APIHelper.SKIP: - self.owner = owner - if tags is not APIHelper.SKIP: - self.tags = tags - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - database_stripe = dictionary.get("databaseStripe") if dictionary.get("databaseStripe") else APIHelper.SKIP - schema_stripe = dictionary.get("schemaStripe") if dictionary.get("schemaStripe") else APIHelper.SKIP - is_external = dictionary.get("isExternal") if "isExternal" in dictionary.keys() else APIHelper.SKIP - is_deprecated = dictionary.get("isDeprecated") if "isDeprecated" in dictionary.keys() else APIHelper.SKIP - is_deleted = dictionary.get("isDeleted") if "isDeleted" in dictionary.keys() else APIHelper.SKIP - is_hidden = dictionary.get("isHidden") if "isHidden" in dictionary.keys() else APIHelper.SKIP - index_version = dictionary.get("indexVersion") if dictionary.get("indexVersion") else APIHelper.SKIP - generation_num = dictionary.get("generationNum") if dictionary.get("generationNum") else APIHelper.SKIP - created = dictionary.get("created") if dictionary.get("created") else APIHelper.SKIP - modified = dictionary.get("modified") if dictionary.get("modified") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - modified_by = UserNameAndID.from_dictionary(dictionary.get('modifiedBy')) if 'modifiedBy' in dictionary.keys() else APIHelper.SKIP - owner = UserNameAndID.from_dictionary(dictionary.get('owner')) if 'owner' in dictionary.keys() else APIHelper.SKIP - tags = dictionary.get("tags") if dictionary.get("tags") else APIHelper.SKIP - # Return an object of this model - return cls(name, - mtype, - id, - database_stripe, - schema_stripe, - is_external, - is_deprecated, - is_deleted, - is_hidden, - index_version, - generation_num, - created, - modified, - author, - modified_by, - owner, - tags) diff --git a/Python/thoughtspotpublicrestapi/models/tag_name_and_id.py b/Python/thoughtspotpublicrestapi/models/tag_name_and_id.py deleted file mode 100644 index 14668ff35..000000000 --- a/Python/thoughtspotpublicrestapi/models/tag_name_and_id.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TagNameAndID(object): - - """Implementation of the 'TagNameAndID' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group to which group is added - id (string): GUID of the group to which group is added - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TagNameAndID class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tag_name_and_id_input.py b/Python/thoughtspotpublicrestapi/models/tag_name_and_id_input.py deleted file mode 100644 index 4ea02dfb4..000000000 --- a/Python/thoughtspotpublicrestapi/models/tag_name_and_id_input.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TagNameAndIdInput(object): - - """Implementation of the 'TagNameAndIdInput' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the tags - id (string): GUID of the tags - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TagNameAndIdInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/to_user_name_and_id_input.py b/Python/thoughtspotpublicrestapi/models/to_user_name_and_id_input.py deleted file mode 100644 index 9e4d35699..000000000 --- a/Python/thoughtspotpublicrestapi/models/to_user_name_and_id_input.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class ToUserNameAndIDInput(object): - - """Implementation of the 'ToUserNameAndIDInput' model. - - A JSON object of name or GUIDs of the new owner for the objects. When both - are given then id is considered. - - Attributes: - name (string): Username of the user - id (string): GUID of the user - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the ToUserNameAndIDInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/topic_enum.py b/Python/thoughtspotpublicrestapi/models/topic_enum.py deleted file mode 100644 index 060e014ad..000000000 --- a/Python/thoughtspotpublicrestapi/models/topic_enum.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TopicEnum(object): - - """Implementation of the 'topic' enum. - - TODO: type enum description here. - - Attributes: - SECURITY_LOGS: TODO: type description here. - - """ - - SECURITY_LOGS = 'security_logs' diff --git a/Python/thoughtspotpublicrestapi/models/ts_object_input.py b/Python/thoughtspotpublicrestapi/models/ts_object_input.py deleted file mode 100644 index 6bb9c0ec3..000000000 --- a/Python/thoughtspotpublicrestapi/models/ts_object_input.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TsObjectInput(object): - - """Implementation of the 'TsObjectInput' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the metadata object - mtype (TypeEnum): Type of the metadata object - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "mtype": 'type' - } - - def __init__(self, - id=None, - mtype=None): - """Constructor for the TsObjectInput class""" - - # Initialize members of the class - self.id = id - self.mtype = mtype - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - mtype = dictionary.get("type") if dictionary.get("type") else None - # Return an object of this model - return cls(id, - mtype) diff --git a/Python/thoughtspotpublicrestapi/models/ts_object_search_input.py b/Python/thoughtspotpublicrestapi/models/ts_object_search_input.py deleted file mode 100644 index f20b1204c..000000000 --- a/Python/thoughtspotpublicrestapi/models/ts_object_search_input.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TsObjectSearchInput(object): - - """Implementation of the 'TsObjectSearchInput' model. - - TODO: type model description here. - - Attributes: - mtype (Type2Enum): Type of the metadata objec - id (list of string): A JSON Array of GUIDs of the metadata object - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "id": 'id' - } - - def __init__(self, - mtype=None, - id=None): - """Constructor for the TsObjectSearchInput class""" - - # Initialize members of the class - self.mtype = mtype - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else None - id = dictionary.get("id") if dictionary.get("id") else None - # Return an object of this model - return cls(mtype, - id) diff --git a/Python/thoughtspotpublicrestapi/models/ts_object_type_serach.py b/Python/thoughtspotpublicrestapi/models/ts_object_type_serach.py deleted file mode 100644 index c9c70a234..000000000 --- a/Python/thoughtspotpublicrestapi/models/ts_object_type_serach.py +++ /dev/null @@ -1,120 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_permission import GroupPermission -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class TsObjectTypeSerach(object): - - """Implementation of the 'TsObjectTypeSerach' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the object - name (string): Name of the object - owner (string): Owner of the object - author (UserNameAndID): TODO: type description here. - permission (string): Indicates the permission which user or user group - has on the object - shared_permission (string): Indicates the permission which user or - user group has on the object through sharing of the object with - the user or user group - group_permission (list of GroupPermission): An array of object with - details of permission on the user groups to which the user or user - group belongs - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "name": 'name', - "owner": 'owner', - "author": 'author', - "permission": 'permission', - "shared_permission": 'sharedPermission', - "group_permission": 'groupPermission' - } - - _optionals = [ - 'id', - 'name', - 'owner', - 'author', - 'permission', - 'shared_permission', - 'group_permission', - ] - - def __init__(self, - id=APIHelper.SKIP, - name=APIHelper.SKIP, - owner=APIHelper.SKIP, - author=APIHelper.SKIP, - permission=APIHelper.SKIP, - shared_permission=APIHelper.SKIP, - group_permission=APIHelper.SKIP): - """Constructor for the TsObjectTypeSerach class""" - - # Initialize members of the class - if id is not APIHelper.SKIP: - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if owner is not APIHelper.SKIP: - self.owner = owner - if author is not APIHelper.SKIP: - self.author = author - if permission is not APIHelper.SKIP: - self.permission = permission - if shared_permission is not APIHelper.SKIP: - self.shared_permission = shared_permission - if group_permission is not APIHelper.SKIP: - self.group_permission = group_permission - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - owner = dictionary.get("owner") if dictionary.get("owner") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - permission = dictionary.get("permission") if dictionary.get("permission") else APIHelper.SKIP - shared_permission = dictionary.get("sharedPermission") if dictionary.get("sharedPermission") else APIHelper.SKIP - group_permission = None - if dictionary.get('groupPermission') is not None: - group_permission = [GroupPermission.from_dictionary(x) for x in dictionary.get('groupPermission')] - else: - group_permission = APIHelper.SKIP - # Return an object of this model - return cls(id, - name, - owner, - author, - permission, - shared_permission, - group_permission) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_assignauthor_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_assignauthor_request.py deleted file mode 100644 index fae24b5e0..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_assignauthor_request.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2AdminAssignauthorRequest(object): - - """Implementation of the 'Tspublic Rest V2 Admin Assignauthor Request' model. - - TODO: type model description here. - - Attributes: - ts_object_id (list of string): A JSON array of GUIDs of the metadata - objects. - name (string): User name of the user account - id (string): The GUID of the user account - - """ - - # Create a mapping from Model property names to API property names - _names = { - "ts_object_id": 'tsObjectId', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - ts_object_id=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2AdminAssignauthorRequest class""" - - # Initialize members of the class - self.ts_object_id = ts_object_id - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - ts_object_id = dictionary.get("tsObjectId") if dictionary.get("tsObjectId") else None - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(ts_object_id, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_changeauthor_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_changeauthor_request.py deleted file mode 100644 index 61c493e07..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_changeauthor_request.py +++ /dev/null @@ -1,80 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.models.from_user_name_and_id_input import FromUserNameAndIDInput -from thoughtspotpublicrestapi.models.to_user_name_and_id_input import ToUserNameAndIDInput - - -class TspublicRestV2AdminChangeauthorRequest(object): - - """Implementation of the 'Tspublic Rest V2 Admin Changeauthor Request' model. - - TODO: type model description here. - - Attributes: - ts_object_id (list of string): A JSON array of GUIDs of the metadata - objects. To change owner of all the objects owned by a user, - provide single input as ALL. If multiple object ids along with - ALL is provided as input, then ALL will be considered. - from_user (FromUserNameAndIDInput): A JSON object of name or GUIDs of - the current owner of the objects. When both are given then id is - considered. If a list of object ids are provided as input for - TsObjectId, then only for those ids that have owner as the value - provided in fromUser, the owner will be changed. Provide either - name or id as input. When both are given user id will be - considered. - to_user (ToUserNameAndIDInput): A JSON object of name or GUIDs of the - new owner for the objects. When both are given then id is - considered. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "ts_object_id": 'tsObjectId', - "from_user": 'fromUser', - "to_user": 'toUser' - } - - def __init__(self, - ts_object_id=None, - from_user=None, - to_user=None): - """Constructor for the TspublicRestV2AdminChangeauthorRequest class""" - - # Initialize members of the class - self.ts_object_id = ts_object_id - self.from_user = from_user - self.to_user = to_user - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - ts_object_id = dictionary.get("tsObjectId") if dictionary.get("tsObjectId") else None - from_user = FromUserNameAndIDInput.from_dictionary(dictionary.get('fromUser')) if dictionary.get('fromUser') else None - to_user = ToUserNameAndIDInput.from_dictionary(dictionary.get('toUser')) if dictionary.get('toUser') else None - # Return an object of this model - return cls(ts_object_id, - from_user, - to_user) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_configuration_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_configuration_update_request.py deleted file mode 100644 index ff07ad25f..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_configuration_update_request.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2AdminConfigurationUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Admin Configuration Update Request' model. - - TODO: type model description here. - - Attributes: - configuration (string): A JSON file with the key-value pair of - configuration attributes to be updated. Example: - {"defaultChartDataSize": 5000} - - """ - - # Create a mapping from Model property names to API property names - _names = { - "configuration": 'configuration' - } - - _optionals = [ - 'configuration', - ] - - def __init__(self, - configuration=APIHelper.SKIP): - """Constructor for the TspublicRestV2AdminConfigurationUpdateRequest class""" - - # Initialize members of the class - if configuration is not APIHelper.SKIP: - self.configuration = configuration - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - configuration = dictionary.get("configuration") if dictionary.get("configuration") else APIHelper.SKIP - # Return an object of this model - return cls(configuration) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_forcelogout_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_forcelogout_request.py deleted file mode 100644 index 711a88185..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_forcelogout_request.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.name_and_id_input import NameAndIdInput - - -class TspublicRestV2AdminForcelogoutRequest(object): - - """Implementation of the 'Tspublic Rest V2 Admin Forcelogout Request' model. - - TODO: type model description here. - - Attributes: - user (list of NameAndIdInput): A JSON array of name of users or GUIDs - of groups or both. When both are given then id is considered. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "user": 'user' - } - - _optionals = [ - 'user', - ] - - def __init__(self, - user=APIHelper.SKIP): - """Constructor for the TspublicRestV2AdminForcelogoutRequest class""" - - # Initialize members of the class - if user is not APIHelper.SKIP: - self.user = user - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - user = None - if dictionary.get('user') is not None: - user = [NameAndIdInput.from_dictionary(x) for x in dictionary.get('user')] - else: - user = APIHelper.SKIP - # Return an object of this model - return cls(user) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_resetpassword_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_resetpassword_request.py deleted file mode 100644 index 88498a6cf..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_resetpassword_request.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2AdminResetpasswordRequest(object): - - """Implementation of the 'Tspublic Rest V2 Admin Resetpassword Request' model. - - TODO: type model description here. - - Attributes: - name (string): User name of the user account - id (string): The GUID of the user account to query. - new_password (string): A new password for the user. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "new_password": 'newPassword', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - new_password=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2AdminResetpasswordRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.new_password = new_password - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - new_password = dictionary.get("newPassword") if dictionary.get("newPassword") else None - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(new_password, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_syncprincipal_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_syncprincipal_request.py deleted file mode 100644 index d81c9b190..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_admin_syncprincipal_request.py +++ /dev/null @@ -1,103 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2AdminSyncprincipalRequest(object): - - """Implementation of the 'Tspublic Rest V2 Admin Syncprincipal Request' model. - - TODO: type model description here. - - Attributes: - principal_object (list of object): A JSON array of principal objects - containing all users and groups present in the external system. - Example: { "name": "Customer Success", "displayName": - "Customer Success", "description": "CS", "created": - 1568926267025, "modified": 1568926982242, "principalTypeEnum": - "LOCAL_GROUP", "groupNames": [], "visibility": "DEFAULT" }, - { "name": "test", "displayName": "test one", "created": - 1587573621279, "modified": 1587573621674, "mail": - "test2@test.com", "principalTypeEnum": "LOCAL_USER", - "groupNames": [ "Administrator", "All" ], "visibility": - "DEFAULT" } You can leave the created and modified dates blank - for new users. You can specify if the principal is a user - (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum - keyword. Set visibility to NON_SHARABLE, if you do not want the - user to be able to share ThoughtSpot objects with other users in - this group. - update_modified (bool): Specifies whether to apply the changes to - users and groups already in the cluster based on the principal - object list input. - delete_removed (bool): Specifies whether to delete the users and - groups already in the cluster if not present in the principal - object list input. - new_user_password (string): Assign a password for new users added - during the sync operation. All new users added will have this - password. It is mandatory to provide value for this field if new - users are included in the input list. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "principal_object": 'principalObject', - "update_modified": 'updateModified', - "delete_removed": 'deleteRemoved', - "new_user_password": 'newUserPassword' - } - - _optionals = [ - 'update_modified', - 'delete_removed', - 'new_user_password', - ] - - def __init__(self, - principal_object=None, - update_modified=False, - delete_removed=False, - new_user_password=APIHelper.SKIP): - """Constructor for the TspublicRestV2AdminSyncprincipalRequest class""" - - # Initialize members of the class - self.principal_object = principal_object - self.update_modified = update_modified - self.delete_removed = delete_removed - if new_user_password is not APIHelper.SKIP: - self.new_user_password = new_user_password - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - principal_object = dictionary.get("principalObject") if dictionary.get("principalObject") else None - update_modified = dictionary.get("updateModified") if dictionary.get("updateModified") else False - delete_removed = dictionary.get("deleteRemoved") if dictionary.get("deleteRemoved") else False - new_user_password = dictionary.get("newUserPassword") if dictionary.get("newUserPassword") else APIHelper.SKIP - # Return an object of this model - return cls(principal_object, - update_modified, - delete_removed, - new_user_password) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_addtable_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_addtable_request.py deleted file mode 100644 index eebf31e31..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_addtable_request.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.models.add_table_input import AddTableInput - - -class TspublicRestV2ConnectionAddtableRequest(object): - - """Implementation of the 'Tspublic Rest V2 Connection Addtable Request' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the connection - table (list of AddTableInput): A JSON array of table details - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "table": 'table' - } - - def __init__(self, - id=None, - table=None): - """Constructor for the TspublicRestV2ConnectionAddtableRequest class""" - - # Initialize members of the class - self.id = id - self.table = table - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - table = None - if dictionary.get('table') is not None: - table = [AddTableInput.from_dictionary(x) for x in dictionary.get('table')] - # Return an object of this model - return cls(id, - table) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_create_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_create_request.py deleted file mode 100644 index cdd43eeca..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_create_request.py +++ /dev/null @@ -1,81 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2ConnectionCreateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Connection Create Request' model. - - TODO: type model description here. - - Attributes: - mtype (Type14Enum): Type of the data connection. - name (string): Name of the connection - description (string): A short description of the connection. - configuration (string): A JSON object of the connection metadata. The - metadata must include configuration attributes required to create - the connection. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "name": 'name', - "configuration": 'configuration', - "description": 'description' - } - - _optionals = [ - 'description', - ] - - def __init__(self, - mtype=None, - name=None, - configuration=None, - description=APIHelper.SKIP): - """Constructor for the TspublicRestV2ConnectionCreateRequest class""" - - # Initialize members of the class - self.mtype = mtype - self.name = name - if description is not APIHelper.SKIP: - self.description = description - self.configuration = configuration - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else None - name = dictionary.get("name") if dictionary.get("name") else None - configuration = dictionary.get("configuration") if dictionary.get("configuration") else None - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - # Return an object of this model - return cls(mtype, - name, - configuration, - description) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_removetable_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_removetable_request.py deleted file mode 100644 index cd07f245b..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_removetable_request.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.models.table_input import TableInput - - -class TspublicRestV2ConnectionRemovetableRequest(object): - - """Implementation of the 'Tspublic Rest V2 Connection Removetable Request' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the connection - table (list of TableInput): A JSON array of name or GUIDs of the table - or both. At least one input is required. Provide either table name - or id. When both are given then id is considered - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "table": 'table' - } - - def __init__(self, - id=None, - table=None): - """Constructor for the TspublicRestV2ConnectionRemovetableRequest class""" - - # Initialize members of the class - self.id = id - self.table = table - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - table = None - if dictionary.get('table') is not None: - table = [TableInput.from_dictionary(x) for x in dictionary.get('table')] - # Return an object of this model - return cls(id, - table) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_search_request.py deleted file mode 100644 index b292904c4..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_search_request.py +++ /dev/null @@ -1,153 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.tag_name_and_id_input import TagNameAndIdInput - - -class TspublicRestV2ConnectionSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Connection Search Request' model. - - TODO: type model description here. - - Attributes: - offset (int): The offset point, starting from where the records should - be included in the response. If no input is provided then offset - starts from 0 - batch_number (int): An alternate way to set offset for the starting - point of the response. Offset field should be kept blank to use - the value from this field. Offset value will be calculated as - (batchNumber - 1) * batchSize. It is mandatory to provide a value - for batchSize with batchNumber. Example: Assume response has 100 - records. Now, batchNumber is set as 2 and batchSize as 10, then - offset value will be 10. So, 10 records starting from 11th record - will be considered. - batch_size (int): The number of records that should be included in the - response starting from offset position. If no input is provided, - then all records starting from the value provided in offset is - included in the response. - sort_by (SortBy1Enum): Field based on which the re.sponse needs to be - ordered. Valid values - sort_order (SortOrder1Enum): Order in which sortBy should be applied. - Valid values - mtype (Type15Enum): Type of the connect being searched. Valid values: - SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|ST - ARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - name_pattern (string): A pattern to match the name of the connection. - This parameter supports matching case-insensitive strings. For a - wildcard match, use %. - fetch_id (list of string): A JSON array containing the GUIDs of the - connections that you want to fetch. - skip_id (list of string): A JSON array containing the GUIDs of the - connections that you want to skip. - tag (list of TagNameAndIdInput): A JSON array of name or GUID of tags - or both. When both are given then id is considered - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "offset": 'offset', - "batch_number": 'batchNumber', - "batch_size": 'batchSize', - "sort_by": 'sortBy', - "sort_order": 'sortOrder', - "name_pattern": 'namePattern', - "fetch_id": 'fetchId', - "skip_id": 'skipId', - "tag": 'tag' - } - - _optionals = [ - 'offset', - 'batch_number', - 'batch_size', - 'sort_by', - 'sort_order', - 'name_pattern', - 'fetch_id', - 'skip_id', - 'tag', - ] - - def __init__(self, - mtype=None, - offset=0, - batch_number=-1, - batch_size=-1, - sort_by='DEFAULT', - sort_order=APIHelper.SKIP, - name_pattern=APIHelper.SKIP, - fetch_id=APIHelper.SKIP, - skip_id=APIHelper.SKIP, - tag=APIHelper.SKIP): - """Constructor for the TspublicRestV2ConnectionSearchRequest class""" - - # Initialize members of the class - self.offset = offset - self.batch_number = batch_number - self.batch_size = batch_size - self.sort_by = sort_by - if sort_order is not APIHelper.SKIP: - self.sort_order = sort_order - self.mtype = mtype - if name_pattern is not APIHelper.SKIP: - self.name_pattern = name_pattern - if fetch_id is not APIHelper.SKIP: - self.fetch_id = fetch_id - if skip_id is not APIHelper.SKIP: - self.skip_id = skip_id - if tag is not APIHelper.SKIP: - self.tag = tag - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else None - offset = dictionary.get("offset") if dictionary.get("offset") else 0 - batch_number = dictionary.get("batchNumber") if dictionary.get("batchNumber") else -1 - batch_size = dictionary.get("batchSize") if dictionary.get("batchSize") else -1 - sort_by = dictionary.get("sortBy") if dictionary.get("sortBy") else 'DEFAULT' - sort_order = dictionary.get("sortOrder") if dictionary.get("sortOrder") else APIHelper.SKIP - name_pattern = dictionary.get("namePattern") if dictionary.get("namePattern") else APIHelper.SKIP - fetch_id = dictionary.get("fetchId") if dictionary.get("fetchId") else APIHelper.SKIP - skip_id = dictionary.get("skipId") if dictionary.get("skipId") else APIHelper.SKIP - tag = None - if dictionary.get('tag') is not None: - tag = [TagNameAndIdInput.from_dictionary(x) for x in dictionary.get('tag')] - else: - tag = APIHelper.SKIP - # Return an object of this model - return cls(mtype, - offset, - batch_number, - batch_size, - sort_by, - sort_order, - name_pattern, - fetch_id, - skip_id, - tag) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_table_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_table_request.py deleted file mode 100644 index 6cb214859..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_table_request.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2ConnectionTableRequest(object): - - """Implementation of the 'Tspublic Rest V2 Connection Table Request' model. - - TODO: type model description here. - - Attributes: - id (string): The GUID of the connection - configuration (string): A JSON object of the connection metadata. If - this field is left empty, then the configuration saved in the - connection is considered. To get the tables based on a different - configuration, include required attributes in the connection - configuration JSON. Example: Get tables from Snowflake - with a different user account than specified in the connection: - {"user":"test_user","password":"test_pwd","role":"test_role"} - Get tables from Redshift for different database than specified in - the connection: {"database":"test_db"} - include_column (bool): When set to true, the response will include - column level details as well - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "configuration": 'configuration', - "include_column": 'includeColumn' - } - - _optionals = [ - 'configuration', - 'include_column', - ] - - def __init__(self, - id=None, - configuration=APIHelper.SKIP, - include_column=True): - """Constructor for the TspublicRestV2ConnectionTableRequest class""" - - # Initialize members of the class - self.id = id - if configuration is not APIHelper.SKIP: - self.configuration = configuration - self.include_column = include_column - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - configuration = dictionary.get("configuration") if dictionary.get("configuration") else APIHelper.SKIP - include_column = dictionary.get("includeColumn") if dictionary.get("includeColumn") else True - # Return an object of this model - return cls(id, - configuration, - include_column) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_tablecoloumn_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_tablecoloumn_request.py deleted file mode 100644 index ff7f60d64..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_tablecoloumn_request.py +++ /dev/null @@ -1,84 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.connection_table_columns_input import ConnectionTableColumnsInput - - -class TspublicRestV2ConnectionTablecoloumnRequest(object): - - """Implementation of the 'Tspublic Rest V2 Connection Tablecoloumn Request' model. - - TODO: type model description here. - - Attributes: - id (string): The GUID of the connection - configuration (string): A JSON object of the connection metadata. If - this field is left empty, then the configuration saved in the - connection is considered. To get the tables based on a different - configuration, include required attributes in the connection - configuration JSON. Example: Get tables from Snowflake - with a different user account than specified in the connection: - {"user":"test_user","password":"test_pwd","role":"test_role"} - Get tables from Redshift for different database than specified in - the connection: {"database":"test_db"} - table (list of ConnectionTableColumnsInput): List of table details - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "table": 'table', - "configuration": 'configuration' - } - - _optionals = [ - 'configuration', - ] - - def __init__(self, - id=None, - table=None, - configuration=APIHelper.SKIP): - """Constructor for the TspublicRestV2ConnectionTablecoloumnRequest class""" - - # Initialize members of the class - self.id = id - if configuration is not APIHelper.SKIP: - self.configuration = configuration - self.table = table - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - table = None - if dictionary.get('table') is not None: - table = [ConnectionTableColumnsInput.from_dictionary(x) for x in dictionary.get('table')] - configuration = dictionary.get("configuration") if dictionary.get("configuration") else APIHelper.SKIP - # Return an object of this model - return cls(id, - table, - configuration) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_update_request.py deleted file mode 100644 index bc47c8016..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_connection_update_request.py +++ /dev/null @@ -1,84 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2ConnectionUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Connection Update Request' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the connection - name (string): The text to update the name of the connection. - description (string): The text to update the description of the - connection. - configuration (string): A JSON object of the connection metadata. - Include all the configuration attributes with original value along - with the changes required to any attribute. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "configuration": 'configuration', - "name": 'name', - "description": 'description' - } - - _optionals = [ - 'name', - 'description', - ] - - def __init__(self, - id=None, - configuration=None, - name=APIHelper.SKIP, - description=APIHelper.SKIP): - """Constructor for the TspublicRestV2ConnectionUpdateRequest class""" - - # Initialize members of the class - self.id = id - if name is not APIHelper.SKIP: - self.name = name - if description is not APIHelper.SKIP: - self.description = description - self.configuration = configuration - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - configuration = dictionary.get("configuration") if dictionary.get("configuration") else None - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - # Return an object of this model - return cls(id, - configuration, - name, - description) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_association_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_association_update_request.py deleted file mode 100644 index 90aad1331..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_association_update_request.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TspublicRestV2CustomactionAssociationUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Customaction Association Update Request' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the custom action - association (string): A JSON map of the attributes with association of - the action to ThoughtSpot object ID Example: - {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet - action","version":"v2","type":"URL","detail":{"link":"https://unpkg - .com","function":"my-worksheet-action","authSelect":"NONE","authTok - en":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","addition - alUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a- - 275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"} - }},"context":"NONE","availability":[ - ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "association": 'association' - } - - def __init__(self, - id=None, - association=None): - """Constructor for the TspublicRestV2CustomactionAssociationUpdateRequest class""" - - # Initialize members of the class - self.id = id - self.association = association - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - association = dictionary.get("association") if dictionary.get("association") else None - # Return an object of this model - return cls(id, - association) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_create_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_create_request.py deleted file mode 100644 index d4efa3be0..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_create_request.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TspublicRestV2CustomactionCreateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Customaction Create Request' model. - - TODO: type model description here. - - Attributes: - configuration (string): A JSON object with the key-value pair of - configuration attributes Example: - {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg - test","version":"v2","type":"URL","detail":{"link":"https://unpkg.c - om - ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfas - adf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","a - dditionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328 - -40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"valu - e1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70 - a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NO - NE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a- - 8327-a30e99bcc72b"]} - - """ - - # Create a mapping from Model property names to API property names - _names = { - "configuration": 'configuration' - } - - def __init__(self, - configuration=None): - """Constructor for the TspublicRestV2CustomactionCreateRequest class""" - - # Initialize members of the class - self.configuration = configuration - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - configuration = dictionary.get("configuration") if dictionary.get("configuration") else None - # Return an object of this model - return cls(configuration) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_search_request.py deleted file mode 100644 index af9ee9dcb..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_search_request.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2CustomactionSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Customaction Search Request' model. - - TODO: type model description here. - - Attributes: - tag (list of string): A JSON array of tag GUIDs. If tags are applied - to worksheets, search answers, or Liveboard visualizations, and - custom actions are associated to these objects, you can use this - parameter to filter the custom action data by tags. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "tag": 'tag' - } - - _optionals = [ - 'tag', - ] - - def __init__(self, - tag=APIHelper.SKIP): - """Constructor for the TspublicRestV2CustomactionSearchRequest class""" - - # Initialize members of the class - if tag is not APIHelper.SKIP: - self.tag = tag - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - tag = dictionary.get("tag") if dictionary.get("tag") else APIHelper.SKIP - # Return an object of this model - return cls(tag) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_update_request.py deleted file mode 100644 index 7fa492548..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_customaction_update_request.py +++ /dev/null @@ -1,73 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TspublicRestV2CustomactionUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Customaction Update Request' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of the custom action - configuration (string): A JSON object with the key-value pair of - configuration attributes Example: - {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg - test","version":"v2","type":"URL","detail":{"link":"https://unpkg.c - om - ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfas - adf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","a - dditionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328 - -40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"valu - e1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70 - a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NO - NE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a- - 8327-a30e99bcc72b"]} - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "configuration": 'configuration' - } - - def __init__(self, - id=None, - configuration=None): - """Constructor for the TspublicRestV2CustomactionUpdateRequest class""" - - # Initialize members of the class - self.id = id - self.configuration = configuration - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - configuration = dictionary.get("configuration") if dictionary.get("configuration") else None - # Return an object of this model - return cls(id, - configuration) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_answer_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_answer_request.py deleted file mode 100644 index e314c6657..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_answer_request.py +++ /dev/null @@ -1,101 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2DataAnswerRequest(object): - - """Implementation of the 'Tspublic Rest V2 Data Answer Request' model. - - TODO: type model description here. - - Attributes: - offset (int): The offset point, starting from where the records should - be included in the response. If no input is provided then offset - starts from 0. - batch_number (int): An alternate way to set offset for the starting - point of the response. The value in offset field will not be - considered if batchNumber field has value greater than 0. Offset - value will be calculated as (batchNumber - 1) * batchSize. It is - mandatory to provide a value for batchSize with batchNumber. - Example: Assume response has 100 records. Now, batchNumber is - set as 2 and batchSize as 10, then offset value will be 10. So, 10 - records starting from 11th record will be considered. - batch_size (int): The number of records that should be included in the - response starting from offset position. If no input is provided, - then all records starting from the value provided in offset is - included in the response - id (string): The GUID of the Answer - format_type (FormatTypeEnum): The format of the data in the response. - FULL: The response comes in "column":"value" format. COMPACT: - The response includes only the value of the columns. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "offset": 'offset', - "batch_number": 'batchNumber', - "batch_size": 'batchSize', - "format_type": 'formatType' - } - - _optionals = [ - 'offset', - 'batch_number', - 'batch_size', - 'format_type', - ] - - def __init__(self, - id=None, - offset=0, - batch_number=-1, - batch_size=-1, - format_type='COMPACT'): - """Constructor for the TspublicRestV2DataAnswerRequest class""" - - # Initialize members of the class - self.offset = offset - self.batch_number = batch_number - self.batch_size = batch_size - self.id = id - self.format_type = format_type - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - offset = dictionary.get("offset") if dictionary.get("offset") else 0 - batch_number = dictionary.get("batchNumber") if dictionary.get("batchNumber") else -1 - batch_size = dictionary.get("batchSize") if dictionary.get("batchSize") else -1 - format_type = dictionary.get("formatType") if dictionary.get("formatType") else 'COMPACT' - # Return an object of this model - return cls(id, - offset, - batch_number, - batch_size, - format_type) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_liveboard_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_liveboard_request.py deleted file mode 100644 index d04719ca8..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_liveboard_request.py +++ /dev/null @@ -1,152 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2DataLiveboardRequest(object): - - """Implementation of the 'Tspublic Rest V2 Data Liveboard Request' model. - - TODO: type model description here. - - Attributes: - offset (int): The offset point, starting from where the records should - be included in the response. If no input is provided then offset - starts from 0. - batch_number (int): An alternate way to set offset for the starting - point of the response. The value in offset field will not be - considered if batchNumber field has value greater than 0. Offset - value will be calculated as (batchNumber - 1) * batchSize. It is - mandatory to provide a value for batchSize with batchNumber. - Example: Assume response has 100 records. Now, batchNumber is - set as 2 and batchSize as 10, then offset value will be 10. So, 10 - records starting from 11th record will be considered. - batch_size (int): The number of records that should be included in the - response starting from offset position. If no input is provided, - then all records starting from the value provided in offset is - included in the response - id (string): The GUID of the Liveboard - transient_content (string): If you have embedded ThoughtSpot in your - host application, and you want to download Liveboard data with - unsaved changes then, pass the transient content from the browser - fetch request, using the getExportRequestForCurrentPinboard - method. For more information, see - https://developers.thoughtspot.com/docs/?pageid=liveboard-export-ap - i#transient-pinboard . If value for this field is provided, then - id will not be considered. - viz_id (list of string): A JSON array of GUIDs of the visualizations - in the Liveboard. - runtime_filter (string): JSON object which contains filter condition - to filter the data at the time of data retrieval. Example: - {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2": - "BET","val2":["1625126400000","1625126400000"]} For more - information, see - https://developers.thoughtspot.com/docs/?pageid=runtime-filters - runtime_sort (string): JSON object which provides columns to sort the - data at the time of data retrieval. Example: - {"sortCol1":"region","asc1":true,"sortCol2":"date"} For more - information, see - https://developers.thoughtspot.com/docs/?pageid=runtime-filters. - format_type (FormatTypeEnum): The format of the data in the response. - FULL: The response comes in "column":"value" format. COMPACT: - The response includes only the value of the columns. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "offset": 'offset', - "batch_number": 'batchNumber', - "batch_size": 'batchSize', - "id": 'id', - "transient_content": 'transientContent', - "viz_id": 'vizId', - "runtime_filter": 'runtimeFilter', - "runtime_sort": 'runtimeSort', - "format_type": 'formatType' - } - - _optionals = [ - 'offset', - 'batch_number', - 'batch_size', - 'id', - 'transient_content', - 'viz_id', - 'runtime_filter', - 'runtime_sort', - 'format_type', - ] - - def __init__(self, - offset=0, - batch_number=-1, - batch_size=-1, - id=APIHelper.SKIP, - transient_content=APIHelper.SKIP, - viz_id=APIHelper.SKIP, - runtime_filter=APIHelper.SKIP, - runtime_sort=APIHelper.SKIP, - format_type='COMPACT'): - """Constructor for the TspublicRestV2DataLiveboardRequest class""" - - # Initialize members of the class - self.offset = offset - self.batch_number = batch_number - self.batch_size = batch_size - if id is not APIHelper.SKIP: - self.id = id - if transient_content is not APIHelper.SKIP: - self.transient_content = transient_content - if viz_id is not APIHelper.SKIP: - self.viz_id = viz_id - if runtime_filter is not APIHelper.SKIP: - self.runtime_filter = runtime_filter - if runtime_sort is not APIHelper.SKIP: - self.runtime_sort = runtime_sort - self.format_type = format_type - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - offset = dictionary.get("offset") if dictionary.get("offset") else 0 - batch_number = dictionary.get("batchNumber") if dictionary.get("batchNumber") else -1 - batch_size = dictionary.get("batchSize") if dictionary.get("batchSize") else -1 - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - transient_content = dictionary.get("transientContent") if dictionary.get("transientContent") else APIHelper.SKIP - viz_id = dictionary.get("vizId") if dictionary.get("vizId") else APIHelper.SKIP - runtime_filter = dictionary.get("runtimeFilter") if dictionary.get("runtimeFilter") else APIHelper.SKIP - runtime_sort = dictionary.get("runtimeSort") if dictionary.get("runtimeSort") else APIHelper.SKIP - format_type = dictionary.get("formatType") if dictionary.get("formatType") else 'COMPACT' - # Return an object of this model - return cls(offset, - batch_number, - batch_size, - id, - transient_content, - viz_id, - runtime_filter, - runtime_sort, - format_type) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_search_request.py deleted file mode 100644 index fd0523509..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_data_search_request.py +++ /dev/null @@ -1,109 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2DataSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Data Search Request' model. - - TODO: type model description here. - - Attributes: - offset (int): The offset point, starting from where the records should - be included in the response. If no input is provided then offset - starts from 0. - batch_number (int): An alternate way to set offset for the starting - point of the response. The value in offset field will not be - considered if batchNumber field has value greater than 0. Offset - value will be calculated as (batchNumber - 1) * batchSize. It is - mandatory to provide a value for batchSize with batchNumber. - Example: Assume response has 100 records. Now, batchNumber is - set as 2 and batchSize as 10, then offset value will be 10. So, 10 - records starting from 11th record will be considered. - batch_size (int): The number of records that should be included in the - response starting from offset position. If no input is provided, - then all records starting from the value provided in offset is - included in the response - query_string (string): The data search query string. Example: - [revenue] > 1000 [ship mode] = 'air' - data_object_id (string): The GUID of the data object, either a - worksheet, a view, or a table. - format_type (FormatTypeEnum): The format of the data in the response. - FULL: The response comes in "column":"value" format. COMPACT: - The response includes only the value of the columns. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "query_string": 'queryString', - "data_object_id": 'dataObjectId', - "offset": 'offset', - "batch_number": 'batchNumber', - "batch_size": 'batchSize', - "format_type": 'formatType' - } - - _optionals = [ - 'offset', - 'batch_number', - 'batch_size', - 'format_type', - ] - - def __init__(self, - query_string=None, - data_object_id=None, - offset=-1, - batch_number=-1, - batch_size=-1, - format_type='COMPACT'): - """Constructor for the TspublicRestV2DataSearchRequest class""" - - # Initialize members of the class - self.offset = offset - self.batch_number = batch_number - self.batch_size = batch_size - self.query_string = query_string - self.data_object_id = data_object_id - self.format_type = format_type - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - query_string = dictionary.get("queryString") if dictionary.get("queryString") else None - data_object_id = dictionary.get("dataObjectId") if dictionary.get("dataObjectId") else None - offset = dictionary.get("offset") if dictionary.get("offset") else -1 - batch_number = dictionary.get("batchNumber") if dictionary.get("batchNumber") else -1 - batch_size = dictionary.get("batchSize") if dictionary.get("batchSize") else -1 - format_type = dictionary.get("formatType") if dictionary.get("formatType") else 'COMPACT' - # Return an object of this model - return cls(query_string, - data_object_id, - offset, - batch_number, - batch_size, - format_type) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_create_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_create_request.py deleted file mode 100644 index 6e4a91d0e..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_create_request.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2DatabaseTableCreateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Database Table Create Request' model. - - TODO: type model description here. - - Attributes: - create_database (bool): Flag to indicate if the database and schema - should be created if they do not exist in Falcon. (Valid values: - True/False) - schema (string): DDL of the table to be created. Example: - {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"tab - le":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}], - "column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32 - "},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{" - id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_ - DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CH - AR"}]}} - - """ - - # Create a mapping from Model property names to API property names - _names = { - "create_database": 'createDatabase', - "schema": 'schema' - } - - _optionals = [ - 'create_database', - 'schema', - ] - - def __init__(self, - create_database=True, - schema=APIHelper.SKIP): - """Constructor for the TspublicRestV2DatabaseTableCreateRequest class""" - - # Initialize members of the class - self.create_database = create_database - if schema is not APIHelper.SKIP: - self.schema = schema - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - create_database = dictionary.get("createDatabase") if dictionary.get("createDatabase") else True - schema = dictionary.get("schema") if dictionary.get("schema") else APIHelper.SKIP - # Return an object of this model - return cls(create_database, - schema) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_runquery_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_runquery_request.py deleted file mode 100644 index a437e63a8..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_database_table_runquery_request.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TspublicRestV2DatabaseTableRunqueryRequest(object): - - """Implementation of the 'Tspublic Rest V2 Database Table Runquery Request' model. - - TODO: type model description here. - - Attributes: - statement (list of string): A JSON array of TQL statements separated - by semi-colon (;). Each TQL statement should end with semi-colon - (;). The TQL operations that can be run through this API are - restricted to create database and schema, alter table, delete and - update table rows. If a TQL statement fails, then the subsequent - statements in the array are not run. Example: ["alter table - test_db.test_schema.test_table drop contraint primary key;";"alter - table test_db.test_schema.test_table add column test_col4 - varchar(10) DEFAULT '';"] - - """ - - # Create a mapping from Model property names to API property names - _names = { - "statement": 'statement' - } - - def __init__(self, - statement=None): - """Constructor for the TspublicRestV2DatabaseTableRunqueryRequest class""" - - # Initialize members of the class - self.statement = statement - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - statement = dictionary.get("statement") if dictionary.get("statement") else None - # Return an object of this model - return cls(statement) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addgroup_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addgroup_request.py deleted file mode 100644 index e1668606e..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addgroup_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput - - -class TspublicRestV2GroupAddgroupRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Addgroup Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): The GUID of the group to query. - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "groups": 'groups', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - groups=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2GroupAddgroupRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.groups = groups - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(groups, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addprivilege_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addprivilege_request.py deleted file mode 100644 index 57d9ebbbe..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_addprivilege_request.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2GroupAddprivilegeRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Addprivilege Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): The GUID of the group to query. - privileges (list of PrivilegeEnum): A JSON array of name of users or - GUIDs of users or both. When both are given then id is considered - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "privileges": 'privileges' - } - - _optionals = [ - 'name', - 'id', - 'privileges', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - privileges=APIHelper.SKIP): - """Constructor for the TspublicRestV2GroupAddprivilegeRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if privileges is not APIHelper.SKIP: - self.privileges = privileges - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - privileges) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_adduser_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_adduser_request.py deleted file mode 100644 index 0f524091e..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_adduser_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2GroupAdduserRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Adduser Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): The GUID of the group to query. - users (list of UserNameAndIDInput): Array of user name that you want - to update in user group. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "users": 'users', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - users=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2GroupAdduserRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.users = users - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - users = None - if dictionary.get('users') is not None: - users = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('users')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(users, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_create_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_create_request.py deleted file mode 100644 index c601e896e..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_create_request.py +++ /dev/null @@ -1,140 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2GroupCreateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Create Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the user group. The group name string must be - unique. - display_name (string): A unique display name string for the user - group, for example, Developer group. - visibility (Visibility2Enum): Visibility of the user group. The - visibility attribute is set to DEFAULT. The DEFAULT attribute - makes the user group visible for other user groups and allows them - to share objects. - description (string): Description text for the group. - privileges (list of PrivilegeEnum): A JSON array of privileges - assigned to the group - org_id (int): Unique identifier of the organization. If no value is - provided then group will be created in the organization associated - with the login session. - groups (list of GroupNameAndIDInput): Array of objects of groups that - the group belong to. - users (list of UserNameAndIDInput): Array of names of user names that - the group belong to. - mtype (Type10Enum): Type of user group. LOCAL_GROUP indicates that the - user is created locally in the ThoughtSpot system. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "display_name": 'displayName', - "visibility": 'visibility', - "description": 'description', - "privileges": 'privileges', - "org_id": 'orgId', - "groups": 'groups', - "users": 'users', - "mtype": 'type' - } - - _optionals = [ - 'visibility', - 'description', - 'privileges', - 'org_id', - 'groups', - 'users', - 'mtype', - ] - - def __init__(self, - name=None, - display_name=None, - visibility='DEFAULT', - description=APIHelper.SKIP, - privileges=APIHelper.SKIP, - org_id=APIHelper.SKIP, - groups=APIHelper.SKIP, - users=APIHelper.SKIP, - mtype='LOCAL_GROUP'): - """Constructor for the TspublicRestV2GroupCreateRequest class""" - - # Initialize members of the class - self.name = name - self.display_name = display_name - self.visibility = visibility - if description is not APIHelper.SKIP: - self.description = description - if privileges is not APIHelper.SKIP: - self.privileges = privileges - if org_id is not APIHelper.SKIP: - self.org_id = org_id - if groups is not APIHelper.SKIP: - self.groups = groups - if users is not APIHelper.SKIP: - self.users = users - self.mtype = mtype - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else None - display_name = dictionary.get("displayName") if dictionary.get("displayName") else None - visibility = dictionary.get("visibility") if dictionary.get("visibility") else 'DEFAULT' - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - org_id = dictionary.get("orgId") if dictionary.get("orgId") else APIHelper.SKIP - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - else: - groups = APIHelper.SKIP - users = None - if dictionary.get('users') is not None: - users = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('users')] - else: - users = APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else 'LOCAL_GROUP' - # Return an object of this model - return cls(name, - display_name, - visibility, - description, - privileges, - org_id, - groups, - users, - mtype) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removegroup_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removegroup_request.py deleted file mode 100644 index 36cb166bd..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removegroup_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput - - -class TspublicRestV2GroupRemovegroupRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Removegroup Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): The GUID of the group to query. - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "groups": 'groups', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - groups=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2GroupRemovegroupRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.groups = groups - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(groups, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeprivilege_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeprivilege_request.py deleted file mode 100644 index 1611bff22..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeprivilege_request.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2GroupRemoveprivilegeRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Removeprivilege Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): The GUID of the group to query. - privileges (list of PrivilegeEnum): A JSON array of name of users or - GUIDs of users or both. When both are given then id is considered - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "privileges": 'privileges' - } - - _optionals = [ - 'name', - 'id', - 'privileges', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - privileges=APIHelper.SKIP): - """Constructor for the TspublicRestV2GroupRemoveprivilegeRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if privileges is not APIHelper.SKIP: - self.privileges = privileges - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - privileges) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeuser_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeuser_request.py deleted file mode 100644 index 3407eef1b..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_removeuser_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2GroupRemoveuserRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Removeuser Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the group - id (string): The GUID of the group to query. - users (list of UserNameAndIDInput): Array of user name that you want - to delete from user group. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "users": 'users', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - users=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2GroupRemoveuserRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.users = users - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - users = None - if dictionary.get('users') is not None: - users = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('users')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(users, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_search_request.py deleted file mode 100644 index ed2d3e0d6..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_search_request.py +++ /dev/null @@ -1,152 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2GroupSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Search Request' model. - - TODO: type model description here. - - Attributes: - output_fields (list of string): Array of field names that need to be - included in the response - name (string): Name of the user group - id (string): GUID of the group to update - display_name (string): A unique display name string for the user - group, for example, Developer group. - visibility (string): Visibility of the user group. The visibility - attribute is set to DEFAULT. The DEFAULT attribute makes the user - group visible for other user groups and allows them to share - objects. - description (string): Description text for the group. - privileges (list of PrivilegeEnum): A JSON array of privileges - assigned to the group - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - users (list of UserNameAndIDInput): Array of user name that associated - with group. - mtype (string): Type of user group. LOCAL_GROUP indicates that the - user is created locally in the ThoughtSpot system. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "output_fields": 'outputFields', - "name": 'name', - "id": 'id', - "display_name": 'displayName', - "visibility": 'visibility', - "description": 'description', - "privileges": 'privileges', - "groups": 'groups', - "users": 'users', - "mtype": 'type' - } - - _optionals = [ - 'output_fields', - 'name', - 'id', - 'display_name', - 'visibility', - 'description', - 'privileges', - 'groups', - 'users', - 'mtype', - ] - - def __init__(self, - output_fields=APIHelper.SKIP, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - display_name=APIHelper.SKIP, - visibility=APIHelper.SKIP, - description=APIHelper.SKIP, - privileges=APIHelper.SKIP, - groups=APIHelper.SKIP, - users=APIHelper.SKIP, - mtype=APIHelper.SKIP): - """Constructor for the TspublicRestV2GroupSearchRequest class""" - - # Initialize members of the class - if output_fields is not APIHelper.SKIP: - self.output_fields = output_fields - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if display_name is not APIHelper.SKIP: - self.display_name = display_name - if visibility is not APIHelper.SKIP: - self.visibility = visibility - if description is not APIHelper.SKIP: - self.description = description - if privileges is not APIHelper.SKIP: - self.privileges = privileges - if groups is not APIHelper.SKIP: - self.groups = groups - if users is not APIHelper.SKIP: - self.users = users - if mtype is not APIHelper.SKIP: - self.mtype = mtype - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - output_fields = dictionary.get("outputFields") if dictionary.get("outputFields") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - display_name = dictionary.get("displayName") if dictionary.get("displayName") else APIHelper.SKIP - visibility = dictionary.get("visibility") if dictionary.get("visibility") else APIHelper.SKIP - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - else: - groups = APIHelper.SKIP - users = None - if dictionary.get('users') is not None: - users = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('users')] - else: - users = APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - # Return an object of this model - return cls(output_fields, - name, - id, - display_name, - visibility, - description, - privileges, - groups, - users, - mtype) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_update_request.py deleted file mode 100644 index 39fa75cbd..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_group_update_request.py +++ /dev/null @@ -1,151 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2GroupUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Group Update Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the user group. The group name string must be - unique. - id (string): he GUID of the user account to query. - display_name (string): A unique display name string for the user - group, for example, Developer group. - visibility (Visibility2Enum): Visibility of the user group. The - visibility attribute is set to DEFAULT. The DEFAULT attribute - makes the user group visible for other user groups and allows them - to share objects. - description (string): Description text for the group. - privileges (list of PrivilegeEnum): A JSON array of privileges - assigned to the group - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - users (list of UserNameAndIDInput): Array of object, A JSON array of - name of users of users. - assigned_liveboards (list of string): Array of string. An array of - liveboard ids to be assigned to the group. - mtype (Type10Enum): Type of user group. LOCAL_GROUP indicates that the - user is created locally in the ThoughtSpot system. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "display_name": 'displayName', - "visibility": 'visibility', - "description": 'description', - "privileges": 'privileges', - "groups": 'groups', - "users": 'users', - "assigned_liveboards": 'assignedLiveboards', - "mtype": 'type' - } - - _optionals = [ - 'name', - 'id', - 'display_name', - 'visibility', - 'description', - 'privileges', - 'groups', - 'users', - 'assigned_liveboards', - 'mtype', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - display_name=APIHelper.SKIP, - visibility='DEFAULT', - description=APIHelper.SKIP, - privileges=APIHelper.SKIP, - groups=APIHelper.SKIP, - users=APIHelper.SKIP, - assigned_liveboards=APIHelper.SKIP, - mtype='LOCAL_GROUP'): - """Constructor for the TspublicRestV2GroupUpdateRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if display_name is not APIHelper.SKIP: - self.display_name = display_name - self.visibility = visibility - if description is not APIHelper.SKIP: - self.description = description - if privileges is not APIHelper.SKIP: - self.privileges = privileges - if groups is not APIHelper.SKIP: - self.groups = groups - if users is not APIHelper.SKIP: - self.users = users - if assigned_liveboards is not APIHelper.SKIP: - self.assigned_liveboards = assigned_liveboards - self.mtype = mtype - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - display_name = dictionary.get("displayName") if dictionary.get("displayName") else APIHelper.SKIP - visibility = dictionary.get("visibility") if dictionary.get("visibility") else 'DEFAULT' - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - else: - groups = APIHelper.SKIP - users = None - if dictionary.get('users') is not None: - users = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('users')] - else: - users = APIHelper.SKIP - assigned_liveboards = dictionary.get("assignedLiveboards") if dictionary.get("assignedLiveboards") else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else 'LOCAL_GROUP' - # Return an object of this model - return cls(name, - id, - display_name, - visibility, - description, - privileges, - groups, - users, - assigned_liveboards, - mtype) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_materialization_refreshview_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_materialization_refreshview_request.py deleted file mode 100644 index 44dc0c3c8..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_materialization_refreshview_request.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TspublicRestV2MaterializationRefreshviewRequest(object): - - """Implementation of the 'Tspublic Rest V2 Materialization Refreshview Request' model. - - TODO: type model description here. - - Attributes: - id (string): GUID of metadata object - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id' - } - - def __init__(self, - id=None): - """Constructor for the TspublicRestV2MaterializationRefreshviewRequest class""" - - # Initialize members of the class - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - # Return an object of this model - return cls(id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_dependency_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_dependency_request.py deleted file mode 100644 index 39bed2ef1..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_dependency_request.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataDependencyRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Dependency Request' model. - - TODO: type model description here. - - Attributes: - mtype (Type13Enum): Type of the data object - id (list of string): A JSON array of GUIDs of the objects - batch_size (int): The maximum number of batches to fetch in a query. - If this attribute is not defined, the value specified in the - cluster configuration is used. To get the list of all dependent - objects in a single query, define the batch size attribute as -1 - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "id": 'id', - "batch_size": 'batchSize' - } - - _optionals = [ - 'batch_size', - ] - - def __init__(self, - mtype=None, - id=None, - batch_size=-1): - """Constructor for the TspublicRestV2MetadataDependencyRequest class""" - - # Initialize members of the class - self.mtype = mtype - self.id = id - self.batch_size = batch_size - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else None - id = dictionary.get("id") if dictionary.get("id") else None - batch_size = dictionary.get("batchSize") if dictionary.get("batchSize") else -1 - # Return an object of this model - return cls(mtype, - id, - batch_size) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_detail_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_detail_search_request.py deleted file mode 100644 index 625fc716a..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_detail_search_request.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataDetailSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Detail Search Request' model. - - TODO: type model description here. - - Attributes: - mtype (Type6Enum): Type of the metadata object being searched. - id (list of string): A JSON array of GUIDs of the objects. - show_hidden (bool): When set to true, returns details of the hidden - objects, such as a column in a worksheet or a table. - drop_question_details (bool): When set to true, the search assist data - associated with a worksheet is not included in the API response. - This attribute is applicable only for DATAOBJECT data type. - version (string): Specify the version to retrieve the objects from. By - default, the API returns metadata for all versions of the object. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "id": 'id', - "show_hidden": 'showHidden', - "drop_question_details": 'dropQuestionDetails', - "version": 'version' - } - - _optionals = [ - 'show_hidden', - 'drop_question_details', - 'version', - ] - - def __init__(self, - mtype=None, - id=None, - show_hidden=False, - drop_question_details=False, - version=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataDetailSearchRequest class""" - - # Initialize members of the class - self.mtype = mtype - self.id = id - self.show_hidden = show_hidden - self.drop_question_details = drop_question_details - if version is not APIHelper.SKIP: - self.version = version - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else None - id = dictionary.get("id") if dictionary.get("id") else None - show_hidden = dictionary.get("showHidden") if dictionary.get("showHidden") else False - drop_question_details = dictionary.get("dropQuestionDetails") if dictionary.get("dropQuestionDetails") else False - version = dictionary.get("version") if dictionary.get("version") else APIHelper.SKIP - # Return an object of this model - return cls(mtype, - id, - show_hidden, - drop_question_details, - version) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_assign_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_assign_request.py deleted file mode 100644 index 64a7b587d..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_assign_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.ts_object_input import TsObjectInput - - -class TspublicRestV2MetadataFavoriteAssignRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Favorite Assign Request' model. - - TODO: type model description here. - - Attributes: - user_name (string): Name of the user - user_id (string): The GUID of the user - ts_object (list of TsObjectInput): A JSON Array of GUIDs and type of - metadata object. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "ts_object": 'tsObject', - "user_name": 'userName', - "user_id": 'userId' - } - - _optionals = [ - 'user_name', - 'user_id', - ] - - def __init__(self, - ts_object=None, - user_name=APIHelper.SKIP, - user_id=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataFavoriteAssignRequest class""" - - # Initialize members of the class - if user_name is not APIHelper.SKIP: - self.user_name = user_name - if user_id is not APIHelper.SKIP: - self.user_id = user_id - self.ts_object = ts_object - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - ts_object = None - if dictionary.get('tsObject') is not None: - ts_object = [TsObjectInput.from_dictionary(x) for x in dictionary.get('tsObject')] - user_name = dictionary.get("userName") if dictionary.get("userName") else APIHelper.SKIP - user_id = dictionary.get("userId") if dictionary.get("userId") else APIHelper.SKIP - # Return an object of this model - return cls(ts_object, - user_name, - user_id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_unassign_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_unassign_request.py deleted file mode 100644 index 7ea2f4052..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_favorite_unassign_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.ts_object_input import TsObjectInput - - -class TspublicRestV2MetadataFavoriteUnassignRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Favorite Unassign Request' model. - - TODO: type model description here. - - Attributes: - user_name (string): Name of the user - user_id (string): The GUID of the user - ts_object (list of TsObjectInput): A JSON Array of GUIDs and type of - metadata object. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "ts_object": 'tsObject', - "user_name": 'userName', - "user_id": 'userId' - } - - _optionals = [ - 'user_name', - 'user_id', - ] - - def __init__(self, - ts_object=None, - user_name=APIHelper.SKIP, - user_id=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataFavoriteUnassignRequest class""" - - # Initialize members of the class - if user_name is not APIHelper.SKIP: - self.user_name = user_name - if user_id is not APIHelper.SKIP: - self.user_id = user_id - self.ts_object = ts_object - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - ts_object = None - if dictionary.get('tsObject') is not None: - ts_object = [TsObjectInput.from_dictionary(x) for x in dictionary.get('tsObject')] - user_name = dictionary.get("userName") if dictionary.get("userName") else APIHelper.SKIP - user_id = dictionary.get("userId") if dictionary.get("userId") else APIHelper.SKIP - # Return an object of this model - return cls(ts_object, - user_name, - user_id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_header_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_header_search_request.py deleted file mode 100644 index 3ae2530ea..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_header_search_request.py +++ /dev/null @@ -1,243 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.access_level_input import AccessLevelInput -from thoughtspotpublicrestapi.models.name_and_id_input import NameAndIdInput -from thoughtspotpublicrestapi.models.tag_name_and_id_input import TagNameAndIdInput - - -class TspublicRestV2MetadataHeaderSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Header Search Request' model. - - TODO: type model description here. - - Attributes: - output_fields (list of string): Array of header field names that need - to be included in the header response - offset (int): The batch offset, starting from where the records should - be included in the response. If no input is provided then offset - starts from 0. Default: 0 - batch_number (int): An alternate way to set offset for the starting - point of the response. The value in offset field will not be - considered if batchNumber field has value greater than 0. Offset - value will be calculated as (batchNumber - 1) * batchSize. It is - mandatory to provide a value for batchSize with batchNumber. - Example: Assume response has 100 records. Now, batchNumber is - set as 2 and batchSize as 10, then offset value will be 10. So, 10 - records starting from 11th record will be considered. - batch_size (int): The number of records that should be included in the - response starting from offset position. If no input is provided - then first page is included in the response. - sort_by (SortByEnum): Field based on which the response needs to be - ordered. - sort_order (SortOrderEnum): Order in which sortBy should be applied. - mtype (Type3Enum): Type of the metadata object being searched. - name_pattern (string): A pattern to match the name of the metadata - object. This parameter supports matching case-insensitive strings. - For a wildcard match, use %. - fetch_id (list of string): A JSON array containing the GUIDs of the - metadata objects that you want to fetch. - skip_id (list of string): A JSON array containing the GUIDs of the - metadata objects that you want to skip. - show_hidden (bool): When set to true, returns details of the hidden - objects, such as a column in a worksheet or a table. - auto_created (bool): A flag to indicate whether to list only the auto - created objects. When no value is provided as input then all - objects are returned. - access_level (list of AccessLevelInput): A JSON array of objects with - user details for which the metadata objects should be considered - from the repository If you specify ID or name of user and set the - type parameter to USER, the API returns metadata objects - associated with the user If you specify ID or name of user group - and set the type parameter to USER_GROUP, the API returns metadata - objects for all the users mapped to the specified user group. If - the id or name parameter is not defined, but the type attribute is - set to USER or USER_GROUP, then the API will not return and - response. If no input is provided for any field for this object, - then the API returns headers for all users. If both name and id is - provided, then id will be considered. - tag (list of TagNameAndIdInput): A JSON array of name or GUID of tags - or both. When both are given then id is considered. - favorite_for (list of NameAndIdInput): A JSON array of name or GUID of - the user or both for whom the object is assigned as favorite. When - both are given then id is considered. - author (list of NameAndIdInput): A JSON array of name or GUID of the - user or both who created the object. When both are given then id - is considered - last_modified_by (list of NameAndIdInput): A JSON array of name or - GUID of the user or both who last modified the object. When both - are given then id is considered. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "output_fields": 'outputFields', - "offset": 'offset', - "batch_number": 'batchNumber', - "batch_size": 'batchSize', - "sort_by": 'sortBy', - "sort_order": 'sortOrder', - "name_pattern": 'namePattern', - "fetch_id": 'fetchId', - "skip_id": 'skipId', - "show_hidden": 'showHidden', - "auto_created": 'autoCreated', - "access_level": 'accessLevel', - "tag": 'tag', - "favorite_for": 'favoriteFor', - "author": 'author', - "last_modified_by": 'lastModifiedBy' - } - - _optionals = [ - 'output_fields', - 'offset', - 'batch_number', - 'batch_size', - 'sort_by', - 'sort_order', - 'name_pattern', - 'fetch_id', - 'skip_id', - 'show_hidden', - 'auto_created', - 'access_level', - 'tag', - 'favorite_for', - 'author', - 'last_modified_by', - ] - - def __init__(self, - mtype=None, - output_fields=APIHelper.SKIP, - offset=0, - batch_number=APIHelper.SKIP, - batch_size=-1, - sort_by='DEFAULT', - sort_order='DEFAULT', - name_pattern=APIHelper.SKIP, - fetch_id=APIHelper.SKIP, - skip_id=APIHelper.SKIP, - show_hidden=False, - auto_created=APIHelper.SKIP, - access_level=APIHelper.SKIP, - tag=APIHelper.SKIP, - favorite_for=APIHelper.SKIP, - author=APIHelper.SKIP, - last_modified_by=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataHeaderSearchRequest class""" - - # Initialize members of the class - if output_fields is not APIHelper.SKIP: - self.output_fields = output_fields - self.offset = offset - if batch_number is not APIHelper.SKIP: - self.batch_number = batch_number - self.batch_size = batch_size - self.sort_by = sort_by - self.sort_order = sort_order - self.mtype = mtype - if name_pattern is not APIHelper.SKIP: - self.name_pattern = name_pattern - if fetch_id is not APIHelper.SKIP: - self.fetch_id = fetch_id - if skip_id is not APIHelper.SKIP: - self.skip_id = skip_id - self.show_hidden = show_hidden - if auto_created is not APIHelper.SKIP: - self.auto_created = auto_created - if access_level is not APIHelper.SKIP: - self.access_level = access_level - if tag is not APIHelper.SKIP: - self.tag = tag - if favorite_for is not APIHelper.SKIP: - self.favorite_for = favorite_for - if author is not APIHelper.SKIP: - self.author = author - if last_modified_by is not APIHelper.SKIP: - self.last_modified_by = last_modified_by - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else None - output_fields = dictionary.get("outputFields") if dictionary.get("outputFields") else APIHelper.SKIP - offset = dictionary.get("offset") if dictionary.get("offset") else 0 - batch_number = dictionary.get("batchNumber") if dictionary.get("batchNumber") else APIHelper.SKIP - batch_size = dictionary.get("batchSize") if dictionary.get("batchSize") else -1 - sort_by = dictionary.get("sortBy") if dictionary.get("sortBy") else 'DEFAULT' - sort_order = dictionary.get("sortOrder") if dictionary.get("sortOrder") else 'DEFAULT' - name_pattern = dictionary.get("namePattern") if dictionary.get("namePattern") else APIHelper.SKIP - fetch_id = dictionary.get("fetchId") if dictionary.get("fetchId") else APIHelper.SKIP - skip_id = dictionary.get("skipId") if dictionary.get("skipId") else APIHelper.SKIP - show_hidden = dictionary.get("showHidden") if dictionary.get("showHidden") else False - auto_created = dictionary.get("autoCreated") if "autoCreated" in dictionary.keys() else APIHelper.SKIP - access_level = None - if dictionary.get('accessLevel') is not None: - access_level = [AccessLevelInput.from_dictionary(x) for x in dictionary.get('accessLevel')] - else: - access_level = APIHelper.SKIP - tag = None - if dictionary.get('tag') is not None: - tag = [TagNameAndIdInput.from_dictionary(x) for x in dictionary.get('tag')] - else: - tag = APIHelper.SKIP - favorite_for = None - if dictionary.get('favoriteFor') is not None: - favorite_for = [NameAndIdInput.from_dictionary(x) for x in dictionary.get('favoriteFor')] - else: - favorite_for = APIHelper.SKIP - author = None - if dictionary.get('author') is not None: - author = [NameAndIdInput.from_dictionary(x) for x in dictionary.get('author')] - else: - author = APIHelper.SKIP - last_modified_by = None - if dictionary.get('lastModifiedBy') is not None: - last_modified_by = [NameAndIdInput.from_dictionary(x) for x in dictionary.get('lastModifiedBy')] - else: - last_modified_by = APIHelper.SKIP - # Return an object of this model - return cls(mtype, - output_fields, - offset, - batch_number, - batch_size, - sort_by, - sort_order, - name_pattern, - fetch_id, - skip_id, - show_hidden, - auto_created, - access_level, - tag, - favorite_for, - author, - last_modified_by) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_assign_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_assign_request.py deleted file mode 100644 index 8ed27f977..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_assign_request.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataHomeliveboardAssignRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Homeliveboard Assign Request' model. - - TODO: type model description here. - - Attributes: - user_name (string): Name of the user - user_id (string): The GUID of the user - liveboard_id (string): The GUID of the liveboard - - """ - - # Create a mapping from Model property names to API property names - _names = { - "user_name": 'userName', - "user_id": 'userId', - "liveboard_id": 'liveboardId' - } - - _optionals = [ - 'user_name', - 'user_id', - 'liveboard_id', - ] - - def __init__(self, - user_name=APIHelper.SKIP, - user_id=APIHelper.SKIP, - liveboard_id=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataHomeliveboardAssignRequest class""" - - # Initialize members of the class - if user_name is not APIHelper.SKIP: - self.user_name = user_name - if user_id is not APIHelper.SKIP: - self.user_id = user_id - if liveboard_id is not APIHelper.SKIP: - self.liveboard_id = liveboard_id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - user_name = dictionary.get("userName") if dictionary.get("userName") else APIHelper.SKIP - user_id = dictionary.get("userId") if dictionary.get("userId") else APIHelper.SKIP - liveboard_id = dictionary.get("liveboardId") if dictionary.get("liveboardId") else APIHelper.SKIP - # Return an object of this model - return cls(user_name, - user_id, - liveboard_id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_unassign_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_unassign_request.py deleted file mode 100644 index f916a733f..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_homeliveboard_unassign_request.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataHomeliveboardUnassignRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Homeliveboard Unassign Request' model. - - TODO: type model description here. - - Attributes: - user_name (string): Name of the user - user_id (string): The GUID of the user - - """ - - # Create a mapping from Model property names to API property names - _names = { - "user_name": 'userName', - "user_id": 'userId' - } - - _optionals = [ - 'user_name', - 'user_id', - ] - - def __init__(self, - user_name=APIHelper.SKIP, - user_id=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataHomeliveboardUnassignRequest class""" - - # Initialize members of the class - if user_name is not APIHelper.SKIP: - self.user_name = user_name - if user_id is not APIHelper.SKIP: - self.user_id = user_id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - user_name = dictionary.get("userName") if dictionary.get("userName") else APIHelper.SKIP - user_id = dictionary.get("userId") if dictionary.get("userId") else APIHelper.SKIP - # Return an object of this model - return cls(user_name, - user_id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_assign_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_assign_request.py deleted file mode 100644 index 42355dcb5..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_assign_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.ts_object_input import TsObjectInput - - -class TspublicRestV2MetadataTagAssignRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Tag Assign Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the tag - id (string): The GUID of the tag - ts_object (list of TsObjectInput): A JSON Array of GUIDs and type of - metadata object. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "ts_object": 'tsObject', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - ts_object=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataTagAssignRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.ts_object = ts_object - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - ts_object = None - if dictionary.get('tsObject') is not None: - ts_object = [TsObjectInput.from_dictionary(x) for x in dictionary.get('tsObject')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(ts_object, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_create_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_create_request.py deleted file mode 100644 index 7a96559d8..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_create_request.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataTagCreateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Tag Create Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the tag - color (string): Hex color code to be assigned to the tag - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "color": 'color' - } - - _optionals = [ - 'color', - ] - - def __init__(self, - name=None, - color=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataTagCreateRequest class""" - - # Initialize members of the class - self.name = name - if color is not APIHelper.SKIP: - self.color = color - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else None - color = dictionary.get("color") if dictionary.get("color") else APIHelper.SKIP - # Return an object of this model - return cls(name, - color) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_unassign_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_unassign_request.py deleted file mode 100644 index e5b42b576..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_unassign_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.ts_object_input import TsObjectInput - - -class TspublicRestV2MetadataTagUnassignRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Tag Unassign Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the tag - id (string): The GUID of the tag - ts_object (list of TsObjectInput): A JSON Array of GUIDs and type of - metadata object. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "ts_object": 'tsObject', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - ts_object=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataTagUnassignRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.ts_object = ts_object - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - ts_object = None - if dictionary.get('tsObject') is not None: - ts_object = [TsObjectInput.from_dictionary(x) for x in dictionary.get('tsObject')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(ts_object, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_update_request.py deleted file mode 100644 index 2a7ec66be..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tag_update_request.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataTagUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Tag Update Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the tag - id (string): The GUID of the tag - color (string): Hex color code to be assigned to the tag - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "color": 'color' - } - - _optionals = [ - 'name', - 'id', - 'color', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - color=APIHelper.SKIP): - """Constructor for the TspublicRestV2MetadataTagUpdateRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if color is not APIHelper.SKIP: - self.color = color - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - color = dictionary.get("color") if dictionary.get("color") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - color) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_export_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_export_request.py deleted file mode 100644 index 1d6f32a1e..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_export_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataTmlExportRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Tml Export Request' model. - - TODO: type model description here. - - Attributes: - id (list of string): A JSON array of GUIDs of the objects. - format_type (FormatType3Enum): The format in which to export the - objects - export_associated (bool): Specifies if you would like to export the - associated objects. To export the objects associated with the - objects specified in id, set the value to true. When set to true, - the API exports any underlying worksheets, tables, or views for a - given object. By default, the API does not export these underlying - objects - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "format_type": 'formatType', - "export_associated": 'exportAssociated' - } - - _optionals = [ - 'format_type', - 'export_associated', - ] - - def __init__(self, - id=None, - format_type='YAML', - export_associated=False): - """Constructor for the TspublicRestV2MetadataTmlExportRequest class""" - - # Initialize members of the class - self.id = id - self.format_type = format_type - self.export_associated = export_associated - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - format_type = dictionary.get("formatType") if dictionary.get("formatType") else 'YAML' - export_associated = dictionary.get("exportAssociated") if dictionary.get("exportAssociated") else False - # Return an object of this model - return cls(id, - format_type, - export_associated) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_import_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_import_request.py deleted file mode 100644 index c2cb9fc62..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_metadata_tml_import_request.py +++ /dev/null @@ -1,101 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2MetadataTmlImportRequest(object): - - """Implementation of the 'Tspublic Rest V2 Metadata Tml Import Request' model. - - TODO: type model description here. - - Attributes: - object_tml (list of string): A string array of TML objects to upload, - in YAML or JSON format. If TML is in YAML format, then use - escape characters for quotes and new line characters. Example - TML: guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: - TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: PUBLIC\n db_table: - TESTINT\n connection:\n name: SnowflakeConnection\n - columns:\n - name: C1\n db_column_name: C1\n properties:\n - column_type: MEASURE\n aggregation: SUM\n index_type: - DONT_INDEX\n db_column_properties:\n data_type: INT64\n - If TML is in JSON format, then use escape characters for quotes. - Example TML: {\\"guid\\": - \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { - \\"name\\": \\"TESTINT\\", \\"db\\": \\"SUPPLYCHAIN_MAIN\\", - \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", - \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, - \\"columns\\": [ { \\"name\\": \\"C1\\", \\"db_column_name\\": - \\"C1\\", \\"properties\\": { \\"column_type\\": \\"MEASURE\\", - \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" - }, \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } - ] } }', - import_policy (ImportPolicyEnum): Policy to follow during import - force_create (bool): Specifies if you are updating or creating - objects. To create new objects, specify true. By default, - ThoughtSpot updates existing objects that have the same GUID as - the objects you are importing. When set to true, the GUID property - in the imported TML is replaced on the server, and the response - headers will include the id_guid property with the GUID of the new - object. The new object will be assigned a new GUID, even if the - imported TML file included a guid value. Thus, there is no need to - include the guid in the TML file if you are using - forceCreate=true. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "object_tml": 'objectTML', - "import_policy": 'importPolicy', - "force_create": 'forceCreate' - } - - _optionals = [ - 'import_policy', - 'force_create', - ] - - def __init__(self, - object_tml=None, - import_policy='PARTIAL', - force_create=False): - """Constructor for the TspublicRestV2MetadataTmlImportRequest class""" - - # Initialize members of the class - self.object_tml = object_tml - self.import_policy = import_policy - self.force_create = force_create - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - object_tml = dictionary.get("objectTML") if dictionary.get("objectTML") else None - import_policy = dictionary.get("importPolicy") if dictionary.get("importPolicy") else 'PARTIAL' - force_create = dictionary.get("forceCreate") if dictionary.get("forceCreate") else False - # Return an object of this model - return cls(object_tml, - import_policy, - force_create) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_create_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_create_request.py deleted file mode 100644 index 253cf28ae..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_create_request.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2OrgCreateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Org Create Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the organization. - description (string): Description text for the organization. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "description": 'description' - } - - _optionals = [ - 'description', - ] - - def __init__(self, - name=None, - description=APIHelper.SKIP): - """Constructor for the TspublicRestV2OrgCreateRequest class""" - - # Initialize members of the class - self.name = name - if description is not APIHelper.SKIP: - self.description = description - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else None - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - # Return an object of this model - return cls(name, - description) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_search_request.py deleted file mode 100644 index c2f43cabb..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_search_request.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2OrgSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Org Search Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the organization. - id (int): The ID of the organization. - show_deleted (bool): When set to true, the response will include the - details of deleted organization also. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "show_deleted": 'showDeleted' - } - - _optionals = [ - 'name', - 'id', - 'show_deleted', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - show_deleted=False): - """Constructor for the TspublicRestV2OrgSearchRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.show_deleted = show_deleted - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - show_deleted = dictionary.get("showDeleted") if dictionary.get("showDeleted") else False - # Return an object of this model - return cls(name, - id, - show_deleted) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_update_request.py deleted file mode 100644 index 87b67c928..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_org_update_request.py +++ /dev/null @@ -1,85 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2OrgUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 Org Update Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the organization. - id (int): The ID of the organization. - description (string): Description text for the organization. - active (bool): Status of the organization. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "description": 'description', - "active": 'active' - } - - _optionals = [ - 'name', - 'id', - 'description', - 'active', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - description=APIHelper.SKIP, - active=APIHelper.SKIP): - """Constructor for the TspublicRestV2OrgUpdateRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if description is not APIHelper.SKIP: - self.description = description - if active is not APIHelper.SKIP: - self.active = active - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - description = dictionary.get("description") if dictionary.get("description") else APIHelper.SKIP - active = dictionary.get("active") if "active" in dictionary.keys() else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - description, - active) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_principal_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_principal_search_request.py deleted file mode 100644 index 6bd0e7f80..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_principal_search_request.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.ts_object_search_input import TsObjectSearchInput -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2SecurityPermissionPrincipalSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Security Permission Principal Search Request' model. - - TODO: type model description here. - - Attributes: - principal (list of UserNameAndIDInput): A JSON array of principal - names or GUIDs to be included in the request. When both are given - then id is considered. - ts_object (list of TsObjectSearchInput): A JSON Array of GUIDs and - type of metadata object. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "principal": 'principal', - "ts_object": 'tsObject' - } - - _optionals = [ - 'ts_object', - ] - - def __init__(self, - principal=None, - ts_object=APIHelper.SKIP): - """Constructor for the TspublicRestV2SecurityPermissionPrincipalSearchRequest class""" - - # Initialize members of the class - self.principal = principal - if ts_object is not APIHelper.SKIP: - self.ts_object = ts_object - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - principal = None - if dictionary.get('principal') is not None: - principal = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('principal')] - ts_object = None - if dictionary.get('tsObject') is not None: - ts_object = [TsObjectSearchInput.from_dictionary(x) for x in dictionary.get('tsObject')] - else: - ts_object = APIHelper.SKIP - # Return an object of this model - return cls(principal, - ts_object) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_tsobject_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_tsobject_search_request.py deleted file mode 100644 index 9c7fb8332..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_permission_tsobject_search_request.py +++ /dev/null @@ -1,86 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.ts_object_search_input import TsObjectSearchInput -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2SecurityPermissionTsobjectSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 Security Permission Tsobject Search Request' model. - - TODO: type model description here. - - Attributes: - ts_object (list of TsObjectSearchInput): A JSON Array of GUIDs and - type of metadata object. - principal (list of UserNameAndIDInput): A JSON array of principal - names or GUIDs. When both are given then id is considered. - include_dependent (bool): When this field is set to true, the API - response includes the permission details for the dependent - objects. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "ts_object": 'tsObject', - "principal": 'principal', - "include_dependent": 'includeDependent' - } - - _optionals = [ - 'principal', - 'include_dependent', - ] - - def __init__(self, - ts_object=None, - principal=APIHelper.SKIP, - include_dependent=False): - """Constructor for the TspublicRestV2SecurityPermissionTsobjectSearchRequest class""" - - # Initialize members of the class - self.ts_object = ts_object - if principal is not APIHelper.SKIP: - self.principal = principal - self.include_dependent = include_dependent - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - ts_object = None - if dictionary.get('tsObject') is not None: - ts_object = [TsObjectSearchInput.from_dictionary(x) for x in dictionary.get('tsObject')] - principal = None - if dictionary.get('principal') is not None: - principal = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('principal')] - else: - principal = APIHelper.SKIP - include_dependent = dictionary.get("includeDependent") if dictionary.get("includeDependent") else False - # Return an object of this model - return cls(ts_object, - principal, - include_dependent) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_tsobject_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_tsobject_request.py deleted file mode 100644 index 8d5462aef..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_tsobject_request.py +++ /dev/null @@ -1,116 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2SecurityShareTsobjectRequest(object): - - """Implementation of the 'Tspublic Rest V2 Security Share Tsobject Request' model. - - TODO: type model description here. - - Attributes: - mtype (Type18Enum): Type of metadata object. Valid values: - Liveboard|Answer|DataObject|Column - id (list of string): A JSON array of the GUIDs of the objects to be - shared - permission (string): A JSON object with GUIDs of user and user group, - and the type of access privilge. You can provide READ_ONLY or - MODIFY access to the objects. With READ_ONLY access, the user or - user group can view the shared object, whereas MODIFY access - enables users to modify the object. To remove access to a shared - object, you can set the shareMode in the permission string to - NO_ACCESS. Example: {"permissions": - {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": - "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": - {"shareMode": "MODIFY"}, - "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} - email_id (list of string): The email addresses that should ne notified - when the objects are shared. - notify (bool): When set to true, a notification is sent to the users - after an object is shared. - message (string): The message text to send in the notification email. - include_custom_embed_url (bool): When set to true, ThoughtSpot sends a - link with the host application context to allow users to access - the shared object from their ThoughtSpot embedded instance. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "mtype": 'type', - "id": 'id', - "permission": 'permission', - "email_id": 'emailId', - "notify": 'notify', - "message": 'message', - "include_custom_embed_url": 'includeCustomEmbedUrl' - } - - _optionals = [ - 'email_id', - 'notify', - 'message', - 'include_custom_embed_url', - ] - - def __init__(self, - mtype=None, - id=None, - permission=None, - email_id=None, - notify=True, - message=APIHelper.SKIP, - include_custom_embed_url=False): - """Constructor for the TspublicRestV2SecurityShareTsobjectRequest class""" - - # Initialize members of the class - self.mtype = mtype - self.id = id - self.permission = permission - self.email_id = email_id - self.notify = notify - if message is not APIHelper.SKIP: - self.message = message - self.include_custom_embed_url = include_custom_embed_url - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - mtype = dictionary.get("type") if dictionary.get("type") else None - id = dictionary.get("id") if dictionary.get("id") else None - permission = dictionary.get("permission") if dictionary.get("permission") else None - email_id = dictionary.get("emailId") if dictionary.get("emailId") else None - notify = dictionary.get("notify") if dictionary.get("notify") else True - message = dictionary.get("message") if dictionary.get("message") else APIHelper.SKIP - include_custom_embed_url = dictionary.get("includeCustomEmbedUrl") if dictionary.get("includeCustomEmbedUrl") else False - # Return an object of this model - return cls(mtype, - id, - permission, - email_id, - notify, - message, - include_custom_embed_url) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_visualization_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_visualization_request.py deleted file mode 100644 index 5e1ff3297..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_security_share_visualization_request.py +++ /dev/null @@ -1,105 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2SecurityShareVisualizationRequest(object): - - """Implementation of the 'Tspublic Rest V2 Security Share Visualization Request' model. - - TODO: type model description here. - - Attributes: - id (string): A JSON array of the GUIDs of the objects to be shared - viz_id (string): The GUID of visualization - principal_id (list of string): The GUID of the users and user groups - with which you want to share the visualization - email_id (list of string): The email addresses that should ne notified - when the objects are shared - notify (bool): When set to true, a notification is sent to the users - after an object is shared. - message (string): The message text to send in the notification email. - include_custom_embed_url (bool): When set to true, ThoughtSpot sends a - link with the host application context to allow users to access - the shared object from their ThoughtSpot embedded instance. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "id": 'id', - "viz_id": 'vizId', - "principal_id": 'principalId', - "email_id": 'emailId', - "notify": 'notify', - "message": 'message', - "include_custom_embed_url": 'includeCustomEmbedUrl' - } - - _optionals = [ - 'email_id', - 'notify', - 'message', - 'include_custom_embed_url', - ] - - def __init__(self, - id=None, - viz_id=None, - principal_id=None, - email_id=None, - notify=True, - message=APIHelper.SKIP, - include_custom_embed_url=False): - """Constructor for the TspublicRestV2SecurityShareVisualizationRequest class""" - - # Initialize members of the class - self.id = id - self.viz_id = viz_id - self.principal_id = principal_id - self.email_id = email_id - self.notify = notify - if message is not APIHelper.SKIP: - self.message = message - self.include_custom_embed_url = include_custom_embed_url - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - id = dictionary.get("id") if dictionary.get("id") else None - viz_id = dictionary.get("vizId") if dictionary.get("vizId") else None - principal_id = dictionary.get("principalId") if dictionary.get("principalId") else None - email_id = dictionary.get("emailId") if dictionary.get("emailId") else None - notify = dictionary.get("notify") if dictionary.get("notify") else True - message = dictionary.get("message") if dictionary.get("message") else APIHelper.SKIP - include_custom_embed_url = dictionary.get("includeCustomEmbedUrl") if dictionary.get("includeCustomEmbedUrl") else False - # Return an object of this model - return cls(id, - viz_id, - principal_id, - email_id, - notify, - message, - include_custom_embed_url) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addgroup_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addgroup_request.py deleted file mode 100644 index 6ff962283..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addgroup_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput - - -class TspublicRestV2UserAddgroupRequest(object): - - """Implementation of the 'Tspublic Rest V2 User Addgroup Request' model. - - TODO: type model description here. - - Attributes: - name (string): User name of the user account - id (string): The GUID of the user account - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "groups": 'groups', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - groups=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2UserAddgroupRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.groups = groups - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(groups, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addorg_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addorg_request.py deleted file mode 100644 index 5f1afac21..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_addorg_request.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.user_name_and_id_input import UserNameAndIDInput - - -class TspublicRestV2UserAddorgRequest(object): - - """Implementation of the 'Tspublic Rest V2 User Addorg Request' model. - - TODO: type model description here. - - Attributes: - org_id (int): The ID of the organization. - users (list of UserNameAndIDInput): Array of objects. A JSON array of - name of users or GUIDs of users or both. When both are given then - id is considered - - """ - - # Create a mapping from Model property names to API property names - _names = { - "users": 'users', - "org_id": 'orgId' - } - - _optionals = [ - 'org_id', - ] - - def __init__(self, - users=None, - org_id=APIHelper.SKIP): - """Constructor for the TspublicRestV2UserAddorgRequest class""" - - # Initialize members of the class - if org_id is not APIHelper.SKIP: - self.org_id = org_id - self.users = users - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - users = None - if dictionary.get('users') is not None: - users = [UserNameAndIDInput.from_dictionary(x) for x in dictionary.get('users')] - org_id = dictionary.get("orgId") if dictionary.get("orgId") else APIHelper.SKIP - # Return an object of this model - return cls(users, - org_id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_changepassword_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_changepassword_request.py deleted file mode 100644 index 3e9cf1ce4..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_changepassword_request.py +++ /dev/null @@ -1,81 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class TspublicRestV2UserChangepasswordRequest(object): - - """Implementation of the 'Tspublic Rest V2 User Changepassword Request' model. - - TODO: type model description here. - - Attributes: - name (string): User name of the user account. - id (string): The GUID of the user account to query. - current_password (string): The current password of the user. - new_password (string): A new password for the user. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "current_password": 'currentPassword', - "new_password": 'newPassword', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - current_password=None, - new_password=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2UserChangepasswordRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.current_password = current_password - self.new_password = new_password - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - current_password = dictionary.get("currentPassword") if dictionary.get("currentPassword") else None - new_password = dictionary.get("newPassword") if dictionary.get("newPassword") else None - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(current_password, - new_password, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_removegroup_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_removegroup_request.py deleted file mode 100644 index 1497d9461..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_removegroup_request.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput - - -class TspublicRestV2UserRemovegroupRequest(object): - - """Implementation of the 'Tspublic Rest V2 User Removegroup Request' model. - - TODO: type model description here. - - Attributes: - name (string): User name of the user account - id (string): The GUID of the user account - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "groups": 'groups', - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - groups=None, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the TspublicRestV2UserRemovegroupRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - self.groups = groups - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(groups, - name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_search_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_search_request.py deleted file mode 100644 index 3475e048a..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_search_request.py +++ /dev/null @@ -1,178 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput - - -class TspublicRestV2UserSearchRequest(object): - - """Implementation of the 'Tspublic Rest V2 User Search Request' model. - - TODO: type model description here. - - Attributes: - output_fields (list of string): Array of field names that need to be - included in the response - name (string): User name of the user account - id (string): The GUID of the user account - display_name (string): A unique display name string for the user, - usually their first and last name. - visibility (string): Visibility of the user account. The visibility - attribute is set to DEFAULT when creating a user. The DEFAULT - attribute makes a user visible to other users and user groups, and - thus allows them to share objects. - mail (string): email of the user. - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - privileges (list of PrivilegeEnum): Privileges assigned to user - account - state (string): Status of user account. acitve or inactive. - notify_on_share (bool): User preference for receiving email - notifications when another ThoughtSpot user shares answers or - pinboards. - show_walk_me (bool): The user preference for revisiting the onboarding - experience. - analyst_onboarding_complete (bool): ThoughtSpot provides an - interactive guided walkthrough to onboard new users. The - onboarding experience leads users through a set of actions to help - users get started and accomplish their tasks quickly. The users - can turn off the Onboarding experience and access it again when - they need assistance with the ThoughtSpot UI. - mtype (string): Type of user. LOCAL_USER indicates that the user is - created locally in the ThoughtSpot system. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "output_fields": 'outputFields', - "name": 'name', - "id": 'id', - "display_name": 'displayName', - "visibility": 'visibility', - "mail": 'mail', - "groups": 'groups', - "privileges": 'privileges', - "state": 'state', - "notify_on_share": 'notifyOnShare', - "show_walk_me": 'showWalkMe', - "analyst_onboarding_complete": 'analystOnboardingComplete', - "mtype": 'type' - } - - _optionals = [ - 'output_fields', - 'name', - 'id', - 'display_name', - 'visibility', - 'mail', - 'groups', - 'privileges', - 'state', - 'notify_on_share', - 'show_walk_me', - 'analyst_onboarding_complete', - 'mtype', - ] - - def __init__(self, - output_fields=APIHelper.SKIP, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - display_name=APIHelper.SKIP, - visibility=APIHelper.SKIP, - mail=APIHelper.SKIP, - groups=APIHelper.SKIP, - privileges=APIHelper.SKIP, - state=APIHelper.SKIP, - notify_on_share=APIHelper.SKIP, - show_walk_me=APIHelper.SKIP, - analyst_onboarding_complete=APIHelper.SKIP, - mtype=APIHelper.SKIP): - """Constructor for the TspublicRestV2UserSearchRequest class""" - - # Initialize members of the class - if output_fields is not APIHelper.SKIP: - self.output_fields = output_fields - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if display_name is not APIHelper.SKIP: - self.display_name = display_name - if visibility is not APIHelper.SKIP: - self.visibility = visibility - if mail is not APIHelper.SKIP: - self.mail = mail - if groups is not APIHelper.SKIP: - self.groups = groups - if privileges is not APIHelper.SKIP: - self.privileges = privileges - if state is not APIHelper.SKIP: - self.state = state - if notify_on_share is not APIHelper.SKIP: - self.notify_on_share = notify_on_share - if show_walk_me is not APIHelper.SKIP: - self.show_walk_me = show_walk_me - if analyst_onboarding_complete is not APIHelper.SKIP: - self.analyst_onboarding_complete = analyst_onboarding_complete - if mtype is not APIHelper.SKIP: - self.mtype = mtype - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - output_fields = dictionary.get("outputFields") if dictionary.get("outputFields") else APIHelper.SKIP - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - display_name = dictionary.get("displayName") if dictionary.get("displayName") else APIHelper.SKIP - visibility = dictionary.get("visibility") if dictionary.get("visibility") else APIHelper.SKIP - mail = dictionary.get("mail") if dictionary.get("mail") else APIHelper.SKIP - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - else: - groups = APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - state = dictionary.get("state") if dictionary.get("state") else APIHelper.SKIP - notify_on_share = dictionary.get("notifyOnShare") if "notifyOnShare" in dictionary.keys() else APIHelper.SKIP - show_walk_me = dictionary.get("showWalkMe") if "showWalkMe" in dictionary.keys() else APIHelper.SKIP - analyst_onboarding_complete = dictionary.get("analystOnboardingComplete") if "analystOnboardingComplete" in dictionary.keys() else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - # Return an object of this model - return cls(output_fields, - name, - id, - display_name, - visibility, - mail, - groups, - privileges, - state, - notify_on_share, - show_walk_me, - analyst_onboarding_complete, - mtype) diff --git a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_update_request.py b/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_update_request.py deleted file mode 100644 index ed9e1bbb7..000000000 --- a/Python/thoughtspotpublicrestapi/models/tspublic_rest_v_2_user_update_request.py +++ /dev/null @@ -1,154 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id_input import GroupNameAndIDInput - - -class TspublicRestV2UserUpdateRequest(object): - - """Implementation of the 'Tspublic Rest V2 User Update Request' model. - - TODO: type model description here. - - Attributes: - name (string): Name of the user. The username string must be unique. - id (string): The GUID of the user account to query - display_name (string): A unique display name string for the user, - usually their first and last name. - visibility (Visibility1Enum): Visibility of the user account. The - visibility attribute is set to DEFAULT when creating a user. The - DEFAULT attribute makes a user visible to other users and user - groups, and thus allows them to share objects. - mail (string): email of the user. - state (State1Enum): Status of user account. acitve or inactive. - notify_on_share (bool): User preference for receiving email - notifications when another ThoughtSpot user shares answers or - pinboards. - show_walk_me (bool): The user preference for revisiting the onboarding - experience. - analyst_onboarding_complete (bool): ThoughtSpot provides an - interactive guided walkthrough to onboard new users. The - onboarding experience leads users through a set of actions to help - users get started and accomplish their tasks quickly. The users - can turn off the Onboarding experience and access it again when - they need assistance with the ThoughtSpot UI. - mtype (Type9Enum): Type of user. LOCAL_USER indicates that the user is - created locally in the ThoughtSpot system. - groups (list of GroupNameAndIDInput): Array of objects of groups that - the user belong to. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "display_name": 'displayName', - "visibility": 'visibility', - "mail": 'mail', - "state": 'state', - "notify_on_share": 'notifyOnShare', - "show_walk_me": 'showWalkMe', - "analyst_onboarding_complete": 'analystOnboardingComplete', - "mtype": 'type', - "groups": 'groups' - } - - _optionals = [ - 'name', - 'id', - 'display_name', - 'visibility', - 'mail', - 'state', - 'notify_on_share', - 'show_walk_me', - 'analyst_onboarding_complete', - 'mtype', - 'groups', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - display_name=APIHelper.SKIP, - visibility='DEFAULT', - mail=APIHelper.SKIP, - state='ACTIVE', - notify_on_share=True, - show_walk_me=True, - analyst_onboarding_complete=False, - mtype='LOCAL_USER', - groups=APIHelper.SKIP): - """Constructor for the TspublicRestV2UserUpdateRequest class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if display_name is not APIHelper.SKIP: - self.display_name = display_name - self.visibility = visibility - if mail is not APIHelper.SKIP: - self.mail = mail - self.state = state - self.notify_on_share = notify_on_share - self.show_walk_me = show_walk_me - self.analyst_onboarding_complete = analyst_onboarding_complete - self.mtype = mtype - if groups is not APIHelper.SKIP: - self.groups = groups - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - display_name = dictionary.get("displayName") if dictionary.get("displayName") else APIHelper.SKIP - visibility = dictionary.get("visibility") if dictionary.get("visibility") else 'DEFAULT' - mail = dictionary.get("mail") if dictionary.get("mail") else APIHelper.SKIP - state = dictionary.get("state") if dictionary.get("state") else 'ACTIVE' - notify_on_share = dictionary.get("notifyOnShare") if dictionary.get("notifyOnShare") else True - show_walk_me = dictionary.get("showWalkMe") if dictionary.get("showWalkMe") else True - analyst_onboarding_complete = dictionary.get("analystOnboardingComplete") if dictionary.get("analystOnboardingComplete") else False - mtype = dictionary.get("type") if dictionary.get("type") else 'LOCAL_USER' - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndIDInput.from_dictionary(x) for x in dictionary.get('groups')] - else: - groups = APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - display_name, - visibility, - mail, - state, - notify_on_share, - show_walk_me, - analyst_onboarding_complete, - mtype, - groups) diff --git a/Python/thoughtspotpublicrestapi/models/type_10_enum.py b/Python/thoughtspotpublicrestapi/models/type_10_enum.py deleted file mode 100644 index d5f5f9af2..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_10_enum.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type10Enum(object): - - """Implementation of the 'Type10' enum. - - Type of user group. LOCAL_GROUP indicates that the user is created locally - in the ThoughtSpot system. - - Attributes: - LOCAL_GROUP: TODO: type description here. - TENANT_GROUP: TODO: type description here. - - """ - - LOCAL_GROUP = 'LOCAL_GROUP' - - TENANT_GROUP = 'TENANT_GROUP' diff --git a/Python/thoughtspotpublicrestapi/models/type_13_enum.py b/Python/thoughtspotpublicrestapi/models/type_13_enum.py deleted file mode 100644 index e2acac1db..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_13_enum.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type13Enum(object): - - """Implementation of the 'Type13' enum. - - Type of the data object - - Attributes: - LIVEBOARD: TODO: type description here. - DATAOBJECT: TODO: type description here. - COLUMN: TODO: type description here. - JOIN: TODO: type description here. - - """ - - LIVEBOARD = 'LIVEBOARD' - - DATAOBJECT = 'DATAOBJECT' - - COLUMN = 'COLUMN' - - JOIN = 'JOIN' diff --git a/Python/thoughtspotpublicrestapi/models/type_14_enum.py b/Python/thoughtspotpublicrestapi/models/type_14_enum.py deleted file mode 100644 index d1a5f1a0f..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_14_enum.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type14Enum(object): - - """Implementation of the 'Type14' enum. - - Type of the data connection. - - Attributes: - SNOWFLAKE: TODO: type description here. - AMAZON_REDSHIFT: TODO: type description here. - GOOGLE_BIGQUERY: TODO: type description here. - AZURE_SYNAPSE: TODO: type description here. - TERADATA: TODO: type description here. - STARBURST: TODO: type description here. - SAP_HANA: TODO: type description here. - ORACLE_ADW: TODO: type description here. - DATABRICKS: TODO: type description here. - DENODO: TODO: type description here. - DREMIO: TODO: type description here. - - """ - - SNOWFLAKE = 'SNOWFLAKE' - - AMAZON_REDSHIFT = 'AMAZON_REDSHIFT' - - GOOGLE_BIGQUERY = 'GOOGLE_BIGQUERY' - - AZURE_SYNAPSE = 'AZURE_SYNAPSE' - - TERADATA = 'TERADATA' - - STARBURST = 'STARBURST' - - SAP_HANA = 'SAP_HANA' - - ORACLE_ADW = 'ORACLE_ADW' - - DATABRICKS = 'DATABRICKS' - - DENODO = 'DENODO' - - DREMIO = 'DREMIO' diff --git a/Python/thoughtspotpublicrestapi/models/type_15_enum.py b/Python/thoughtspotpublicrestapi/models/type_15_enum.py deleted file mode 100644 index 914898264..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_15_enum.py +++ /dev/null @@ -1,54 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type15Enum(object): - - """Implementation of the 'Type15' enum. - - Type of the connect being searched. Valid values: - SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST| - SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - - Attributes: - SNOWFLAKE: TODO: type description here. - AMAZON_REDSHIFT: TODO: type description here. - GOOGLE_BIGQUERY: TODO: type description here. - AZURE_SYNAPSE: TODO: type description here. - TERADATA: TODO: type description here. - STARBURST: TODO: type description here. - SAP_HANA: TODO: type description here. - ORACLE_ADW: TODO: type description here. - DATABRICKS: TODO: type description here. - DENODO: TODO: type description here. - DREMIO: TODO: type description here. - - """ - - SNOWFLAKE = 'SNOWFLAKE' - - AMAZON_REDSHIFT = 'AMAZON_REDSHIFT' - - GOOGLE_BIGQUERY = 'GOOGLE_BIGQUERY' - - AZURE_SYNAPSE = 'AZURE_SYNAPSE' - - TERADATA = 'TERADATA' - - STARBURST = 'STARBURST' - - SAP_HANA = 'SAP_HANA' - - ORACLE_ADW = 'ORACLE_ADW' - - DATABRICKS = 'DATABRICKS' - - DENODO = 'DENODO' - - DREMIO = 'DREMIO' diff --git a/Python/thoughtspotpublicrestapi/models/type_16_enum.py b/Python/thoughtspotpublicrestapi/models/type_16_enum.py deleted file mode 100644 index 2840c641e..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_16_enum.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type16Enum(object): - - """Implementation of the 'type16' enum. - - TODO: type enum description here. - - Attributes: - CSV: TODO: type description here. - XLSX: TODO: type description here. - PDF: TODO: type description here. - PNG: TODO: type description here. - - """ - - CSV = 'CSV' - - XLSX = 'XLSX' - - PDF = 'PDF' - - PNG = 'PNG' diff --git a/Python/thoughtspotpublicrestapi/models/type_18_enum.py b/Python/thoughtspotpublicrestapi/models/type_18_enum.py deleted file mode 100644 index a123ad6af..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_18_enum.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type18Enum(object): - - """Implementation of the 'Type18' enum. - - Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - - Attributes: - LIVEBOARD: TODO: type description here. - ANSWER: TODO: type description here. - DATAOBJECT: TODO: type description here. - COLUMN: TODO: type description here. - - """ - - LIVEBOARD = 'LIVEBOARD' - - ANSWER = 'ANSWER' - - DATAOBJECT = 'DATAOBJECT' - - COLUMN = 'COLUMN' diff --git a/Python/thoughtspotpublicrestapi/models/type_1_enum.py b/Python/thoughtspotpublicrestapi/models/type_1_enum.py deleted file mode 100644 index 95889c03d..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_1_enum.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type1Enum(object): - - """Implementation of the 'Type1' enum. - - Type of access detail provided - - Attributes: - USER: TODO: type description here. - USER_GROUP: TODO: type description here. - - """ - - USER = 'USER' - - USER_GROUP = 'USER_GROUP' diff --git a/Python/thoughtspotpublicrestapi/models/type_2_enum.py b/Python/thoughtspotpublicrestapi/models/type_2_enum.py deleted file mode 100644 index 8bb4416f9..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_2_enum.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type2Enum(object): - - """Implementation of the 'Type2' enum. - - Type of the metadata objec - - Attributes: - LIVEBOARD: TODO: type description here. - ANSWER: TODO: type description here. - DATAOBJECT: TODO: type description here. - COLUMN: TODO: type description here. - - """ - - LIVEBOARD = 'LIVEBOARD' - - ANSWER = 'ANSWER' - - DATAOBJECT = 'DATAOBJECT' - - COLUMN = 'COLUMN' diff --git a/Python/thoughtspotpublicrestapi/models/type_3_enum.py b/Python/thoughtspotpublicrestapi/models/type_3_enum.py deleted file mode 100644 index b645adf39..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_3_enum.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type3Enum(object): - - """Implementation of the 'Type3' enum. - - Type of the metadata object being searched. - - Attributes: - ANSWER: TODO: type description here. - LIVEBOARD: TODO: type description here. - DATAOBJECT_ALL: TODO: type description here. - DATAOBJECT_WORKSHEET: TODO: type description here. - DATAOBJECT_TABLE: TODO: type description here. - DATAOBJECT_USER_DEFINED: TODO: type description here. - DATAOBJECT_VIEW: TODO: type description here. - DATAOBJECT_CALENDAR_TABLE: TODO: type description here. - COLUMN_ALL: TODO: type description here. - COLUMN_WORKSHEET: TODO: type description here. - COLUMN_TABLE: TODO: type description here. - COLUMN_USER_DEFINED: TODO: type description here. - COLUMN_VIEW: TODO: type description here. - COLUMN_CALENDAR_TABLE: TODO: type description here. - JOIN: TODO: type description here. - CONNECTION: TODO: type description here. - TAG: TODO: type description here. - USER: TODO: type description here. - USER_GROUP: TODO: type description here. - - """ - - ANSWER = 'ANSWER' - - LIVEBOARD = 'LIVEBOARD' - - DATAOBJECT_ALL = 'DATAOBJECT_ALL' - - DATAOBJECT_WORKSHEET = 'DATAOBJECT_WORKSHEET' - - DATAOBJECT_TABLE = 'DATAOBJECT_TABLE' - - DATAOBJECT_USER_DEFINED = 'DATAOBJECT_USER_DEFINED' - - DATAOBJECT_VIEW = 'DATAOBJECT_VIEW' - - DATAOBJECT_CALENDAR_TABLE = 'DATAOBJECT_CALENDAR_TABLE' - - COLUMN_ALL = 'COLUMN_ALL' - - COLUMN_WORKSHEET = 'COLUMN_WORKSHEET' - - COLUMN_TABLE = 'COLUMN_TABLE' - - COLUMN_USER_DEFINED = 'COLUMN_USER_DEFINED' - - COLUMN_VIEW = 'COLUMN_VIEW' - - COLUMN_CALENDAR_TABLE = 'COLUMN_CALENDAR_TABLE' - - JOIN = 'JOIN' - - CONNECTION = 'CONNECTION' - - TAG = 'TAG' - - USER = 'USER' - - USER_GROUP = 'USER_GROUP' diff --git a/Python/thoughtspotpublicrestapi/models/type_4_enum.py b/Python/thoughtspotpublicrestapi/models/type_4_enum.py deleted file mode 100644 index fe29b3d66..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_4_enum.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type4Enum(object): - - """Implementation of the 'type4' enum. - - TODO: type enum description here. - - Attributes: - ANSWER: TODO: type description here. - LIVEBOARD: TODO: type description here. - DATAOBJECT: TODO: type description here. - COLUMN: TODO: type description here. - JOIN: TODO: type description here. - CONNECTION: TODO: type description here. - TAG: TODO: type description here. - USER: TODO: type description here. - USER_GROUP: TODO: type description here. - - """ - - ANSWER = 'ANSWER' - - LIVEBOARD = 'LIVEBOARD' - - DATAOBJECT = 'DATAOBJECT' - - COLUMN = 'COLUMN' - - JOIN = 'JOIN' - - CONNECTION = 'CONNECTION' - - TAG = 'TAG' - - USER = 'USER' - - USER_GROUP = 'USER_GROUP' diff --git a/Python/thoughtspotpublicrestapi/models/type_5_enum.py b/Python/thoughtspotpublicrestapi/models/type_5_enum.py deleted file mode 100644 index 1575766de..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_5_enum.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type5Enum(object): - - """Implementation of the 'type5' enum. - - TODO: type enum description here. - - Attributes: - ANSWER: TODO: type description here. - LIVEBOARD: TODO: type description here. - DATAOBJECT_ALL: TODO: type description here. - DATAOBJECT_WORKSHEET: TODO: type description here. - DATAOBJECT_TABLE: TODO: type description here. - DATAOBJECT_USER_DEFINED: TODO: type description here. - DATAOBJECT_VIEW: TODO: type description here. - DATAOBJECT_CALENDAR_TABLE: TODO: type description here. - COLUMN_ALL: TODO: type description here. - COLUMN_WORKSHEET: TODO: type description here. - COLUMN_TABLE: TODO: type description here. - COLUMN_USER_DEFINED: TODO: type description here. - COLUMN_VIEW: TODO: type description here. - COLUMN_CALENDAR_TABLE: TODO: type description here. - JOIN: TODO: type description here. - CONNECTION: TODO: type description here. - TAG: TODO: type description here. - USER: TODO: type description here. - USER_GROUP: TODO: type description here. - - """ - - ANSWER = 'ANSWER' - - LIVEBOARD = 'LIVEBOARD' - - DATAOBJECT_ALL = 'DATAOBJECT_ALL' - - DATAOBJECT_WORKSHEET = 'DATAOBJECT_WORKSHEET' - - DATAOBJECT_TABLE = 'DATAOBJECT_TABLE' - - DATAOBJECT_USER_DEFINED = 'DATAOBJECT_USER_DEFINED' - - DATAOBJECT_VIEW = 'DATAOBJECT_VIEW' - - DATAOBJECT_CALENDAR_TABLE = 'DATAOBJECT_CALENDAR_TABLE' - - COLUMN_ALL = 'COLUMN_ALL' - - COLUMN_WORKSHEET = 'COLUMN_WORKSHEET' - - COLUMN_TABLE = 'COLUMN_TABLE' - - COLUMN_USER_DEFINED = 'COLUMN_USER_DEFINED' - - COLUMN_VIEW = 'COLUMN_VIEW' - - COLUMN_CALENDAR_TABLE = 'COLUMN_CALENDAR_TABLE' - - JOIN = 'JOIN' - - CONNECTION = 'CONNECTION' - - TAG = 'TAG' - - USER = 'USER' - - USER_GROUP = 'USER_GROUP' diff --git a/Python/thoughtspotpublicrestapi/models/type_6_enum.py b/Python/thoughtspotpublicrestapi/models/type_6_enum.py deleted file mode 100644 index 70eb3d593..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_6_enum.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type6Enum(object): - - """Implementation of the 'Type6' enum. - - Type of the metadata object being searched. - - Attributes: - ANSWER: TODO: type description here. - LIVEBOARD: TODO: type description here. - DATAOBJECT: TODO: type description here. - COLUMN: TODO: type description here. - JOIN: TODO: type description here. - CONNECTION: TODO: type description here. - TAG: TODO: type description here. - USER: TODO: type description here. - USER_GROUP: TODO: type description here. - - """ - - ANSWER = 'ANSWER' - - LIVEBOARD = 'LIVEBOARD' - - DATAOBJECT = 'DATAOBJECT' - - COLUMN = 'COLUMN' - - JOIN = 'JOIN' - - CONNECTION = 'CONNECTION' - - TAG = 'TAG' - - USER = 'USER' - - USER_GROUP = 'USER_GROUP' diff --git a/Python/thoughtspotpublicrestapi/models/type_7_enum.py b/Python/thoughtspotpublicrestapi/models/type_7_enum.py deleted file mode 100644 index 373eb68c3..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_7_enum.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type7Enum(object): - - """Implementation of the 'type7' enum. - - TODO: type enum description here. - - Attributes: - LIVEBOARD: TODO: type description here. - ANSWER: TODO: type description here. - DATAOBJECT: TODO: type description here. - COLUMN: TODO: type description here. - - """ - - LIVEBOARD = 'LIVEBOARD' - - ANSWER = 'ANSWER' - - DATAOBJECT = 'DATAOBJECT' - - COLUMN = 'COLUMN' diff --git a/Python/thoughtspotpublicrestapi/models/type_8_enum.py b/Python/thoughtspotpublicrestapi/models/type_8_enum.py deleted file mode 100644 index 17f2ea02f..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_8_enum.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type8Enum(object): - - """Implementation of the 'type8' enum. - - TODO: type enum description here. - - Attributes: - UNKNOWN: TODO: type description here. - LDAP_USER: TODO: type description here. - SAML_USER: TODO: type description here. - OIDC_USER: TODO: type description here. - LOCAL_USER: TODO: type description here. - - """ - - UNKNOWN = 'UNKNOWN' - - LDAP_USER = 'LDAP_USER' - - SAML_USER = 'SAML_USER' - - OIDC_USER = 'OIDC_USER' - - LOCAL_USER = 'LOCAL_USER' diff --git a/Python/thoughtspotpublicrestapi/models/type_9_enum.py b/Python/thoughtspotpublicrestapi/models/type_9_enum.py deleted file mode 100644 index 116a11f6a..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_9_enum.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Type9Enum(object): - - """Implementation of the 'Type9' enum. - - Type of user. LOCAL_USER indicates that the user is created locally in the - ThoughtSpot system. - - Attributes: - UNKNOWN: TODO: type description here. - LDAP_USER: TODO: type description here. - SAML_USER: TODO: type description here. - OIDC_USER: TODO: type description here. - LOCAL_USER: TODO: type description here. - - """ - - UNKNOWN = 'UNKNOWN' - - LDAP_USER = 'LDAP_USER' - - SAML_USER = 'SAML_USER' - - OIDC_USER = 'OIDC_USER' - - LOCAL_USER = 'LOCAL_USER' diff --git a/Python/thoughtspotpublicrestapi/models/type_enum.py b/Python/thoughtspotpublicrestapi/models/type_enum.py deleted file mode 100644 index 160f80806..000000000 --- a/Python/thoughtspotpublicrestapi/models/type_enum.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class TypeEnum(object): - - """Implementation of the 'Type' enum. - - Type of the metadata object - - Attributes: - ANSWER: TODO: type description here. - LIVEBOARD: TODO: type description here. - DATAOBJECT: TODO: type description here. - CONNECTION: TODO: type description here. - - """ - - ANSWER = 'ANSWER' - - LIVEBOARD = 'LIVEBOARD' - - DATAOBJECT = 'DATAOBJECT' - - CONNECTION = 'CONNECTION' diff --git a/Python/thoughtspotpublicrestapi/models/user_name_and_id.py b/Python/thoughtspotpublicrestapi/models/user_name_and_id.py deleted file mode 100644 index 62e3cf8ab..000000000 --- a/Python/thoughtspotpublicrestapi/models/user_name_and_id.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class UserNameAndID(object): - - """Implementation of the 'UserNameAndID' model. - - TODO: type model description here. - - Attributes: - name (string): Username of the user - id (string): GUID of the user - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the UserNameAndID class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/user_name_and_id_input.py b/Python/thoughtspotpublicrestapi/models/user_name_and_id_input.py deleted file mode 100644 index 4c5815343..000000000 --- a/Python/thoughtspotpublicrestapi/models/user_name_and_id_input.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class UserNameAndIDInput(object): - - """Implementation of the 'UserNameAndIDInput' model. - - TODO: type model description here. - - Attributes: - name (string): Username of the user - id (string): GUID of the user - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id' - } - - _optionals = [ - 'name', - 'id', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP): - """Constructor for the UserNameAndIDInput class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id) diff --git a/Python/thoughtspotpublicrestapi/models/user_response.py b/Python/thoughtspotpublicrestapi/models/user_response.py deleted file mode 100644 index 0be044f46..000000000 --- a/Python/thoughtspotpublicrestapi/models/user_response.py +++ /dev/null @@ -1,329 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper -from thoughtspotpublicrestapi.models.group_name_and_id import GroupNameAndID -from thoughtspotpublicrestapi.models.org_type import OrgType -from thoughtspotpublicrestapi.models.user_name_and_id import UserNameAndID - - -class UserResponse(object): - - """Implementation of the 'UserResponse' model. - - TODO: type model description here. - - Attributes: - name (string): Username of the user account - display_name (string): Display name of the user account - id (string): GUID of the user account - visibility (string): Visibility of the user account - mail (string): Email of the user account - groups (list of GroupNameAndID): Name of the group to which user - account is added - privileges (list of string): Privileges assigned to user account - orgs (list of OrgType): The organizations that user belongs to - tags (list of string): Tags assigned to the user - state (string): Indicates if the user account is active or inactive - notify_on_share (bool): Indicates if the email should be sent when - object is shared with the user - show_walk_me (bool): Indicates if the walk me should be shown when - logging in - analyst_onboarding_complete (bool): Indicates if the onboarding is - completed for the user - first_login (int): Indicates if the use is logging in for the first - time - welcome_email_sent (bool): Indicates if the welcome email is sent to - email associated with the user account - is_deleted (bool): Indicates if the user account is deleted - is_hidden (bool): Indicates if the user account is hidden - is_external (bool): Indicates if the user account is from external - system isDeprecated - is_deprecated (bool): TODO: type description here. - complete (bool): Indicates if the all the properties of user account - is provided - is_super_user (bool): Indicates if the user account is super user - is_system_principal (bool): Indicates if the user account is system - principal - mtype (string): Indicates the type of user account - parenttype (string): Indicates the type of parent object - tenant_id (string): Tenant id associated with the user account - index_version (float): TODO: type description here. - generation_num (float): TODO: type description here. - created (float): Date and time when user account was created - modified (float): Date and time of last modification of user account - author (UserNameAndID): TODO: type description here. - modified_by (UserNameAndID): TODO: type description here. - owner (UserNameAndID): TODO: type description here. - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "display_name": 'displayName', - "id": 'id', - "visibility": 'visibility', - "mail": 'mail', - "groups": 'groups', - "privileges": 'privileges', - "orgs": 'orgs', - "tags": 'tags', - "state": 'state', - "notify_on_share": 'notifyOnShare', - "show_walk_me": 'showWalkMe', - "analyst_onboarding_complete": 'analystOnboardingComplete', - "first_login": 'firstLogin', - "welcome_email_sent": 'welcomeEmailSent', - "is_deleted": 'isDeleted', - "is_hidden": 'isHidden', - "is_external": 'isExternal', - "is_deprecated": 'isDeprecated', - "complete": 'complete', - "is_super_user": 'isSuperUser', - "is_system_principal": 'isSystemPrincipal', - "mtype": 'type', - "parenttype": 'parenttype', - "tenant_id": 'tenantId', - "index_version": 'indexVersion', - "generation_num": 'generationNum', - "created": 'created', - "modified": 'modified', - "author": 'author', - "modified_by": 'modifiedBy', - "owner": 'owner' - } - - _optionals = [ - 'name', - 'display_name', - 'id', - 'visibility', - 'mail', - 'groups', - 'privileges', - 'orgs', - 'tags', - 'state', - 'notify_on_share', - 'show_walk_me', - 'analyst_onboarding_complete', - 'first_login', - 'welcome_email_sent', - 'is_deleted', - 'is_hidden', - 'is_external', - 'is_deprecated', - 'complete', - 'is_super_user', - 'is_system_principal', - 'mtype', - 'parenttype', - 'tenant_id', - 'index_version', - 'generation_num', - 'created', - 'modified', - 'author', - 'modified_by', - 'owner', - ] - - def __init__(self, - name=APIHelper.SKIP, - display_name=APIHelper.SKIP, - id=APIHelper.SKIP, - visibility=APIHelper.SKIP, - mail=APIHelper.SKIP, - groups=APIHelper.SKIP, - privileges=APIHelper.SKIP, - orgs=APIHelper.SKIP, - tags=APIHelper.SKIP, - state=APIHelper.SKIP, - notify_on_share=APIHelper.SKIP, - show_walk_me=APIHelper.SKIP, - analyst_onboarding_complete=APIHelper.SKIP, - first_login=APIHelper.SKIP, - welcome_email_sent=APIHelper.SKIP, - is_deleted=APIHelper.SKIP, - is_hidden=APIHelper.SKIP, - is_external=APIHelper.SKIP, - is_deprecated=APIHelper.SKIP, - complete=APIHelper.SKIP, - is_super_user=APIHelper.SKIP, - is_system_principal=APIHelper.SKIP, - mtype=APIHelper.SKIP, - parenttype=APIHelper.SKIP, - tenant_id=APIHelper.SKIP, - index_version=APIHelper.SKIP, - generation_num=APIHelper.SKIP, - created=APIHelper.SKIP, - modified=APIHelper.SKIP, - author=APIHelper.SKIP, - modified_by=APIHelper.SKIP, - owner=APIHelper.SKIP): - """Constructor for the UserResponse class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if display_name is not APIHelper.SKIP: - self.display_name = display_name - if id is not APIHelper.SKIP: - self.id = id - if visibility is not APIHelper.SKIP: - self.visibility = visibility - if mail is not APIHelper.SKIP: - self.mail = mail - if groups is not APIHelper.SKIP: - self.groups = groups - if privileges is not APIHelper.SKIP: - self.privileges = privileges - if orgs is not APIHelper.SKIP: - self.orgs = orgs - if tags is not APIHelper.SKIP: - self.tags = tags - if state is not APIHelper.SKIP: - self.state = state - if notify_on_share is not APIHelper.SKIP: - self.notify_on_share = notify_on_share - if show_walk_me is not APIHelper.SKIP: - self.show_walk_me = show_walk_me - if analyst_onboarding_complete is not APIHelper.SKIP: - self.analyst_onboarding_complete = analyst_onboarding_complete - if first_login is not APIHelper.SKIP: - self.first_login = first_login - if welcome_email_sent is not APIHelper.SKIP: - self.welcome_email_sent = welcome_email_sent - if is_deleted is not APIHelper.SKIP: - self.is_deleted = is_deleted - if is_hidden is not APIHelper.SKIP: - self.is_hidden = is_hidden - if is_external is not APIHelper.SKIP: - self.is_external = is_external - if is_deprecated is not APIHelper.SKIP: - self.is_deprecated = is_deprecated - if complete is not APIHelper.SKIP: - self.complete = complete - if is_super_user is not APIHelper.SKIP: - self.is_super_user = is_super_user - if is_system_principal is not APIHelper.SKIP: - self.is_system_principal = is_system_principal - if mtype is not APIHelper.SKIP: - self.mtype = mtype - if parenttype is not APIHelper.SKIP: - self.parenttype = parenttype - if tenant_id is not APIHelper.SKIP: - self.tenant_id = tenant_id - if index_version is not APIHelper.SKIP: - self.index_version = index_version - if generation_num is not APIHelper.SKIP: - self.generation_num = generation_num - if created is not APIHelper.SKIP: - self.created = created - if modified is not APIHelper.SKIP: - self.modified = modified - if author is not APIHelper.SKIP: - self.author = author - if modified_by is not APIHelper.SKIP: - self.modified_by = modified_by - if owner is not APIHelper.SKIP: - self.owner = owner - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - display_name = dictionary.get("displayName") if dictionary.get("displayName") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - visibility = dictionary.get("visibility") if dictionary.get("visibility") else APIHelper.SKIP - mail = dictionary.get("mail") if dictionary.get("mail") else APIHelper.SKIP - groups = None - if dictionary.get('groups') is not None: - groups = [GroupNameAndID.from_dictionary(x) for x in dictionary.get('groups')] - else: - groups = APIHelper.SKIP - privileges = dictionary.get("privileges") if dictionary.get("privileges") else APIHelper.SKIP - orgs = None - if dictionary.get('orgs') is not None: - orgs = [OrgType.from_dictionary(x) for x in dictionary.get('orgs')] - else: - orgs = APIHelper.SKIP - tags = dictionary.get("tags") if dictionary.get("tags") else APIHelper.SKIP - state = dictionary.get("state") if dictionary.get("state") else APIHelper.SKIP - notify_on_share = dictionary.get("notifyOnShare") if "notifyOnShare" in dictionary.keys() else APIHelper.SKIP - show_walk_me = dictionary.get("showWalkMe") if "showWalkMe" in dictionary.keys() else APIHelper.SKIP - analyst_onboarding_complete = dictionary.get("analystOnboardingComplete") if "analystOnboardingComplete" in dictionary.keys() else APIHelper.SKIP - first_login = dictionary.get("firstLogin") if dictionary.get("firstLogin") else APIHelper.SKIP - welcome_email_sent = dictionary.get("welcomeEmailSent") if "welcomeEmailSent" in dictionary.keys() else APIHelper.SKIP - is_deleted = dictionary.get("isDeleted") if "isDeleted" in dictionary.keys() else APIHelper.SKIP - is_hidden = dictionary.get("isHidden") if "isHidden" in dictionary.keys() else APIHelper.SKIP - is_external = dictionary.get("isExternal") if "isExternal" in dictionary.keys() else APIHelper.SKIP - is_deprecated = dictionary.get("isDeprecated") if "isDeprecated" in dictionary.keys() else APIHelper.SKIP - complete = dictionary.get("complete") if "complete" in dictionary.keys() else APIHelper.SKIP - is_super_user = dictionary.get("isSuperUser") if "isSuperUser" in dictionary.keys() else APIHelper.SKIP - is_system_principal = dictionary.get("isSystemPrincipal") if "isSystemPrincipal" in dictionary.keys() else APIHelper.SKIP - mtype = dictionary.get("type") if dictionary.get("type") else APIHelper.SKIP - parenttype = dictionary.get("parenttype") if dictionary.get("parenttype") else APIHelper.SKIP - tenant_id = dictionary.get("tenantId") if dictionary.get("tenantId") else APIHelper.SKIP - index_version = dictionary.get("indexVersion") if dictionary.get("indexVersion") else APIHelper.SKIP - generation_num = dictionary.get("generationNum") if dictionary.get("generationNum") else APIHelper.SKIP - created = dictionary.get("created") if dictionary.get("created") else APIHelper.SKIP - modified = dictionary.get("modified") if dictionary.get("modified") else APIHelper.SKIP - author = UserNameAndID.from_dictionary(dictionary.get('author')) if 'author' in dictionary.keys() else APIHelper.SKIP - modified_by = UserNameAndID.from_dictionary(dictionary.get('modifiedBy')) if 'modifiedBy' in dictionary.keys() else APIHelper.SKIP - owner = UserNameAndID.from_dictionary(dictionary.get('owner')) if 'owner' in dictionary.keys() else APIHelper.SKIP - # Return an object of this model - return cls(name, - display_name, - id, - visibility, - mail, - groups, - privileges, - orgs, - tags, - state, - notify_on_share, - show_walk_me, - analyst_onboarding_complete, - first_login, - welcome_email_sent, - is_deleted, - is_hidden, - is_external, - is_deprecated, - complete, - is_super_user, - is_system_principal, - mtype, - parenttype, - tenant_id, - index_version, - generation_num, - created, - modified, - author, - modified_by, - owner) diff --git a/Python/thoughtspotpublicrestapi/models/visibility_1_enum.py b/Python/thoughtspotpublicrestapi/models/visibility_1_enum.py deleted file mode 100644 index fe01b1316..000000000 --- a/Python/thoughtspotpublicrestapi/models/visibility_1_enum.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Visibility1Enum(object): - - """Implementation of the 'Visibility1' enum. - - Visibility of the user account. The visibility attribute is set to DEFAULT - when creating a user. The DEFAULT attribute makes a user visible to other - users and user groups, and thus allows them to share objects. - - Attributes: - DEFAULT: TODO: type description here. - NON_SHARABLE: TODO: type description here. - SHARABLE: TODO: type description here. - - """ - - DEFAULT = 'DEFAULT' - - NON_SHARABLE = 'NON_SHARABLE' - - SHARABLE = 'SHARABLE' diff --git a/Python/thoughtspotpublicrestapi/models/visibility_2_enum.py b/Python/thoughtspotpublicrestapi/models/visibility_2_enum.py deleted file mode 100644 index 10eea8f1d..000000000 --- a/Python/thoughtspotpublicrestapi/models/visibility_2_enum.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class Visibility2Enum(object): - - """Implementation of the 'Visibility2' enum. - - Visibility of the user group. The visibility attribute is set to DEFAULT. - The DEFAULT attribute makes the user group visible for other user groups - and allows them to share objects. - - Attributes: - DEFAULT: TODO: type description here. - NON_SHARABLE: TODO: type description here. - SHARABLE: TODO: type description here. - - """ - - DEFAULT = 'DEFAULT' - - NON_SHARABLE = 'NON_SHARABLE' - - SHARABLE = 'SHARABLE' diff --git a/Python/thoughtspotpublicrestapi/models/visibility_enum.py b/Python/thoughtspotpublicrestapi/models/visibility_enum.py deleted file mode 100644 index 55b69b402..000000000 --- a/Python/thoughtspotpublicrestapi/models/visibility_enum.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - - -class VisibilityEnum(object): - - """Implementation of the 'visibility' enum. - - TODO: type enum description here. - - Attributes: - DEFAULT: TODO: type description here. - NON_SHARABLE: TODO: type description here. - SHARABLE: TODO: type description here. - - """ - - DEFAULT = 'DEFAULT' - - NON_SHARABLE = 'NON_SHARABLE' - - SHARABLE = 'SHARABLE' diff --git a/Python/thoughtspotpublicrestapi/models/viz_type.py b/Python/thoughtspotpublicrestapi/models/viz_type.py deleted file mode 100644 index bd157a8c8..000000000 --- a/Python/thoughtspotpublicrestapi/models/viz_type.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" -from thoughtspotpublicrestapi.api_helper import APIHelper - - -class VizType(object): - - """Implementation of the 'VizType' model. - - TODO: type model description here. - - Attributes: - name (string): The name of the visualization - id (string): The GUID of the visualization - query_sql (string): SQL query associated with the visualization - - """ - - # Create a mapping from Model property names to API property names - _names = { - "name": 'name', - "id": 'id', - "query_sql": 'querySql' - } - - _optionals = [ - 'name', - 'id', - 'query_sql', - ] - - def __init__(self, - name=APIHelper.SKIP, - id=APIHelper.SKIP, - query_sql=APIHelper.SKIP): - """Constructor for the VizType class""" - - # Initialize members of the class - if name is not APIHelper.SKIP: - self.name = name - if id is not APIHelper.SKIP: - self.id = id - if query_sql is not APIHelper.SKIP: - self.query_sql = query_sql - - @classmethod - def from_dictionary(cls, - dictionary): - """Creates an instance of this model from a dictionary - - Args: - dictionary (dictionary): A dictionary representation of the object - as obtained from the deserialization of the server's response. The - keys MUST match property names in the API description. - - Returns: - object: An instance of this structure class. - - """ - if dictionary is None: - return None - - # Extract variables from the dictionary - - name = dictionary.get("name") if dictionary.get("name") else APIHelper.SKIP - id = dictionary.get("id") if dictionary.get("id") else APIHelper.SKIP - query_sql = dictionary.get("querySql") if dictionary.get("querySql") else APIHelper.SKIP - # Return an object of this model - return cls(name, - id, - query_sql) diff --git a/Python/thoughtspotpublicrestapi/thoughtspotpublicrestapi_client.py b/Python/thoughtspotpublicrestapi/thoughtspotpublicrestapi_client.py deleted file mode 100644 index f1734625c..000000000 --- a/Python/thoughtspotpublicrestapi/thoughtspotpublicrestapi_client.py +++ /dev/null @@ -1,137 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core.configurations.global_configuration import GlobalConfiguration -from apimatic_core.decorators.lazy_property import LazyProperty -from thoughtspotpublicrestapi.configuration import Configuration -from thoughtspotpublicrestapi.controllers.base_controller import BaseController -from thoughtspotpublicrestapi.configuration import Environment -from thoughtspotpublicrestapi.http.auth.o_auth_2 import OAuth2 -from thoughtspotpublicrestapi.controllers.user_controller import UserController -from thoughtspotpublicrestapi.controllers.group_controller\ - import GroupController -from thoughtspotpublicrestapi.controllers.metadata_controller\ - import MetadataController -from thoughtspotpublicrestapi.controllers.database_controller\ - import DatabaseController -from thoughtspotpublicrestapi.controllers.connection_controller\ - import ConnectionController -from thoughtspotpublicrestapi.controllers.data_controller import DataController -from thoughtspotpublicrestapi.controllers.logs_controller import LogsController -from thoughtspotpublicrestapi.controllers.custom_actions_controller\ - import CustomActionsController -from thoughtspotpublicrestapi.controllers.security_controller\ - import SecurityController -from thoughtspotpublicrestapi.controllers.org_controller import OrgController -from thoughtspotpublicrestapi.controllers.session_controller\ - import SessionController -from thoughtspotpublicrestapi.controllers.admin_controller\ - import AdminController -from thoughtspotpublicrestapi.controllers.report_controller\ - import ReportController -from thoughtspotpublicrestapi.controllers.materialization_controller\ - import MaterializationController - - -class ThoughtspotpublicrestapiClient(object): - - @LazyProperty - def user(self): - return UserController(self.global_configuration) - - @LazyProperty - def group(self): - return GroupController(self.global_configuration) - - @LazyProperty - def metadata(self): - return MetadataController(self.global_configuration) - - @LazyProperty - def database(self): - return DatabaseController(self.global_configuration) - - @LazyProperty - def connection(self): - return ConnectionController(self.global_configuration) - - @LazyProperty - def data(self): - return DataController(self.global_configuration) - - @LazyProperty - def logs(self): - return LogsController(self.global_configuration) - - @LazyProperty - def custom_actions(self): - return CustomActionsController(self.global_configuration) - - @LazyProperty - def security(self): - return SecurityController(self.global_configuration) - - @LazyProperty - def org(self): - return OrgController(self.global_configuration) - - @LazyProperty - def session(self): - return SessionController(self.global_configuration) - - @LazyProperty - def admin(self): - return AdminController(self.global_configuration) - - @LazyProperty - def report(self): - return ReportController(self.global_configuration) - - @LazyProperty - def materialization(self): - return MaterializationController(self.global_configuration) - - def __init__(self, http_client_instance=None, - override_http_client_configuration=False, http_call_back=None, - timeout=60, max_retries=0, backoff_factor=2, - retry_statuses=[408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524], - retry_methods=['GET', 'PUT', 'GET', 'PUT'], - environment=Environment.PRODUCTION, - base_url='https://localhost:443', access_token='', - skip_ssl_cert_verification=False, config=None): - if config is None: - self.config = Configuration( - http_client_instance=http_client_instance, - override_http_client_configuration=override_http_client_configuration, - http_call_back=http_call_back, - timeout=timeout, - max_retries=max_retries, - backoff_factor=backoff_factor, - retry_statuses=retry_statuses, - retry_methods=retry_methods, - environment=environment, - base_url=base_url, - access_token=access_token, - skip_ssl_cert_verification=skip_ssl_cert_verification) - else: - self.config = config - - self.global_configuration = GlobalConfiguration(self.config)\ - .global_errors(BaseController.global_errors())\ - .base_uri_executor(self.config.get_base_uri)\ - .user_agent(BaseController.user_agent(), BaseController.user_agent_parameters()) - self.initialize_auth_managers(self.global_configuration) - - self.global_configuration = self.global_configuration.auth_managers(self.auth_managers) - - def initialize_auth_managers(self, global_config): - http_client_config = global_config.get_http_client_configuration() - self.auth_managers = { key: None for key in ['global']} - self.auth_managers['global'] = OAuth2(http_client_config.access_token) - return self.auth_managers diff --git a/Python/thoughtspotpublicrestapi/utilities/__init__.py b/Python/thoughtspotpublicrestapi/utilities/__init__.py deleted file mode 100644 index c66129ab8..000000000 --- a/Python/thoughtspotpublicrestapi/utilities/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -__all__ = [ - 'file_wrapper', -] diff --git a/Python/thoughtspotpublicrestapi/utilities/file_wrapper.py b/Python/thoughtspotpublicrestapi/utilities/file_wrapper.py deleted file mode 100644 index 80b56114a..000000000 --- a/Python/thoughtspotpublicrestapi/utilities/file_wrapper.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -thoughtspotpublicrestapi - -This file was automatically generated by APIMATIC v3.0 ( - https://www.apimatic.io ). -""" - -from apimatic_core.types.file_wrapper import FileWrapper - - -class FileWrapper(FileWrapper): - """A wrapper to allow passing in content type for file uploads.""" - - def __init__(self, file, content_type='application/octet-stream'): - super().__init__(file, content_type) diff --git a/Python/tox.ini b/Python/tox.ini deleted file mode 100644 index 6d6285799..000000000 --- a/Python/tox.ini +++ /dev/null @@ -1,7 +0,0 @@ -[tox] -envlist = {py37, py38, py39} - -[testenv] -commands = pytest -deps = - pytest diff --git a/Typescript/.editorconfig b/Typescript/.editorconfig deleted file mode 100644 index 63187fe16..000000000 --- a/Typescript/.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -max_line_length = 80 -trim_trailing_whitespace = true - -[*.md] -max_line_length = 0 -trim_trailing_whitespace = false diff --git a/Typescript/.gitignore b/Typescript/.gitignore deleted file mode 100644 index 9f9eafe6a..000000000 --- a/Typescript/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -*.log -.DS_Store -node_modules -dist -coverage \ No newline at end of file diff --git a/Typescript/LICENSE b/Typescript/LICENSE deleted file mode 100644 index c571aa529..000000000 --- a/Typescript/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -License: -======== -The MIT License (MIT) -http://opensource.org/licenses/MIT - -Copyright (c) 2014 - 2022 APIMATIC Limited - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Trade Mark: -========== -APIMATIC is a trade mark for APIMATIC Limited \ No newline at end of file diff --git a/Typescript/README.md b/Typescript/README.md deleted file mode 100644 index ed92b28ff..000000000 --- a/Typescript/README.md +++ /dev/null @@ -1,83 +0,0 @@ - -# Getting Started with ThoughtSpot Public REST API - -## Install the Package - -Run the following command from your project directory to install the package from npm: - -```ts -npm install thoughtspot@rest-api-sdk@1.13.1 -``` - -## Initialize the API Client - -**_Note:_** Documentation for the client can be found [here.](doc/client.md) - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `baseUrl` | `string` | *Default*: `'https://localhost:443'` | -| `environment` | Environment | The API environment.
**Default: `Environment.Production`** | -| `timeout` | `number` | Timeout for API calls.
*Default*: `0` | -| `httpClientOptions` | `Partial` | Stable configurable http client options. | -| `unstableHttpClientOptions` | `any` | Unstable configurable http client options. | -| `accessToken` | `string` | The OAuth 2.0 Access Token to use for API requests. | - -### HttpClientOptions - -| Parameter | Type | Description | -| --- | --- | --- | -| `timeout` | `number` | Timeout in milliseconds. | -| `httpAgent` | `any` | Custom http agent to be used when performing http requests. | -| `httpsAgent` | `any` | Custom https agent to be used when performing http requests. | -| `retryConfig` | `Partial` | Configurations to retry requests. | - -### RetryConfiguration - -| Parameter | Type | Description | -| --- | --- | --- | -| `maxNumberOfRetries` | `number` | Maximum number of retries.
*Default*: `0` | -| `retryOnTimeout` | `boolean` | Whether to retry on request timeout.
*Default*: `true` | -| `retryInterval` | `number` | Interval before next retry. Used in calculation of wait time for next request in case of failure.
*Default*: `1` | -| `maximumRetryWaitTime` | `number` | Overall wait time for the requests getting retried.
*Default*: `0` | -| `backoffFactor` | `number` | Used in calculation of wait time for next request in case of failure.
*Default*: `2` | -| `httpStatusCodesToRetry` | `number[]` | Http status codes to retry against.
*Default*: `[408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524]` | -| `httpMethodsToRetry` | `HttpMethod[]` | Http methods to retry against.
*Default*: `['GET', 'PUT', 'GET', 'PUT']` | - -The API client can be initialized as follows: - -```ts -const client = new Client({ - timeout: 0, - environment: Environment.Production, - accessToken: 'AccessToken', -}) -``` - -## Authorization - -This API uses `OAuth 2 Bearer token`. - -## List of APIs - -* [User](doc/controllers/user.md) -* [Group](doc/controllers/group.md) -* [Metadata](doc/controllers/metadata.md) -* [Database](doc/controllers/database.md) -* [Connection](doc/controllers/connection.md) -* [Data](doc/controllers/data.md) -* [Logs](doc/controllers/logs.md) -* [Custom Actions](doc/controllers/custom-actions.md) -* [Security](doc/controllers/security.md) -* [Org](doc/controllers/org.md) -* [Session](doc/controllers/session.md) -* [Admin](doc/controllers/admin.md) -* [Report](doc/controllers/report.md) -* [Materialization](doc/controllers/materialization.md) - -## Classes Documentation - -* [ApiResponse](doc/api-response.md) -* [ApiError](doc/api-error.md) - diff --git a/Typescript/doc/api-error.md b/Typescript/doc/api-error.md deleted file mode 100644 index 4161e0e33..000000000 --- a/Typescript/doc/api-error.md +++ /dev/null @@ -1,17 +0,0 @@ - -# ApiError - -Thrown when the HTTP status code is not okay. - -The ApiError extends the ApiResponse interface, so all ApiResponse properties are available. - -## Properties - -| Name | Type | Description | -| --- | --- | --- | -| request | HttpRequest | Original request that resulted in this response. | -| statusCode | number | Response status codee. | -| headers | Record | Response headers. | -| result | T | Response data. | -| body | string \| Blob \| NodeJS.ReadableStream | Original body from the response. | - diff --git a/Typescript/doc/api-response.md b/Typescript/doc/api-response.md deleted file mode 100644 index 1e886c9e1..000000000 --- a/Typescript/doc/api-response.md +++ /dev/null @@ -1,15 +0,0 @@ - -# ApiResponse - -An interface for the result of an API call. - -## Properties - -| Name | Type | Description | -| --- | --- | --- | -| request | HttpRequest | Original request that resulted in this response. | -| statusCode | number | Response status codee. | -| headers | Record | Response headers. | -| result | T | Response data. | -| body | string \| Blob \| NodeJS.ReadableStream | Original body from the response. | - diff --git a/Typescript/doc/client.md b/Typescript/doc/client.md deleted file mode 100644 index 189bf8e38..000000000 --- a/Typescript/doc/client.md +++ /dev/null @@ -1,68 +0,0 @@ - -# Client Class Documentation - -The following parameters are configurable for the API Client: - -| Parameter | Type | Description | -| --- | --- | --- | -| `baseUrl` | `string` | *Default*: `'https://localhost:443'` | -| `environment` | Environment | The API environment.
**Default: `Environment.Production`** | -| `timeout` | `number` | Timeout for API calls.
*Default*: `0` | -| `httpClientOptions` | `Partial` | Stable configurable http client options. | -| `unstableHttpClientOptions` | `any` | Unstable configurable http client options. | -| `accessToken` | `string` | The OAuth 2.0 Access Token to use for API requests. | - -## HttpClientOptions - -| Parameter | Type | Description | -| --- | --- | --- | -| `timeout` | `number` | Timeout in milliseconds. | -| `httpAgent` | `any` | Custom http agent to be used when performing http requests. | -| `httpsAgent` | `any` | Custom https agent to be used when performing http requests. | -| `retryConfig` | `Partial` | Configurations to retry requests. | - -## RetryConfiguration - -| Parameter | Type | Description | -| --- | --- | --- | -| `maxNumberOfRetries` | `number` | Maximum number of retries.
*Default*: `0` | -| `retryOnTimeout` | `boolean` | Whether to retry on request timeout.
*Default*: `true` | -| `retryInterval` | `number` | Interval before next retry. Used in calculation of wait time for next request in case of failure.
*Default*: `1` | -| `maximumRetryWaitTime` | `number` | Overall wait time for the requests getting retried.
*Default*: `0` | -| `backoffFactor` | `number` | Used in calculation of wait time for next request in case of failure.
*Default*: `2` | -| `httpStatusCodesToRetry` | `number[]` | Http status codes to retry against.
*Default*: `[408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524]` | -| `httpMethodsToRetry` | `HttpMethod[]` | Http methods to retry against.
*Default*: `['GET', 'PUT', 'GET', 'PUT']` | - -The API client can be initialized as follows: - -```ts -const client = new Client({ - timeout: 0, - environment: Environment.Production, - accessToken: 'AccessToken', -}) -``` - -## ThoughtSpot Public REST API Client - -The gateway for the SDK. This class acts as a factory for the Controllers and also holds the configuration of the SDK. - -## Controllers - -| Name | Description | -| --- | --- | -| user | Gets UserController | -| group | Gets GroupController | -| metadata | Gets MetadataController | -| database | Gets DatabaseController | -| connection | Gets ConnectionController | -| data | Gets DataController | -| logs | Gets LogsController | -| customActions | Gets CustomActionsController | -| security | Gets SecurityController | -| org | Gets OrgController | -| session | Gets SessionController | -| admin | Gets AdminController | -| report | Gets ReportController | -| materialization | Gets MaterializationController | - diff --git a/Typescript/doc/controllers/admin.md b/Typescript/doc/controllers/admin.md deleted file mode 100644 index 40767b84f..000000000 --- a/Typescript/doc/controllers/admin.md +++ /dev/null @@ -1,337 +0,0 @@ -# Admin - -```ts -const adminController = new AdminController(client); -``` - -## Class Name - -`AdminController` - -## Methods - -* [Restapi V2 Update Cluster Config](../../doc/controllers/admin.md#restapi-v2-update-cluster-config) -* [Restapi V2 Reset User Password](../../doc/controllers/admin.md#restapi-v2-reset-user-password) -* [Restapi V2 Sync Principal](../../doc/controllers/admin.md#restapi-v2-sync-principal) -* [Restapi V2 Change Author of Objects](../../doc/controllers/admin.md#restapi-v2-change-author-of-objects) -* [Restapi V2 Assign Author to Objects](../../doc/controllers/admin.md#restapi-v2-assign-author-to-objects) -* [Restapi V2 Force Logout Users](../../doc/controllers/admin.md#restapi-v2-force-logout-users) - - -# Restapi V2 Update Cluster Config - -To update the Thoughtspot cluster configuration, use this endpoint. - -```ts -async restapiV2UpdateClusterConfig( - body: TspublicRestV2AdminConfigurationUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminConfigurationUpdateRequest`](../../doc/models/tspublic-rest-v2-admin-configuration-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2AdminConfigurationUpdateRequest = {}; - -try { - const { result, ...httpResponse } = await adminController.restapiV2UpdateClusterConfig(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Reset User Password - -To reset the password of a ThoughtSpot user account, use this endpoint. - -It is mandatory to use Authorization header with token of a user with admin access to successfully run this endpoint. - -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```ts -async restapiV2ResetUserPassword( - body: TspublicRestV2AdminResetpasswordRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminResetpasswordRequest`](../../doc/models/tspublic-rest-v2-admin-resetpassword-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2AdminResetpasswordRequest = { - newPassword: 'newPassword0', -}; - -try { - const { result, ...httpResponse } = await adminController.restapiV2ResetUserPassword(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Sync Principal - -To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, use this endpoint. - -The payload takes principals containing all users and groups present in the external system. - -The users and user groups in Thoughtspot get updated for any matching inputs. - -Any user and user group present in the input, but not present in the cluster, gets created in cluster. -n You can optionally choose to delete the user and groups from the cluster, that are not present in the input. - -```ts -async restapiV2SyncPrincipal( - body: TspublicRestV2AdminSyncprincipalRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminSyncprincipalRequest`](../../doc/models/tspublic-rest-v2-admin-syncprincipal-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`AdminsyncPrincipalResponse`](../../doc/models/adminsync-principal-response.md) - -## Example Usage - -```ts -const contentType = null; -const bodyPrincipalObject: unknown[] = ['{"key1":"val1","key2":"val2"}']; -const body: TspublicRestV2AdminSyncprincipalRequest = { - principalObject: bodyPrincipalObject, -}; - -try { - const { result, ...httpResponse } = await adminController.restapiV2SyncPrincipal(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Change Author of Objects - -To programmatically change the owner of one or several objects from one user account to another, use this endpoint. - -You might want to transfer ownership of objects owned by a user to another active user, when the account is removed from the ThoughtSpot application. - -```ts -async restapiV2ChangeAuthorOfObjects( - body: TspublicRestV2AdminChangeauthorRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminChangeauthorRequest`](../../doc/models/tspublic-rest-v2-admin-changeauthor-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTsObjectId: string[] = ['tsObjectId7']; -const bodyFromUser: FromUserNameAndIDInput = {}; - -const bodyToUser: ToUserNameAndIDInput = {}; - -const body: TspublicRestV2AdminChangeauthorRequest = { - tsObjectId: bodyTsObjectId, - fromUser: bodyFromUser, - toUser: bodyToUser, -}; - -try { - const { result, ...httpResponse } = await adminController.restapiV2ChangeAuthorOfObjects(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Assign Author to Objects - -To programmatically assign an author to one or several objects, use this endpoint. - -Provide either user name or id as input. When both are given user id will be considered. - -Requires administration privilege. - -```ts -async restapiV2AssignAuthorToObjects( - body: TspublicRestV2AdminAssignauthorRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminAssignauthorRequest`](../../doc/models/tspublic-rest-v2-admin-assignauthor-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTsObjectId: string[] = ['tsObjectId7']; -const body: TspublicRestV2AdminAssignauthorRequest = { - tsObjectId: bodyTsObjectId, -}; - -try { - const { result, ...httpResponse } = await adminController.restapiV2AssignAuthorToObjects(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Force Logout Users - -To logout one or more users from logged in session, use this endpoint. If no input is provided then all logged in users are force logged out. - -Requires administration privilege - -```ts -async restapiV2ForceLogoutUsers( - body: TspublicRestV2AdminForcelogoutRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2AdminForcelogoutRequest`](../../doc/models/tspublic-rest-v2-admin-forcelogout-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2AdminForcelogoutRequest = {}; - -try { - const { result, ...httpResponse } = await adminController.restapiV2ForceLogoutUsers(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/connection.md b/Typescript/doc/controllers/connection.md deleted file mode 100644 index 8fb72a998..000000000 --- a/Typescript/doc/controllers/connection.md +++ /dev/null @@ -1,639 +0,0 @@ -# Connection - -```ts -const connectionController = new ConnectionController(client); -``` - -## Class Name - -`ConnectionController` - -## Methods - -* [Restapi V2 Get Connection](../../doc/controllers/connection.md#restapi-v2-get-connection) -* [Restapi V2 Get Connection Database](../../doc/controllers/connection.md#restapi-v2-get-connection-database) -* [Restapi V2 Create Connection](../../doc/controllers/connection.md#restapi-v2-create-connection) -* [Restapi V2 Update Connection](../../doc/controllers/connection.md#restapi-v2-update-connection) -* [Restapi V2 Delete Connection](../../doc/controllers/connection.md#restapi-v2-delete-connection) -* [Restapi V2 Add Table to Connection](../../doc/controllers/connection.md#restapi-v2-add-table-to-connection) -* [Restapi V2 Remove Table From Connection](../../doc/controllers/connection.md#restapi-v2-remove-table-from-connection) -* [Restapi V2 Search Connection](../../doc/controllers/connection.md#restapi-v2-search-connection) -* [Restapi V2 Get Connection Tables](../../doc/controllers/connection.md#restapi-v2-get-connection-tables) -* [Restapi V2 Get Connection Table Columns](../../doc/controllers/connection.md#restapi-v2-get-connection-table-columns) - - -# Restapi V2 Get Connection - -To get the details of a specific connection use this endpoint - -```ts -async restapiV2GetConnection( - id: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the connection to query | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`ConnectionResponse`](../../doc/models/connection-response.md) - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await connectionController.restapiV2GetConnection(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Connection Database - -To get the list of databases for a connection, use this endpoint. - -The response will include databases from the data platform corresponding to the connection id provided. - -```ts -async restapiV2GetConnectionDatabase( - id: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the connection | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`string[]` - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await connectionController.restapiV2GetConnectionDatabase(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Create Connection - -To programmatically create a connection in the ThoughtSpot system use this API endpoint. -Using this API, you can create a connection and assign groups. -To create a connection, you require admin connection privileges. -All connections created in the ThoughtSpot system are added to ALL_GROUP - -```ts -async restapiV2CreateConnection( - body: TspublicRestV2ConnectionCreateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionCreateRequest`](../../doc/models/tspublic-rest-v2-connection-create-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`CreateConnectionResponse`](../../doc/models/create-connection-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2ConnectionCreateRequest = { - type: 'ORACLE_ADW', - name: 'name6', - configuration: 'configuration0', -}; - -try { - const { result, ...httpResponse } = await connectionController.restapiV2CreateConnection(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Update Connection - -You can use this endpoint to programmatically modify an existing connection -To modify a connection, you require admin connection privileges. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered and connectionname will be updated - -```ts -async restapiV2UpdateConnection( - body: TspublicRestV2ConnectionUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionUpdateRequest`](../../doc/models/tspublic-rest-v2-connection-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2ConnectionUpdateRequest = { - id: 'id6', - configuration: 'configuration0', -}; - -try { - const { result, ...httpResponse } = await connectionController.restapiV2UpdateConnection(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete Connection - -To remove a connection from the ThoughtSpot system, use this endpoint. - -```ts -async restapiV2DeleteConnection( - id: string[], - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string[]` | Query, Required | A JSON array of GUIDs of the connection | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const Id: string[] = ['id0']; -try { - const { result, ...httpResponse } = await connectionController.restapiV2DeleteConnection(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Add Table to Connection - -To programmatically add table to an existing connection use this endpoint. -When you assign groups to a connection, the connection inherits the privileges assigned to those groups. -At least one of Connection Id or connectionname is mandatory. When both are given, then connection id will be considered. - -```ts -async restapiV2AddTableToConnection( - body: TspublicRestV2ConnectionAddtableRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionAddtableRequest`](../../doc/models/tspublic-rest-v2-connection-addtable-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTable: AddTableInput[] = []; - -const bodytable0Columns: ColumnsInput[] = []; - -const bodytable0columns0: ColumnsInput = { - name: 'name0', - dataType: 'dataType2', -}; - -bodytable0Columns[0] = bodytable0columns0; - -const bodytable0columns1: ColumnsInput = { - name: 'name1', - dataType: 'dataType3', -}; - -bodytable0Columns[1] = bodytable0columns1; - -const bodytable0: AddTableInput = { - name: 'name0', - dbName: 'dbName8', - schemaName: 'schemaName4', - columns: bodytable0Columns, -}; - -bodyTable[0] = bodytable0; - -const bodytable1Columns: ColumnsInput[] = []; - -const bodytable1columns0: ColumnsInput = { - name: 'name9', - dataType: 'dataType1', -}; - -bodytable1Columns[0] = bodytable1columns0; - -const bodytable1: AddTableInput = { - name: 'name1', - dbName: 'dbName9', - schemaName: 'schemaName5', - columns: bodytable1Columns, -}; - -bodyTable[1] = bodytable1; - -const bodytable2Columns: ColumnsInput[] = []; - -const bodytable2columns0: ColumnsInput = { - name: 'name8', - dataType: 'dataType0', -}; - -bodytable2Columns[0] = bodytable2columns0; - -const bodytable2columns1: ColumnsInput = { - name: 'name9', - dataType: 'dataType1', -}; - -bodytable2Columns[1] = bodytable2columns1; - -const bodytable2columns2: ColumnsInput = { - name: 'name0', - dataType: 'dataType2', -}; - -bodytable2Columns[2] = bodytable2columns2; - -const bodytable2: AddTableInput = { - name: 'name2', - dbName: 'dbName0', - schemaName: 'schemaName6', - columns: bodytable2Columns, -}; - -bodyTable[2] = bodytable2; - -const body: TspublicRestV2ConnectionAddtableRequest = { - id: 'id6', - table: bodyTable, -}; - -try { - const { result, ...httpResponse } = await connectionController.restapiV2AddTableToConnection(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Remove Table From Connection - -To programmatically remove a table from a connection use API endpoint. -The API removes only the connection association. It does not delete the connection or group from the Thoughtspot system. -At least one of id or name of connection is required. When both are given connection id will be considered. - -```ts -async restapiV2RemoveTableFromConnection( - body: TspublicRestV2ConnectionRemovetableRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionRemovetableRequest`](../../doc/models/tspublic-rest-v2-connection-removetable-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTable: TableInput[] = []; - -const bodytable0: TableInput = {}; - -bodyTable[0] = bodytable0; - -const bodytable1: TableInput = {}; - -bodyTable[1] = bodytable1; - -const bodytable2: TableInput = {}; - -bodyTable[2] = bodytable2; - -const body: TspublicRestV2ConnectionRemovetableRequest = { - id: 'id6', - table: bodyTable, -}; - -try { - const { result, ...httpResponse } = await connectionController.restapiV2RemoveTableFromConnection(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Connection - -To get the details of a specific connection or all connections in the ThoughtSpot system use this end point. - -```ts -async restapiV2SearchConnection( - body: TspublicRestV2ConnectionSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionSearchRequest`](../../doc/models/tspublic-rest-v2-connection-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`ConnectionResponse[]`](../../doc/models/connection-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2ConnectionSearchRequest = { - type: 'ORACLE_ADW', -}; - -try { - const { result, ...httpResponse } = await connectionController.restapiV2SearchConnection(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Connection Tables - -To get the details of tables from a connection, use this endpoint. - -You can get the details of tables in the data platform for the connection id provided. - -```ts -async restapiV2GetConnectionTables( - body: TspublicRestV2ConnectionTableRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionTableRequest`](../../doc/models/tspublic-rest-v2-connection-table-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`ConnectionTableResponse`](../../doc/models/connection-table-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2ConnectionTableRequest = { - id: 'id6', -}; - -try { - const { result, ...httpResponse } = await connectionController.restapiV2GetConnectionTables(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Connection Table Columns - -To get the details of columns in a table associated to a connection, use this endpoint. - -You can get the columns of any table available in the data platform for the connection id provided. - -```ts -async restapiV2GetConnectionTableColumns( - body: TspublicRestV2ConnectionTablecoloumnRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2ConnectionTablecoloumnRequest`](../../doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`ConnectionTableColumnsResponse`](../../doc/models/connection-table-columns-response.md) - -## Example Usage - -```ts -const contentType = null; -const bodyTable: ConnectionTableColumnsInput[] = []; - -const bodytable0: ConnectionTableColumnsInput = { - dbName: 'dbName8', - schemaName: 'schemaName4', - name: 'name0', -}; - -bodyTable[0] = bodytable0; - -const bodytable1: ConnectionTableColumnsInput = { - dbName: 'dbName9', - schemaName: 'schemaName5', - name: 'name1', -}; - -bodyTable[1] = bodytable1; - -const bodytable2: ConnectionTableColumnsInput = { - dbName: 'dbName0', - schemaName: 'schemaName6', - name: 'name2', -}; - -bodyTable[2] = bodytable2; - -const body: TspublicRestV2ConnectionTablecoloumnRequest = { - id: 'id6', - table: bodyTable, -}; - -try { - const { result, ...httpResponse } = await connectionController.restapiV2GetConnectionTableColumns(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/custom-actions.md b/Typescript/doc/controllers/custom-actions.md deleted file mode 100644 index 3af051197..000000000 --- a/Typescript/doc/controllers/custom-actions.md +++ /dev/null @@ -1,400 +0,0 @@ -# Custom Actions - -```ts -const customActionsController = new CustomActionsController(client); -``` - -## Class Name - -`CustomActionsController` - -## Methods - -* [Restapi V2 Get Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action) -* [Restapi V2 Search Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-search-custom-action) -* [Restapi V2 Get Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-get-custom-action-association) -* [Restapi V2 Create Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-create-custom-action) -* [Restapi V2 Update Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action) -* [Restapi V2 Delete Custom Action](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action) -* [Restapi V2 Update Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-update-custom-action-association) -* [Restapi V2 Delete Custom Action Association](../../doc/controllers/custom-actions.md#restapi-v2-delete-custom-action-association) - - -# Restapi V2 Get Custom Action - -To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint - -```ts -async restapiV2GetCustomAction( - id: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await customActionsController.restapiV2GetCustomAction(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Custom Action - -To search custom actions available on a ThoughtSpot instance, use this endpoint - -```ts -async restapiV2SearchCustomAction( - body: TspublicRestV2CustomactionSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionSearchRequest`](../../doc/models/tspublic-rest-v2-customaction-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2CustomactionSearchRequest = {}; - -try { - const { result, ...httpResponse } = await customActionsController.restapiV2SearchCustomAction(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Custom Action Association - -ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the details of the ThoughtSpot objects associated with a custom action, use this endpoint. - -```ts -async restapiV2GetCustomActionAssociation( - id: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await customActionsController.restapiV2GetCustomActionAssociation(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Create Custom Action - -To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, use this endpoint - -```ts -async restapiV2CreateCustomAction( - body: TspublicRestV2CustomactionCreateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionCreateRequest`](../../doc/models/tspublic-rest-v2-customaction-create-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2CustomactionCreateRequest = { - configuration: 'configuration0', -}; - -try { - const { result, ...httpResponse } = await customActionsController.restapiV2CreateCustomAction(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Update Custom Action - -To programmatically edit an existing custom action, use this endpoint - -```ts -async restapiV2UpdateCustomAction( - body: TspublicRestV2CustomactionUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2CustomactionUpdateRequest = { - id: 'id6', - configuration: 'configuration0', -}; - -try { - const { result, ...httpResponse } = await customActionsController.restapiV2UpdateCustomAction(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete Custom Action - -To programmatically delete a custom action, use this endpoint - -```ts -async restapiV2DeleteCustomAction( - id: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await customActionsController.restapiV2DeleteCustomAction(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Update Custom Action Association - -To programmatically associate a custom action to a ThoughtSpot object, use this endpoint - -```ts -async restapiV2UpdateCustomActionAssociation( - body: TspublicRestV2CustomactionAssociationUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2CustomactionAssociationUpdateRequest`](../../doc/models/tspublic-rest-v2-customaction-association-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2CustomactionAssociationUpdateRequest = { - id: 'id6', - association: 'association6', -}; - -try { - const { result, ...httpResponse } = await customActionsController.restapiV2UpdateCustomActionAssociation(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete Custom Action Association - -To remove custom action associations to ThoughtSpot objects, use this endpoint - -```ts -async restapiV2DeleteCustomActionAssociation( - id: string, - association: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the custom action | -| `association` | `string` | Query, Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const id = 'id0'; -const association = 'association0'; -try { - const { result, ...httpResponse } = await customActionsController.restapiV2DeleteCustomActionAssociation(id, association); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/data.md b/Typescript/doc/controllers/data.md deleted file mode 100644 index 0caea5ff5..000000000 --- a/Typescript/doc/controllers/data.md +++ /dev/null @@ -1,256 +0,0 @@ -# Data - -```ts -const dataController = new DataController(client); -``` - -## Class Name - -`DataController` - -## Methods - -* [Restapi V2 Search Query Data](../../doc/controllers/data.md#restapi-v2-search-query-data) -* [Restapi V2 Liveboard Data](../../doc/controllers/data.md#restapi-v2-liveboard-data) -* [Restapi V2 Answer Data](../../doc/controllers/data.md#restapi-v2-answer-data) -* [Restapi V2 Answer Query Sql](../../doc/controllers/data.md#restapi-v2-answer-query-sql) -* [Restapi V2 Liveboard Query Sql](../../doc/controllers/data.md#restapi-v2-liveboard-query-sql) - - -# Restapi V2 Search Query Data - -To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint - -```ts -async restapiV2SearchQueryData( - body: TspublicRestV2DataSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataSearchRequest`](../../doc/models/tspublic-rest-v2-data-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2DataSearchRequest = { - queryString: 'queryString0', - dataObjectId: 'dataObjectId6', -}; - -try { - const { result, ...httpResponse } = await dataController.restapiV2SearchQueryData(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Liveboard Data - -To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use this endpoint - -```ts -async restapiV2LiveboardData( - body: TspublicRestV2DataLiveboardRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataLiveboardRequest`](../../doc/models/tspublic-rest-v2-data-liveboard-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2DataLiveboardRequest = {}; - -try { - const { result, ...httpResponse } = await dataController.restapiV2LiveboardData(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Answer Data - -To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint - -```ts -async restapiV2AnswerData( - body: TspublicRestV2DataAnswerRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DataAnswerRequest`](../../doc/models/tspublic-rest-v2-data-answer-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2DataAnswerRequest = { - id: 'id6', -}; - -try { - const { result, ...httpResponse } = await dataController.restapiV2AnswerData(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Answer Query Sql - -To retrieve the query SQL related to an Answer that is run on the data platform, you can use this endpoint - -```ts -async restapiV2AnswerQuerySql( - id: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the Answer | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`AnswerQueryResponse`](../../doc/models/answer-query-response.md) - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await dataController.restapiV2AnswerQuerySql(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Liveboard Query Sql - -To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, you can use this endpoint - -```ts -async restapiV2LiveboardQuerySql( - id: string, - vizId?: string[], - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the Answer | -| `vizId` | `string[] \| undefined` | Query, Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`LiveboardQueryResponse`](../../doc/models/liveboard-query-response.md) - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await dataController.restapiV2LiveboardQuerySql(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/database.md b/Typescript/doc/controllers/database.md deleted file mode 100644 index 5807201c2..000000000 --- a/Typescript/doc/controllers/database.md +++ /dev/null @@ -1,260 +0,0 @@ -# Database - -```ts -const databaseController = new DatabaseController(client); -``` - -## Class Name - -`DatabaseController` - -## Methods - -* [Restapi V2 Get Schemas](../../doc/controllers/database.md#restapi-v2-get-schemas) -* [Restapi V2 Get Tables](../../doc/controllers/database.md#restapi-v2-get-tables) -* [Restapi V2 Get Table Details](../../doc/controllers/database.md#restapi-v2-get-table-details) -* [Restapi V2 Create Table](../../doc/controllers/database.md#restapi-v2-create-table) -* [Restapi V2 Run Query](../../doc/controllers/database.md#restapi-v2-run-query) - - -# Restapi V2 Get Schemas - -To list all the schemas in a database in Falcon, use this endpoint. - -```ts -async restapiV2GetSchemas( - database: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`string[]` - -## Example Usage - -```ts -const database = 'database0'; -try { - const { result, ...httpResponse } = await databaseController.restapiV2GetSchemas(database); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Tables - -To list all the tables in a schema of a database in Falcon, use this endpoint. - -```ts -async restapiV2GetTables( - database: string, - schema: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | -| `schema` | `string` | Query, Required | Name of the schema in Falcon database | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`string[]` - -## Example Usage - -```ts -const database = 'database0'; -const schema = 'schema2'; -try { - const { result, ...httpResponse } = await databaseController.restapiV2GetTables(database, schema); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Table Details - -Note: This endpoint is applicable only for on-prem deployments. - -To provide details of a table in a schema of a database in Falcon, use this endpoint. - -```ts -async restapiV2GetTableDetails( - database: string, - table: string, - schema?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `database` | `string` | Query, Required | Name of the Falcon database | -| `table` | `string` | Query, Required | Name of the table in Falcon database | -| `schema` | `string \| undefined` | Query, Optional | Name of the schema in Falcon database | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const database = 'database0'; -const table = 'table2'; -try { - const { result, ...httpResponse } = await databaseController.restapiV2GetTableDetails(database, table); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Create Table - -To create a table in Falcon, use this endpoint. - -```ts -async restapiV2CreateTable( - body: TspublicRestV2DatabaseTableCreateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DatabaseTableCreateRequest`](../../doc/models/tspublic-rest-v2-database-table-create-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`CreateTableResponse`](../../doc/models/create-table-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2DatabaseTableCreateRequest = {}; - -try { - const { result, ...httpResponse } = await databaseController.restapiV2CreateTable(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Run Query - -To run a TQL statement in Falcon, use this endpoint. You can run only following type of statements - Table DDL alter and Table rows update and delete. - -```ts -async restapiV2RunQuery( - body: TspublicRestV2DatabaseTableRunqueryRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2DatabaseTableRunqueryRequest`](../../doc/models/tspublic-rest-v2-database-table-runquery-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown[]` - -## Example Usage - -```ts -const contentType = null; -const bodyStatement: string[] = ['statement6', 'statement7']; -const body: TspublicRestV2DatabaseTableRunqueryRequest = { - statement: bodyStatement, -}; - -try { - const { result, ...httpResponse } = await databaseController.restapiV2RunQuery(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/group.md b/Typescript/doc/controllers/group.md deleted file mode 100644 index e86e0408f..000000000 --- a/Typescript/doc/controllers/group.md +++ /dev/null @@ -1,579 +0,0 @@ -# Group - -```ts -const groupController = new GroupController(client); -``` - -## Class Name - -`GroupController` - -## Methods - -* [Restapi V2 Get Group](../../doc/controllers/group.md#restapi-v2-get-group) -* [Restapi V2 Create Group](../../doc/controllers/group.md#restapi-v2-create-group) -* [Restapi V2 Update Group](../../doc/controllers/group.md#restapi-v2-update-group) -* [Restapi V2 Delete Group](../../doc/controllers/group.md#restapi-v2-delete-group) -* [Restapi V2 Add Privileges to Group](../../doc/controllers/group.md#restapi-v2-add-privileges-to-group) -* [Restapi V2 Remove Privileges From Group](../../doc/controllers/group.md#restapi-v2-remove-privileges-from-group) -* [Restapi V2 Add Users to Group](../../doc/controllers/group.md#restapi-v2-add-users-to-group) -* [Restapi V2 Remove Users From Group](../../doc/controllers/group.md#restapi-v2-remove-users-from-group) -* [Restapi V2 Add Groups to Group](../../doc/controllers/group.md#restapi-v2-add-groups-to-group) -* [Restapi V2 Remove Groups From Group](../../doc/controllers/group.md#restapi-v2-remove-groups-from-group) -* [Restapi V2 Search Groups](../../doc/controllers/group.md#restapi-v2-search-groups) - - -# Restapi V2 Get Group - -To get the details of a specific group by name or id, use this endpoint. -At Least one value needed. When both are given id will be considered to fetch user information. - -```ts -async restapiV2GetGroup( - name?: string, - id?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Name of the group | -| `id` | `string \| undefined` | Query, Optional | The GUID of the group to query. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`GroupResponse`](../../doc/models/group-response.md) - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await groupController.restapiV2GetGroup(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Create Group - -To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using this API, you can create a group and assign privileges and users. For ease of user management and access control, ThoughtSpot administrators can create groups and assign privileges to these groups. The privileges determine the actions that the users belonging to a group are allowed to do. ThoughtSpot also has a default group called ALL_GROUP. When you create new group in ThoughtSpot, they are automatically added to ALL_GROUP. You cannot delete the ALL_GROUP or remove members from it. - -```ts -async restapiV2CreateGroup( - body: TspublicRestV2GroupCreateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupCreateRequest`](../../doc/models/tspublic-rest-v2-group-create-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`GroupResponse`](../../doc/models/group-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2GroupCreateRequest = { - name: 'name6', - displayName: 'displayName6', -}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2CreateGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Update Group - -You can use this endpoint to programmatically modify an existing user account. -To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```ts -async restapiV2UpdateGroup( - body: TspublicRestV2GroupUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupUpdateRequest`](../../doc/models/tspublic-rest-v2-group-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2GroupUpdateRequest = {}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2UpdateGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete Group - -To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one value needed. When both are given user id will be considered to fetch user information. - -```ts -async restapiV2DeleteGroup( - name?: string, - id?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Name of the group. | -| `id` | `string \| undefined` | Query, Optional | The GUID of the group | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await groupController.restapiV2DeleteGroup(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Add Privileges to Group - -To programmatically add privileges to an existing group, use API endpoint. -When you assign privileges to a group, all the users under to this group inherits the privileges assigned to that group. -At least one of id or name of group is required. When both are given user id will be considered. - -```ts -async restapiV2AddPrivilegesToGroup( - body: TspublicRestV2GroupAddprivilegeRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAddprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-addprivilege-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2GroupAddprivilegeRequest = {}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2AddPrivilegesToGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Remove Privileges From Group - -To programmatically remove privileges from a group, use API endpoint. The API removes only the privilege association. It does not delete the privilege or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```ts -async restapiV2RemovePrivilegesFromGroup( - body: TspublicRestV2GroupRemoveprivilegeRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemoveprivilegeRequest`](../../doc/models/tspublic-rest-v2-group-removeprivilege-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2GroupRemoveprivilegeRequest = {}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2RemovePrivilegesFromGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Add Users to Group - -To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When you assign users to a group, the users inherits the privileges assigned to that group. At least one of id or name of the group is required. When both are given user id will be considered. - -```ts -async restapiV2AddUsersToGroup( - body: TspublicRestV2GroupAdduserRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAdduserRequest`](../../doc/models/tspublic-rest-v2-group-adduser-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyUsers: UserNameAndIDInput[] = []; - -const bodyusers0: UserNameAndIDInput = {}; - -bodyUsers[0] = bodyusers0; - -const body: TspublicRestV2GroupAdduserRequest = { - users: bodyUsers, -}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2AddUsersToGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Remove Users From Group - -To programmatically remove users from a group, use API endpoint.The API removes only the user association. It does not delete the users or group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```ts -async restapiV2RemoveUsersFromGroup( - body: TspublicRestV2GroupRemoveuserRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemoveuserRequest`](../../doc/models/tspublic-rest-v2-group-removeuser-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyUsers: UserNameAndIDInput[] = []; - -const bodyusers0: UserNameAndIDInput = {}; - -bodyUsers[0] = bodyusers0; - -const body: TspublicRestV2GroupRemoveuserRequest = { - users: bodyUsers, -}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2RemoveUsersFromGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Add Groups to Group - -To programmatically add existing groups to a group, use API endpoint. When you assign groups to a group, the group inherits the privileges assigned to those groups. At least one of id or name of group is required. When both are given user id will be considered. - -```ts -async restapiV2AddGroupsToGroup( - body: TspublicRestV2GroupAddgroupRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupAddgroupRequest`](../../doc/models/tspublic-rest-v2-group-addgroup-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyGroups: GroupNameAndIDInput[] = []; - -const bodygroups0: GroupNameAndIDInput = {}; - -bodyGroups[0] = bodygroups0; - -const body: TspublicRestV2GroupAddgroupRequest = { - groups: bodyGroups, -}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2AddGroupsToGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Remove Groups From Group - -To programmatically remove groups from a group, use API endpoint.The API removes only the group association. It does not delete the group from the Thoughtspot system. At least one of id or name of group is required. When both are given user id will be considered. - -```ts -async restapiV2RemoveGroupsFromGroup( - body: TspublicRestV2GroupRemovegroupRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupRemovegroupRequest`](../../doc/models/tspublic-rest-v2-group-removegroup-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyGroups: GroupNameAndIDInput[] = []; - -const bodygroups0: GroupNameAndIDInput = {}; - -bodyGroups[0] = bodygroups0; - -const body: TspublicRestV2GroupRemovegroupRequest = { - groups: bodyGroups, -}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2RemoveGroupsFromGroup(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Groups - -To get the details of a specific group account or all groups in the ThoughtSpot system, use this end point. - -```ts -async restapiV2SearchGroups( - body: TspublicRestV2GroupSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2GroupSearchRequest`](../../doc/models/tspublic-rest-v2-group-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2GroupSearchRequest = {}; - -try { - const { result, ...httpResponse } = await groupController.restapiV2SearchGroups(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/logs.md b/Typescript/doc/controllers/logs.md deleted file mode 100644 index c0bf44759..000000000 --- a/Typescript/doc/controllers/logs.md +++ /dev/null @@ -1,67 +0,0 @@ -# Logs - -```ts -const logsController = new LogsController(client); -``` - -## Class Name - -`LogsController` - - -# Restapi V2 Get Log Events - -Note: This endpoint is applicable only for SAAS deployments. - -The ThoughtSpot log streaming service API allows you to programmatically get a security audit event log from the ThoughtSpot system. - -To use this API, make sure you have admin user privileges. - -ThoughtSpot cloud deployments allow you to collect security audit events and send them to your Security information and event management (SIEM) application in real-time. - -These events can help your security operations personnel to detect potential security threats or compromised user accounts in your organization. - -```ts -async restapiV2GetLogEvents( - topic: TopicEnum, - fromEpoch?: string, - toEpoch?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `topic` | [`TopicEnum`](../../doc/models/topic-enum.md) | Query, Required | Type of the log | -| `fromEpoch` | `string \| undefined` | Query, Optional | The EPOCH time in milliseconds to set the start time for streaming logs.

Example: To set the timestamp as June 1, 2021 8 am, specify 1622534400000. | -| `toEpoch` | `string \| undefined` | Query, Optional | The EPOCH time in milliseconds to set the end time for streaming logs.

Example: To set the timestamp as July 1, 2021, 8 am, specify 1625126400000. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`LogsResponse`](../../doc/models/logs-response.md) - -## Example Usage - -```ts -const topic = 'security_logs'; -try { - const { result, ...httpResponse } = await logsController.restapiV2GetLogEvents(topic); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/materialization.md b/Typescript/doc/controllers/materialization.md deleted file mode 100644 index 10b71a8cd..000000000 --- a/Typescript/doc/controllers/materialization.md +++ /dev/null @@ -1,59 +0,0 @@ -# Materialization - -```ts -const materializationController = new MaterializationController(client); -``` - -## Class Name - -`MaterializationController` - - -# Restapi V2 Refresh Materialized View - -Use this endpoint to refresh data in the materialized view by running the query associated with it - -```ts -async restapiV2RefreshMaterializedView( - body: TspublicRestV2MaterializationRefreshviewRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MaterializationRefreshviewRequest`](../../doc/models/tspublic-rest-v2-materialization-refreshview-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2MaterializationRefreshviewRequest = { - id: 'id6', -}; - -try { - const { result, ...httpResponse } = await materializationController.restapiV2RefreshMaterializedView(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/metadata.md b/Typescript/doc/controllers/metadata.md deleted file mode 100644 index 5103dcec0..000000000 --- a/Typescript/doc/controllers/metadata.md +++ /dev/null @@ -1,1091 +0,0 @@ -# Metadata - -```ts -const metadataController = new MetadataController(client); -``` - -## Class Name - -`MetadataController` - -## Methods - -* [Restapi V2 Get Tag](../../doc/controllers/metadata.md#restapi-v2-get-tag) -* [Restapi V2 Get Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-get-home-liveboard) -* [Restapi V2 Search Object Header](../../doc/controllers/metadata.md#restapi-v2-search-object-header) -* [Restapi V2 Get Object Visualization Header](../../doc/controllers/metadata.md#restapi-v2-get-object-visualization-header) -* [Restapi V2 Get Object Detail](../../doc/controllers/metadata.md#restapi-v2-get-object-detail) -* [Restapi V2 Get Object Header](../../doc/controllers/metadata.md#restapi-v2-get-object-header) -* [Restapi V2 Search Object Detail](../../doc/controllers/metadata.md#restapi-v2-search-object-detail) -* [Restapi V2 Create Tag](../../doc/controllers/metadata.md#restapi-v2-create-tag) -* [Restapi V2 Update Tag](../../doc/controllers/metadata.md#restapi-v2-update-tag) -* [Restapi V2 Delete Tag](../../doc/controllers/metadata.md#restapi-v2-delete-tag) -* [Restapi V2 Assign Tag](../../doc/controllers/metadata.md#restapi-v2-assign-tag) -* [Restapi V2 Unassign Tag](../../doc/controllers/metadata.md#restapi-v2-unassign-tag) -* [Restapi V2 Assign Favorite](../../doc/controllers/metadata.md#restapi-v2-assign-favorite) -* [Restapi V2 Unassign Favorite](../../doc/controllers/metadata.md#restapi-v2-unassign-favorite) -* [Restapi V2 Assign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-assign-home-liveboard) -* [Restapi V2 Unassign Home Liveboard](../../doc/controllers/metadata.md#restapi-v2-unassign-home-liveboard) -* [Restapi V2 Export Object TML](../../doc/controllers/metadata.md#restapi-v2-export-object-tml) -* [Restapi V2 Import Object TML](../../doc/controllers/metadata.md#restapi-v2-import-object-tml) -* [Restapi V2 Delete Object](../../doc/controllers/metadata.md#restapi-v2-delete-object) -* [Restapi V2 Get Object Dependency](../../doc/controllers/metadata.md#restapi-v2-get-object-dependency) - - -# Restapi V2 Get Tag - -To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```ts -async restapiV2GetTag( - name?: string, - id?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Name of the tag | -| `id` | `string \| undefined` | Query, Optional | The GUID of the tag | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`MetadataTagResponse`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await metadataController.restapiV2GetTag(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Home Liveboard - -To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```ts -async restapiV2GetHomeLiveboard( - userName?: string, - userId?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Query, Optional | Name of the tag | -| `userId` | `string \| undefined` | Query, Optional | The GUID of the tag | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`HomeLiveboardResponse`](../../doc/models/home-liveboard-response.md) - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await metadataController.restapiV2GetHomeLiveboard(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Object Header - -To get header details for metadata objects, use this endpoint. You can provide as input selective fields to get the data for. - -```ts -async restapiV2SearchObjectHeader( - body: TspublicRestV2MetadataHeaderSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHeaderSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-header-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2MetadataHeaderSearchRequest = { - type: 'USER', -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2SearchObjectHeader(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Object Visualization Header - -Use this endpoint to get header details of visualization charts for a given liveboard or answer. At least one of id or name of liveboard or answer is required. When both are given, then id will be considered. - -```ts -async restapiV2GetObjectVisualizationHeader( - id: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | The GUID of the liveboard or answer | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown[]` - -## Example Usage - -```ts -const id = 'id0'; -try { - const { result, ...httpResponse } = await metadataController.restapiV2GetObjectVisualizationHeader(id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Object Detail - -Use this endpoint to get full details of metadata objects - -```ts -async restapiV2GetObjectDetail( - type: Type4Enum, - id: string[], - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `string[]` | Query, Required | A JSON array of GUIDs of the objects. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const type = 'DATAOBJECT'; -const Id: string[] = ['id0']; -try { - const { result, ...httpResponse } = await metadataController.restapiV2GetObjectDetail(type, id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Object Header - -To get header detail of a metadata object, use this endpoint. You can provide as input selective fields to get the data for. - -```ts -async restapiV2GetObjectHeader( - type: Type5Enum, - id: string, - outputFields?: string[], - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type5Enum`](../../doc/models/type-5-enum.md) | Query, Required | Type of the metadata object being searched. | -| `id` | `string` | Query, Required | GUID of the metadata object | -| `outputFields` | `string[] \| undefined` | Query, Optional | Array of header field names that need to be included in the header response | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const type = 'COLUMN_ALL'; -const id = 'id0'; -try { - const { result, ...httpResponse } = await metadataController.restapiV2GetObjectHeader(type, id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Object Detail - -Use this endpoint to get full details of metadata objects - -```ts -async restapiV2SearchObjectDetail( - body: TspublicRestV2MetadataDetailSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataDetailSearchRequest`](../../doc/models/tspublic-rest-v2-metadata-detail-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const bodyId: string[] = ['id6', 'id7']; -const body: TspublicRestV2MetadataDetailSearchRequest = { - type: 'USER', - id: bodyId, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2SearchObjectDetail(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Create Tag - -To programmatically create tags, use this endpoint - -```ts -async restapiV2CreateTag( - body: TspublicRestV2MetadataTagCreateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagCreateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-create-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`MetadataTagResponse`](../../doc/models/metadata-tag-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2MetadataTagCreateRequest = { - name: 'name6', -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2CreateTag(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Update Tag - -To programmatically update tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```ts -async restapiV2UpdateTag( - body: TspublicRestV2MetadataTagUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagUpdateRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2MetadataTagUpdateRequest = {}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2UpdateTag(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete Tag - -To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```ts -async restapiV2DeleteTag( - name?: string, - id?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Name of the tag | -| `id` | `string \| undefined` | Query, Optional | The GUID of the tag | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await metadataController.restapiV2DeleteTag(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Assign Tag - -To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```ts -async restapiV2AssignTag( - body: TspublicRestV2MetadataTagAssignRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-assign-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTsObject: TsObjectInput[] = []; - -const bodytsObject0: TsObjectInput = { - id: 'id8', - type: 'DATAOBJECT', -}; - -bodyTsObject[0] = bodytsObject0; - -const bodytsObject1: TsObjectInput = { - id: 'id9', - type: 'CONNECTION', -}; - -bodyTsObject[1] = bodytsObject1; - -const bodytsObject2: TsObjectInput = { - id: 'id0', - type: 'ANSWER', -}; - -bodyTsObject[2] = bodytsObject2; - -const body: TspublicRestV2MetadataTagAssignRequest = { - tsObject: bodyTsObject, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2AssignTag(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Unassign Tag - -To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are given, then id will be considered. - -```ts -async restapiV2UnassignTag( - body: TspublicRestV2MetadataTagUnassignRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTagUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTsObject: TsObjectInput[] = []; - -const bodytsObject0: TsObjectInput = { - id: 'id8', - type: 'DATAOBJECT', -}; - -bodyTsObject[0] = bodytsObject0; - -const bodytsObject1: TsObjectInput = { - id: 'id9', - type: 'CONNECTION', -}; - -bodyTsObject[1] = bodytsObject1; - -const bodytsObject2: TsObjectInput = { - id: 'id0', - type: 'ANSWER', -}; - -bodyTsObject[2] = bodytsObject2; - -const body: TspublicRestV2MetadataTagUnassignRequest = { - tsObject: bodyTsObject, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2UnassignTag(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Assign Favorite - -To programmatically assign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```ts -async restapiV2AssignFavorite( - body: TspublicRestV2MetadataFavoriteAssignRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataFavoriteAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTsObject: TsObjectInput[] = []; - -const bodytsObject0: TsObjectInput = { - id: 'id8', - type: 'DATAOBJECT', -}; - -bodyTsObject[0] = bodytsObject0; - -const bodytsObject1: TsObjectInput = { - id: 'id9', - type: 'CONNECTION', -}; - -bodyTsObject[1] = bodytsObject1; - -const bodytsObject2: TsObjectInput = { - id: 'id0', - type: 'ANSWER', -}; - -bodyTsObject[2] = bodytsObject2; - -const body: TspublicRestV2MetadataFavoriteAssignRequest = { - tsObject: bodyTsObject, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2AssignFavorite(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Unassign Favorite - -To programmatically unassign objects to favorites for a given user account, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```ts -async restapiV2UnassignFavorite( - body: TspublicRestV2MetadataFavoriteUnassignRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataFavoriteUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyTsObject: TsObjectInput[] = []; - -const bodytsObject0: TsObjectInput = { - id: 'id8', - type: 'DATAOBJECT', -}; - -bodyTsObject[0] = bodytsObject0; - -const bodytsObject1: TsObjectInput = { - id: 'id9', - type: 'CONNECTION', -}; - -bodyTsObject[1] = bodytsObject1; - -const bodytsObject2: TsObjectInput = { - id: 'id0', - type: 'ANSWER', -}; - -bodyTsObject[2] = bodytsObject2; - -const body: TspublicRestV2MetadataFavoriteUnassignRequest = { - tsObject: bodyTsObject, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2UnassignFavorite(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Assign Home Liveboard - -To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```ts -async restapiV2AssignHomeLiveboard( - body: TspublicRestV2MetadataHomeliveboardAssignRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHomeliveboardAssignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2MetadataHomeliveboardAssignRequest = {}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2AssignHomeLiveboard(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Unassign Home Liveboard - -To unassign the home liveboard set for a user, use this endpoint. At least one of user id or username is required. When both are given, then id will be considered. - -```ts -async restapiV2UnassignHomeLiveboard( - body: TspublicRestV2MetadataHomeliveboardUnassignRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataHomeliveboardUnassignRequest`](../../doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2MetadataHomeliveboardUnassignRequest = {}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2UnassignHomeLiveboard(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Export Object TML - -To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```ts -async restapiV2ExportObjectTML( - body: TspublicRestV2MetadataTmlExportRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTmlExportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-export-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const bodyId: string[] = ['id6', 'id7']; -const body: TspublicRestV2MetadataTmlExportRequest = { - id: bodyId, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2ExportObjectTML(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Import Object TML - -To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - -```ts -async restapiV2ImportObjectTML( - body: TspublicRestV2MetadataTmlImportRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataTmlImportRequest`](../../doc/models/tspublic-rest-v2-metadata-tml-import-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const bodyObjectTML: string[] = ['objectTML5', 'objectTML6']; -const body: TspublicRestV2MetadataTmlImportRequest = { - objectTML: bodyObjectTML, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2ImportObjectTML(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete Object - -Use this endpoint to delete the metadata objects - -```ts -async restapiV2DeleteObject( - type: Type4Enum, - id: string[], - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type4Enum`](../../doc/models/type-4-enum.md) | Query, Required | Type of the metadata object being searched | -| `id` | `string[]` | Query, Required | A JSON array of GUIDs of the objects | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const type = 'DATAOBJECT'; -const Id: string[] = ['id0']; -try { - const { result, ...httpResponse } = await metadataController.restapiV2DeleteObject(type, id); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Object Dependency - -To query the details of dependent objects and associate objects as dependents, you can use this API. Dependency is defined as relation between referenced and referencing objects. A referencing object is said to have a dependency on a referenced object, if the referenced object cannot be deleted without first deleting the referencing object. For example, consider a worksheet 'W1' that has a derived logical column 'C1' that has a reference to a base logical column 'C2'. This can be shown diagramatically as: W1-->C1-->C2. W1 has a dependency on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion of C2 will be prevented by the relationship between W1's column C1 and C2. Similarly C1 is said to have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting C1 - -```ts -async restapiV2GetObjectDependency( - body: TspublicRestV2MetadataDependencyRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2MetadataDependencyRequest`](../../doc/models/tspublic-rest-v2-metadata-dependency-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const bodyId: string[] = ['id6', 'id7']; -const body: TspublicRestV2MetadataDependencyRequest = { - type: 'COLUMN', - id: bodyId, -}; - -try { - const { result, ...httpResponse } = await metadataController.restapiV2GetObjectDependency(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/org.md b/Typescript/doc/controllers/org.md deleted file mode 100644 index 4aca92865..000000000 --- a/Typescript/doc/controllers/org.md +++ /dev/null @@ -1,271 +0,0 @@ -# Org - -```ts -const orgController = new OrgController(client); -``` - -## Class Name - -`OrgController` - -## Methods - -* [Restapi V2 Get Org](../../doc/controllers/org.md#restapi-v2-get-org) -* [Restapi V2 Create Org](../../doc/controllers/org.md#restapi-v2-create-org) -* [Restapi V2 Update Org](../../doc/controllers/org.md#restapi-v2-update-org) -* [Restapi V2 Delete Org](../../doc/controllers/org.md#restapi-v2-delete-org) -* [Restapi V2 Search Orgs](../../doc/controllers/org.md#restapi-v2-search-orgs) - - -# Restapi V2 Get Org - -To get the details of a specific organization by name or id, use this endpoint. - -At least one value needed. When both are given,then id will be considered to fetch organization information. - -Requires Administration privilege for tenant. - -```ts -async restapiV2GetOrg( - name?: string, - id?: number, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Name of the organization. | -| `id` | `number \| undefined` | Query, Optional | The ID of the organization. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await orgController.restapiV2GetOrg(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Create Org - -To programmatically create an organization in the ThoughtSpot system, use this API endpoint. - -Requires Administration privilege for tenant. - -```ts -async restapiV2CreateOrg( - body: TspublicRestV2OrgCreateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgCreateRequest`](../../doc/models/tspublic-rest-v2-org-create-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2OrgCreateRequest = { - name: 'name6', -}; - -try { - const { result, ...httpResponse } = await orgController.restapiV2CreateOrg(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Update Org - -You can use this endpoint to programmatically modify an existing org. - -Provide name or id of the organization to update the properties. When both id and name are given, then id will be considered and name of the organization will be updated. - -Requires Administration privilege for tenant. - -```ts -async restapiV2UpdateOrg( - body: TspublicRestV2OrgUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgUpdateRequest`](../../doc/models/tspublic-rest-v2-org-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`OrgsResponse`](../../doc/models/orgs-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2OrgUpdateRequest = {}; - -try { - const { result, ...httpResponse } = await orgController.restapiV2UpdateOrg(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete Org - -To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. - -At least one value is needed. When both id and name are given, then id will be considered. - -Requires Administration privilege for tenant. - -```ts -async restapiV2DeleteOrg( - name?: string, - id?: number, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Name of the organization. | -| `id` | `number \| undefined` | Query, Optional | The ID of the organization. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await orgController.restapiV2DeleteOrg(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Orgs - -To get the details of a specific organization or all organizations in the ThoughtSpot system use this end point. - -If no input is provided, then all organizations are included in the response. - -Requires Administration privilege for tenant. - -```ts -async restapiV2SearchOrgs( - body: TspublicRestV2OrgSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2OrgSearchRequest`](../../doc/models/tspublic-rest-v2-org-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`OrgsResponse[]`](../../doc/models/orgs-response.md) - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2OrgSearchRequest = {}; - -try { - const { result, ...httpResponse } = await orgController.restapiV2SearchOrgs(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/report.md b/Typescript/doc/controllers/report.md deleted file mode 100644 index 05131cae4..000000000 --- a/Typescript/doc/controllers/report.md +++ /dev/null @@ -1,120 +0,0 @@ -# Report - -```ts -const reportController = new ReportController(client); -``` - -## Class Name - -`ReportController` - -## Methods - -* [Restapi V2 Answer Report](../../doc/controllers/report.md#restapi-v2-answer-report) -* [Restapi V2 Liveboard Report](../../doc/controllers/report.md#restapi-v2-liveboard-report) - - -# Restapi V2 Answer Report - -To programmatically download Answer data as a file, use this endpoint. - -The PDF will download data in the tabular format even if Answer is saved as chart. - -```ts -async restapiV2AnswerReport( - id: string, - type: Type16Enum, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the Answer to download. | -| `type` | [`Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const id = 'id0'; -const type = 'PDF'; -try { - const { result, ...httpResponse } = await reportController.restapiV2AnswerReport(id, type); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Liveboard Report - -To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, use this endpoint - -```ts -async restapiV2LiveboardReport( - type: Type16Enum, - id?: string, - vizId?: string[], - transientContent?: string, - runtimeFilter?: string, - runtimeSort?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type16Enum`](../../doc/models/type-16-enum.md) | Query, Required | Type of file to be generated. Valid values: CSV/XLSX/PDF/PNG. | -| `id` | `string \| undefined` | Query, Optional | GUID of the Liveboard to download.

This field is considered only when no input is provided for transientContent field. | -| `vizId` | `string[] \| undefined` | Query, Optional | JSON Array of GUIDs of the visualizations in the Liveboard to be included in the downloaded file.

For CSV, XLSX and PNG file download, visualization id is mandatory. CSV and XLSX is valid only for visualization of type table and PNG is valid for charts.

Only one value will be accepted for these formats. If multiple values are provided then first value in the array will be considered. | -| `transientContent` | `string \| undefined` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard. | -| `runtimeFilter` | `string \| undefined` | Query, Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . | -| `runtimeSort` | `string \| undefined` | Query, Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const type = 'PDF'; -try { - const { result, ...httpResponse } = await reportController.restapiV2LiveboardReport(type); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/security.md b/Typescript/doc/controllers/security.md deleted file mode 100644 index 1f6beee0b..000000000 --- a/Typescript/doc/controllers/security.md +++ /dev/null @@ -1,373 +0,0 @@ -# Security - -```ts -const securityController = new SecurityController(client); -``` - -## Class Name - -`SecurityController` - -## Methods - -* [Restapi V2 Get Permission on Object](../../doc/controllers/security.md#restapi-v2-get-permission-on-object) -* [Restapi V2 Get Permission for Principal](../../doc/controllers/security.md#restapi-v2-get-permission-for-principal) -* [Restapi V2 Share Object](../../doc/controllers/security.md#restapi-v2-share-object) -* [Restapi V2 Share Visualization](../../doc/controllers/security.md#restapi-v2-share-visualization) -* [Restapi V2 Search Permission on Objects](../../doc/controllers/security.md#restapi-v2-search-permission-on-objects) -* [Restapi V2 Search Permission for Principals](../../doc/controllers/security.md#restapi-v2-search-permission-for-principals) - - -# Restapi V2 Get Permission on Object - -To list the permissions for user and user groups on an object, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -```ts -async restapiV2GetPermissionOnObject( - id: string, - type: Type7Enum, - includeDependent?: boolean, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Query, Required | GUID of the metadata object for which the permission needs to be obtained. | -| `type` | [`Type7Enum`](../../doc/models/type-7-enum.md) | Query, Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | -| `includeDependent` | `boolean \| undefined` | Query, Optional | When this field is set to true, the API returns the permission details for the dependent objects for the the object included in the request | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`SecurityPermissionResponse`](../../doc/models/security-permission-response.md) - -## Example Usage - -```ts -const id = 'id0'; -const type = 'DATAOBJECT'; -try { - const { result, ...httpResponse } = await securityController.restapiV2GetPermissionOnObject(id, type); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Permission for Principal - -Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. - -Requires administration privilege - -```ts -async restapiV2GetPermissionForPrincipal( - id?: string, - name?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Query, Optional | GUID of the user or user group for which the object permission needs to be obtained | -| `name` | `string \| undefined` | Query, Optional | Name of the ser or user group for which the object permission needs to be obtained | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`PrincipalSearchResponse`](../../doc/models/principal-search-response.md) - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await securityController.restapiV2GetPermissionForPrincipal(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Share Object - -To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. - -When you share an object like a Liveboard or visualization, a notification with a live link is sent to the user. When the users access this object, they can view the last saved version of the object. - -```ts -async restapiV2ShareObject( - body: TspublicRestV2SecurityShareTsobjectRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityShareTsobjectRequest`](../../doc/models/tspublic-rest-v2-security-share-tsobject-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyId: string[] = ['id6', 'id7']; -const body: TspublicRestV2SecurityShareTsobjectRequest = { - type: 'DATAOBJECT', - id: bodyId, - permission: 'permission8', -}; - -try { - const { result, ...httpResponse } = await securityController.restapiV2ShareObject(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Share Visualization - -If you want to share a specific visualization from a Liveboard with another user or user group, then use this endpoint. - -Requires privilege to share the visualization - -```ts -async restapiV2ShareVisualization( - body: TspublicRestV2SecurityShareVisualizationRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityShareVisualizationRequest`](../../doc/models/tspublic-rest-v2-security-share-visualization-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyPrincipalId: string[] = ['principalId2', 'principalId3']; -const body: TspublicRestV2SecurityShareVisualizationRequest = { - id: 'id6', - vizId: 'vizId4', - principalId: bodyPrincipalId, -}; - -try { - const { result, ...httpResponse } = await securityController.restapiV2ShareVisualization(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Permission on Objects - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```ts -async restapiV2SearchPermissionOnObjects( - body: TspublicRestV2SecurityPermissionTsobjectSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityPermissionTsobjectSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`SecurityPermissionResponse[]`](../../doc/models/security-permission-response.md) - -## Example Usage - -```ts -const contentType = null; -const bodyTsObject: TsObjectSearchInput[] = []; - -const bodytsObject0Id: string[] = ['id8', 'id9']; -const bodytsObject0: TsObjectSearchInput = { - type: 'DATAOBJECT', - id: bodytsObject0Id, -}; - -bodyTsObject[0] = bodytsObject0; - -const bodytsObject1Id: string[] = ['id9', 'id0', 'id1']; -const bodytsObject1: TsObjectSearchInput = { - type: 'COLUMN', - id: bodytsObject1Id, -}; - -bodyTsObject[1] = bodytsObject1; - -const bodytsObject2Id: string[] = ['id0']; -const bodytsObject2: TsObjectSearchInput = { - type: 'LIVEBOARD', - id: bodytsObject2Id, -}; - -bodyTsObject[2] = bodytsObject2; - -const body: TspublicRestV2SecurityPermissionTsobjectSearchRequest = { - tsObject: bodyTsObject, -}; - -try { - const { result, ...httpResponse } = await securityController.restapiV2SearchPermissionOnObjects(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Permission for Principals - -To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. - -You can either provide list of object ids or type of objects to list the permissions for. One of these inputs is mandatory. If both are provided then only object ids will be considred. - -You can optionally provide users or user groups for which the persmission needs to be displayed. - -You can optionally see the permission on the dependent objects as well by enabling includeDependent field. - -Requires administration privilege - -```ts -async restapiV2SearchPermissionForPrincipals( - body: TspublicRestV2SecurityPermissionPrincipalSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2SecurityPermissionPrincipalSearchRequest`](../../doc/models/tspublic-rest-v2-security-permission-principal-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`PrincipalSearchResponse[]`](../../doc/models/principal-search-response.md) - -## Example Usage - -```ts -const contentType = null; -const bodyPrincipal: UserNameAndIDInput[] = []; - -const bodyprincipal0: UserNameAndIDInput = {}; - -bodyPrincipal[0] = bodyprincipal0; - -const body: TspublicRestV2SecurityPermissionPrincipalSearchRequest = { - principal: bodyPrincipal, -}; - -try { - const { result, ...httpResponse } = await securityController.restapiV2SearchPermissionForPrincipals(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/session.md b/Typescript/doc/controllers/session.md deleted file mode 100644 index 7e1d28383..000000000 --- a/Typescript/doc/controllers/session.md +++ /dev/null @@ -1,140 +0,0 @@ -# Session - -```ts -const sessionController = new SessionController(client); -``` - -## Class Name - -`SessionController` - -## Methods - -* [Restapi V2 Login](../../doc/controllers/session.md#restapi-v2-login) -* [Restapi V2 Get Token](../../doc/controllers/session.md#restapi-v2-get-token) - - -# Restapi V2 Login - -You can programmatically create login session for a user in ThoughtSpot using this endpoint. - -You can create session by either providing userName and password as inputs in this request body or by including "Authorization" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. - -userName and password input is given precedence over "Authorization" header, when both are included in the request. - -```ts -async restapiV2Login( - userName?: string, - password?: string, - rememberMe?: boolean, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Query, Optional | Username of the user account | -| `password` | `string \| undefined` | Query, Optional | The password of the user account | -| `rememberMe` | `boolean \| undefined` | Query, Optional | A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`SessionLoginResponse`](../../doc/models/session-login-response.md) - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await sessionController.restapiV2Login(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Get Token - -To programmatically create session token for a user in ThoughtSpot, use this endpoint. - -You can generate the token for a user by providing password or secret key from the cluster. - -You need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. - -1. Click the Develop tab. - -2. Under Customizations, click Settings. - -3. To enable trusted authentication, turn on the toggle. - -4. A secret_key for trusted authentication is generated. - -5. Click the clipboard icon to copy the token. - -Password is given precedence over secretKey input, when both are included in the request. - -```ts -async restapiV2GetToken( - userName: string, - password?: string, - secretKey?: string, - accessLevel?: AccessLevelEnum, - tsObjectId?: string, - tokenExpiryDuration?: string, - orgId?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string` | Query, Required | Username of the user account | -| `password` | `string \| undefined` | Query, Optional | The password of the user account | -| `secretKey` | `string \| undefined` | Query, Optional | The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication. | -| `accessLevel` | [`AccessLevelEnum \| undefined`](../../doc/models/access-level-enum.md) | Query, Optional | User access privilege.

FULL - Creates a session with full access.

REPORT_BOOK_VIEW - Allow view access to the specified visualizations. | -| `tsObjectId` | `string \| undefined` | Query, Optional | GUID of the ThoughtSpot object. If you have set the accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or visualization object. | -| `tokenExpiryDuration` | `string \| undefined` | Query, Optional | Duration in seconds after which the token expires | -| `orgId` | `string \| undefined` | Query, Optional | Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`SessionLoginResponse`](../../doc/models/session-login-response.md) - -## Example Usage - -```ts -const userName = 'userName2'; -try { - const { result, ...httpResponse } = await sessionController.restapiV2GetToken(userName); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/controllers/user.md b/Typescript/doc/controllers/user.md deleted file mode 100644 index 345695af9..000000000 --- a/Typescript/doc/controllers/user.md +++ /dev/null @@ -1,506 +0,0 @@ -# User - -```ts -const userController = new UserController(client); -``` - -## Class Name - -`UserController` - -## Methods - -* [Restapi V2 Get User](../../doc/controllers/user.md#restapi-v2-get-user) -* [Restapi V2 Create User](../../doc/controllers/user.md#restapi-v2-create-user) -* [Restapi V2 Update User](../../doc/controllers/user.md#restapi-v2-update-user) -* [Restapi V2 Delete User](../../doc/controllers/user.md#restapi-v2-delete-user) -* [Restapi V2 Add User to Groups](../../doc/controllers/user.md#restapi-v2-add-user-to-groups) -* [Restapi V2 Remove User From Groups](../../doc/controllers/user.md#restapi-v2-remove-user-from-groups) -* [Restapi V2 Search Users](../../doc/controllers/user.md#restapi-v2-search-users) -* [Restapi V2 Change Password of User](../../doc/controllers/user.md#restapi-v2-change-password-of-user) -* [Restapi V2 Add User to Orgs](../../doc/controllers/user.md#restapi-v2-add-user-to-orgs) - - -# Restapi V2 Get User - -To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given, user id will be considered to fetch user information - -```ts -async restapiV2GetUser( - name?: string, - id?: string, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Username of the user that you want to query. | -| `id` | `string \| undefined` | Query, Optional | The GUID of the user account to query | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`UserResponse`](../../doc/models/user-response.md) - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await userController.restapiV2GetUser(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Create User - -To programmatically create a user account in the ThoughtSpot system use this API endpoint. Using this API, you can create a user and assign groups. -To create a user, you require admin user privileges. -All users created in the ThoughtSpot system are added to ALL_GROUP - -```ts -async restapiV2CreateUser( - name: string, - displayName: string, - password: string, - visibility?: VisibilityEnum, - mail?: string, - orgIds?: number[], - state?: StateEnum, - notifyOnShare?: boolean, - showWalkMe?: boolean, - analystOnboardingComplete?: boolean, - type?: Type8Enum, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Query, Required | Name of the user. The username string must be unique. | -| `displayName` | `string` | Query, Required | A unique display name string for the user account, usually their first and last name | -| `password` | `string` | Query, Required | Password for the user account. | -| `visibility` | [`VisibilityEnum \| undefined`](../../doc/models/visibility-enum.md) | Query, Optional | Visibility of the user. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and this allows them to share objects | -| `mail` | `string \| undefined` | Query, Optional | Email of the user account | -| `orgIds` | `number[] \| undefined` | Query, Optional | Array of org identifiers. If no value is provided then user will be created in the organization associated with the login session. | -| `state` | [`StateEnum \| undefined`](../../doc/models/state-enum.md) | Query, Optional | Status of user account. acitve or inactive. | -| `notifyOnShare` | `boolean \| undefined` | Query, Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | -| `showWalkMe` | `boolean \| undefined` | Query, Optional | The user preference for revisiting the onboarding experience. | -| `analystOnboardingComplete` | `boolean \| undefined` | Query, Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | -| `type` | [`Type8Enum \| undefined`](../../doc/models/type-8-enum.md) | Query, Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -[`UserResponse`](../../doc/models/user-response.md) - -## Example Usage - -```ts -const name = 'name0'; -const displayName = 'displayName2'; -const password = 'password4'; -try { - const { result, ...httpResponse } = await userController.restapiV2CreateUser(name, displayName, password); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Update User - -You can use this endpoint to programmatically modify an existing user account. To modify a user, you require admin user privileges. -At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated - -```ts -async restapiV2UpdateUser( - body: TspublicRestV2UserUpdateRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserUpdateRequest`](../../doc/models/tspublic-rest-v2-user-update-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2UserUpdateRequest = {}; - -try { - const { result, ...httpResponse } = await userController.restapiV2UpdateUser(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Delete User - -To remove a user from the ThoughtSpot system, use this endpoint. -At Least one value needed. When both are given user id will be considered to delete user. - -```ts -async restapiV2DeleteUser( - name?: string, - id?: string, - orgId?: number, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Query, Optional | Username of the user that you want to query. | -| `id` | `string \| undefined` | Query, Optional | The GUID of the user account to query | -| `orgId` | `number \| undefined` | Query, Optional | Unique identifier of the organization from which the user would be deleted. If no value is provided then user will be deleted from the organization associated with the login session. | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -try { - const { result, ...httpResponse } = await userController.restapiV2DeleteUser(); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Add User to Groups - -To programmatically add groups to an existing ThoughtSpot user use this endpoint. -When you assign groups to a user, the user inherits the privileges assigned to those groups. -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```ts -async restapiV2AddUserToGroups( - body: TspublicRestV2UserAddgroupRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserAddgroupRequest`](../../doc/models/tspublic-rest-v2-user-addgroup-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyGroups: GroupNameAndIDInput[] = []; - -const bodygroups0: GroupNameAndIDInput = {}; - -bodyGroups[0] = bodygroups0; - -const body: TspublicRestV2UserAddgroupRequest = { - groups: bodyGroups, -}; - -try { - const { result, ...httpResponse } = await userController.restapiV2AddUserToGroups(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Remove User From Groups - -To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. -The API removes only the user association. It does not delete the user or group from the Thoughtspot system -At least one of User Id or username is mandatory. When both are given, then user id will be considered. - -```ts -async restapiV2RemoveUserFromGroups( - body: TspublicRestV2UserRemovegroupRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserRemovegroupRequest`](../../doc/models/tspublic-rest-v2-user-removegroup-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyGroups: GroupNameAndIDInput[] = []; - -const bodygroups0: GroupNameAndIDInput = {}; - -bodyGroups[0] = bodygroups0; - -const body: TspublicRestV2UserRemovegroupRequest = { - groups: bodyGroups, -}; - -try { - const { result, ...httpResponse } = await userController.restapiV2RemoveUserFromGroups(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Search Users - -To get the details of a specific user account or all users in the ThoughtSpot system use this end point. - -```ts -async restapiV2SearchUsers( - body: TspublicRestV2UserSearchRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserSearchRequest`](../../doc/models/tspublic-rest-v2-user-search-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`unknown` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2UserSearchRequest = {}; - -try { - const { result, ...httpResponse } = await userController.restapiV2SearchUsers(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Change Password of User - -To change the password of a ThoughtSpot user account, use this endpoint. - -At least one of id or name of user is required. When both are given user id will be considered. - -```ts -async restapiV2ChangePasswordOfUser( - body: TspublicRestV2UserChangepasswordRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserChangepasswordRequest`](../../doc/models/tspublic-rest-v2-user-changepassword-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const body: TspublicRestV2UserChangepasswordRequest = { - currentPassword: 'currentPassword0', - newPassword: 'newPassword0', -}; - -try { - const { result, ...httpResponse } = await userController.restapiV2ChangePasswordOfUser(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - - -# Restapi V2 Add User to Orgs - -To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. - -At least one of id or name of the organization is required. When both are given, then organization id will be considered. - -Requires Administration access for the organization to which users need to be added. - -```ts -async restapiV2AddUserToOrgs( - body: TspublicRestV2UserAddorgRequest, - requestOptions?: RequestOptions -): Promise> -``` - -## Parameters - -| Parameter | Type | Tags | Description | -| --- | --- | --- | --- | -| `body` | [`TspublicRestV2UserAddorgRequest`](../../doc/models/tspublic-rest-v2-user-addorg-request.md) | Body, Required | - | -| `requestOptions` | `RequestOptions \| undefined` | Optional | Pass additional request options. | - -## Response Type - -`boolean` - -## Example Usage - -```ts -const contentType = null; -const bodyUsers: UserNameAndIDInput[] = []; - -const bodyusers0: UserNameAndIDInput = {}; - -bodyUsers[0] = bodyusers0; - -const body: TspublicRestV2UserAddorgRequest = { - users: bodyUsers, -}; - -try { - const { result, ...httpResponse } = await userController.restapiV2AddUserToOrgs(body); - // Get more response info... - // const { statusCode, headers } = httpResponse; -} catch(error) { - if (error instanceof ApiError) { - const errors = error.result; - // const { statusCode, headers } = error; - } -} -``` - -## Errors - -| HTTP Status Code | Error Description | Exception Class | -| --- | --- | --- | -| 500 | Operation failed | [`ErrorResponseError`](../../doc/models/error-response-error.md) | - diff --git a/Typescript/doc/models/access-enum.md b/Typescript/doc/models/access-enum.md deleted file mode 100644 index 2e4bce4fe..000000000 --- a/Typescript/doc/models/access-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Access Enum - -Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. - -## Enumeration - -`AccessEnum` - -## Fields - -| Name | -| --- | -| `rEADONLY` | -| `mODIFY` | - diff --git a/Typescript/doc/models/access-level-enum.md b/Typescript/doc/models/access-level-enum.md deleted file mode 100644 index 00d08d56c..000000000 --- a/Typescript/doc/models/access-level-enum.md +++ /dev/null @@ -1,14 +0,0 @@ - -# Access Level Enum - -## Enumeration - -`AccessLevelEnum` - -## Fields - -| Name | -| --- | -| `fULL` | -| `rEPORTBOOKVIEW` | - diff --git a/Typescript/doc/models/access-level-input.md b/Typescript/doc/models/access-level-input.md deleted file mode 100644 index f8704908e..000000000 --- a/Typescript/doc/models/access-level-input.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Access Level Input - -## Structure - -`AccessLevelInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Username or name of the user group | -| `id` | `string \| undefined` | Optional | GUID of the user or user group | -| `type` | [`Type1Enum \| undefined`](../../doc/models/type-1-enum.md) | Optional | Type of access detail provided | -| `access` | [`AccessEnum \| undefined`](../../doc/models/access-enum.md) | Optional | Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "type": null, - "access": null -} -``` - diff --git a/Typescript/doc/models/add-table-input.md b/Typescript/doc/models/add-table-input.md deleted file mode 100644 index 1371e2004..000000000 --- a/Typescript/doc/models/add-table-input.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Add Table Input - -## Structure - -`AddTableInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the table | -| `dbName` | `string` | Required | Name of the database in the data platform | -| `schemaName` | `string` | Required | Name of the schema in the database | -| `columns` | [`ColumnsInput[]`](../../doc/models/columns-input.md) | Required | A JSON array of column details | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dbName": "dbName8", - "schemaName": "schemaName4", - "columns": [ - { - "name": "name0", - "dataType": "dataType2" - } - ] -} -``` - diff --git a/Typescript/doc/models/adminsync-principal-response.md b/Typescript/doc/models/adminsync-principal-response.md deleted file mode 100644 index 43caadbdd..000000000 --- a/Typescript/doc/models/adminsync-principal-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Adminsync Principal Response - -## Structure - -`AdminsyncPrincipalResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `usersAdded` | `string[] \| undefined` | Optional | Username of list of users added | -| `usersDeleted` | `string[] \| undefined` | Optional | Username of list of users deleted | -| `usersUpdated` | `string[] \| undefined` | Optional | Username of list of users updated | -| `groupsAdded` | `string[] \| undefined` | Optional | Group name of list of groups added | -| `groupsDeleted` | `string[] \| undefined` | Optional | Group name of list of groups deleted | -| `groupsUpdated` | `string[] \| undefined` | Optional | Group name of list of groups updated | - -## Example (as JSON) - -```json -{ - "usersAdded": null, - "usersDeleted": null, - "usersUpdated": null, - "groupsAdded": null, - "groupsDeleted": null, - "groupsUpdated": null -} -``` - diff --git a/Typescript/doc/models/answer-query-response.md b/Typescript/doc/models/answer-query-response.md deleted file mode 100644 index d82db6e95..000000000 --- a/Typescript/doc/models/answer-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Answer Query Response - -## Structure - -`AnswerQueryResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | The name of the saved Answer | -| `id` | `string \| undefined` | Optional | The GUID of the saved Answer | -| `querySql` | `string \| undefined` | Optional | SQL query associated with the saved Answer | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/Typescript/doc/models/client-state.md b/Typescript/doc/models/client-state.md deleted file mode 100644 index 8ef36d946..000000000 --- a/Typescript/doc/models/client-state.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Client State - -## Structure - -`ClientState` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `color` | `string \| undefined` | Optional | Color assigned to the tag | - -## Example (as JSON) - -```json -{ - "color": null -} -``` - diff --git a/Typescript/doc/models/columns-input.md b/Typescript/doc/models/columns-input.md deleted file mode 100644 index 0d5ad378e..000000000 --- a/Typescript/doc/models/columns-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Columns Input - -## Structure - -`ColumnsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the column | -| `dataType` | `string` | Required | Datatype of the column | - -## Example (as JSON) - -```json -{ - "name": "name0", - "dataType": "dataType2" -} -``` - diff --git a/Typescript/doc/models/connection-column.md b/Typescript/doc/models/connection-column.md deleted file mode 100644 index 34c8dbd7d..000000000 --- a/Typescript/doc/models/connection-column.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Column - -## Structure - -`ConnectionColumn` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the table | -| `type` | `string \| undefined` | Optional | Type of the Table | -| `column` | [`TableColumns[] \| undefined`](../../doc/models/table-columns.md) | Optional | List of columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "column": null -} -``` - diff --git a/Typescript/doc/models/connection-columns-shema.md b/Typescript/doc/models/connection-columns-shema.md deleted file mode 100644 index 77147c5eb..000000000 --- a/Typescript/doc/models/connection-columns-shema.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Connection Columns Shema - -## Structure - -`ConnectionColumnsShema` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the table | -| `dbName` | `string \| undefined` | Optional | Name of the database | -| `schemaName` | `string \| undefined` | Optional | Name of the schema | -| `columns` | [`TableColumns[] \| undefined`](../../doc/models/table-columns.md) | Optional | List of columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "dbName": null, - "schemaName": null, - "columns": null -} -``` - diff --git a/Typescript/doc/models/connection-database-type.md b/Typescript/doc/models/connection-database-type.md deleted file mode 100644 index 2a7c14bbd..000000000 --- a/Typescript/doc/models/connection-database-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Database Type - -## Structure - -`ConnectionDatabaseType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the database | -| `schema` | [`ConnectionTableSchema[] \| undefined`](../../doc/models/connection-table-schema.md) | Optional | List of schemas | - -## Example (as JSON) - -```json -{ - "name": null, - "schema": null -} -``` - diff --git a/Typescript/doc/models/connection-response.md b/Typescript/doc/models/connection-response.md deleted file mode 100644 index f9f3065c1..000000000 --- a/Typescript/doc/models/connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Connection Response - -## Structure - -`ConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the connection | -| `description` | `string \| undefined` | Optional | Description associated with the connection | -| `type` | `string \| undefined` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | -| `id` | `string \| undefined` | Optional | GUID of the connection | -| `scheduled` | `boolean \| undefined` | Optional | Indicates if the data sync is scheduled for this connection | -| `connectionType` | `string \| undefined` | Optional | - | -| `configuration` | `string \| undefined` | Optional | Configuration properties of the connection | -| `isExternal` | `boolean \| undefined` | Optional | - | -| `isDeprecated` | `boolean \| undefined` | Optional | Indicates if the connection is deprecated | -| `isDeleted` | `boolean \| undefined` | Optional | Indicates if the connection is deleted | -| `isHidden` | `boolean \| undefined` | Optional | Indicates if the connection is hideen | -| `complete` | `boolean \| undefined` | Optional | Indicates if the all the properties of connection is provided | -| `indexVersion` | `number \| undefined` | Optional | - | -| `generationNum` | `number \| undefined` | Optional | - | -| `created` | `string \| undefined` | Optional | Date and time when the connection was created | -| `modified` | `string \| undefined` | Optional | Date and time of last modification of the connection | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modifiedBy` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `tags` | `string[] \| undefined` | Optional | List of tags assigned to the connection | -| `tables` | [`TableList[] \| undefined`](../../doc/models/table-list.md) | Optional | List of tables linked to this connection | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/Typescript/doc/models/connection-table-columns-input.md b/Typescript/doc/models/connection-table-columns-input.md deleted file mode 100644 index 0a060e939..000000000 --- a/Typescript/doc/models/connection-table-columns-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Connection Table Columns Input - -## Structure - -`ConnectionTableColumnsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `dbName` | `string` | Required | Name of the database | -| `schemaName` | `string` | Required | Name of the schema | -| `name` | `string` | Required | Name of the table | - -## Example (as JSON) - -```json -{ - "dbName": "dbName8", - "schemaName": "schemaName4", - "name": "name0" -} -``` - diff --git a/Typescript/doc/models/connection-table-columns-response.md b/Typescript/doc/models/connection-table-columns-response.md deleted file mode 100644 index c4c44e423..000000000 --- a/Typescript/doc/models/connection-table-columns-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Columns Response - -## Structure - -`ConnectionTableColumnsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | Connection id | -| `table` | [`ConnectionColumnsShema[] \| undefined`](../../doc/models/connection-columns-shema.md) | Optional | List of table details | - -## Example (as JSON) - -```json -{ - "id": null, - "table": null -} -``` - diff --git a/Typescript/doc/models/connection-table-response.md b/Typescript/doc/models/connection-table-response.md deleted file mode 100644 index 1d8e6382a..000000000 --- a/Typescript/doc/models/connection-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Response - -## Structure - -`ConnectionTableResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | Connection id | -| `database` | [`ConnectionDatabaseType[] \| undefined`](../../doc/models/connection-database-type.md) | Optional | List of databases | - -## Example (as JSON) - -```json -{ - "id": null, - "database": null -} -``` - diff --git a/Typescript/doc/models/connection-table-schema.md b/Typescript/doc/models/connection-table-schema.md deleted file mode 100644 index 3e34ff435..000000000 --- a/Typescript/doc/models/connection-table-schema.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Connection Table Schema - -## Structure - -`ConnectionTableSchema` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the schema | -| `table` | [`ConnectionColumn[] \| undefined`](../../doc/models/connection-column.md) | Optional | List of table details | - -## Example (as JSON) - -```json -{ - "name": null, - "table": null -} -``` - diff --git a/Typescript/doc/models/create-connection-response.md b/Typescript/doc/models/create-connection-response.md deleted file mode 100644 index c92f3dcc9..000000000 --- a/Typescript/doc/models/create-connection-response.md +++ /dev/null @@ -1,61 +0,0 @@ - -# Create Connection Response - -## Structure - -`CreateConnectionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the connection | -| `description` | `string \| undefined` | Optional | Description associated with the connection | -| `type` | `string \| undefined` | Optional | Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. | -| `id` | `string \| undefined` | Optional | GUID of the connection | -| `scheduled` | `boolean \| undefined` | Optional | Indicates if the data sync is scheduled for this connection | -| `connectionType` | `string \| undefined` | Optional | - | -| `configuration` | `string \| undefined` | Optional | Configuration properties of the connection | -| `isExternal` | `boolean \| undefined` | Optional | - | -| `isDeprecated` | `boolean \| undefined` | Optional | Indicates if the connection is deprecated | -| `isDeleted` | `boolean \| undefined` | Optional | Indicates if the connection is deleted | -| `isHidden` | `boolean \| undefined` | Optional | Indicates if the connection is hideen | -| `complete` | `boolean \| undefined` | Optional | Indicates if the all the properties of connection is provided | -| `indexVersion` | `number \| undefined` | Optional | - | -| `generationNum` | `number \| undefined` | Optional | - | -| `created` | `string \| undefined` | Optional | Date and time when user account was created | -| `modified` | `string \| undefined` | Optional | Date and time of last modification of user account | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modifiedBy` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `tags` | `string[] \| undefined` | Optional | List of tags assigned to the connection | -| `tables` | `string[] \| undefined` | Optional | List of tables linked to this connection and details of the columns in the table | - -## Example (as JSON) - -```json -{ - "name": null, - "description": null, - "type": null, - "id": null, - "scheduled": null, - "connectionType": null, - "configuration": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "complete": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null, - "tables": null -} -``` - diff --git a/Typescript/doc/models/create-table-response.md b/Typescript/doc/models/create-table-response.md deleted file mode 100644 index e26816e0a..000000000 --- a/Typescript/doc/models/create-table-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Create Table Response - -## Structure - -`CreateTableResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `logicalTableHeader` | [`LogicalTableHeader \| undefined`](../../doc/models/logical-table-header.md) | Optional | - | -| `physicalTableId` | `string \| undefined` | Optional | - | - -## Example (as JSON) - -```json -{ - "logicalTableHeader": null, - "physicalTableId": null -} -``` - diff --git a/Typescript/doc/models/dependent-permission.md b/Typescript/doc/models/dependent-permission.md deleted file mode 100644 index 64f741a3c..000000000 --- a/Typescript/doc/models/dependent-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Dependent Permission - -## Structure - -`DependentPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | GUID of the object | -| `name` | `string \| undefined` | Optional | Name of the object | -| `type` | `string \| undefined` | Optional | Indicates the type of the object | -| `permission` | `string \| undefined` | Optional | Indicates the permission which user or user group has on the object | -| `sharedPermission` | `string \| undefined` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | -| `groupPermission` | [`GroupPermission[] \| undefined`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Typescript/doc/models/error-response-error.md b/Typescript/doc/models/error-response-error.md deleted file mode 100644 index 04dfd4402..000000000 --- a/Typescript/doc/models/error-response-error.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Error Response Error - -## Structure - -`ErrorResponseError` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `error` | `unknown \| undefined` | Optional | - | - -## Example (as JSON) - -```json -{ - "error": null -} -``` - diff --git a/Typescript/doc/models/format-type-3-enum.md b/Typescript/doc/models/format-type-3-enum.md deleted file mode 100644 index c2872a726..000000000 --- a/Typescript/doc/models/format-type-3-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Format Type 3 Enum - -The format in which to export the objects - -## Enumeration - -`FormatType3Enum` - -## Fields - -| Name | -| --- | -| `yAML` | -| `jSON` | - diff --git a/Typescript/doc/models/format-type-enum.md b/Typescript/doc/models/format-type-enum.md deleted file mode 100644 index 4b606651c..000000000 --- a/Typescript/doc/models/format-type-enum.md +++ /dev/null @@ -1,20 +0,0 @@ - -# Format Type Enum - -The format of the data in the response. - -FULL: The response comes in "column":"value" format. - -COMPACT: The response includes only the value of the columns. - -## Enumeration - -`FormatTypeEnum` - -## Fields - -| Name | -| --- | -| `cOMPACT` | -| `fULL` | - diff --git a/Typescript/doc/models/from-user-name-and-id-input.md b/Typescript/doc/models/from-user-name-and-id-input.md deleted file mode 100644 index 49285f0c1..000000000 --- a/Typescript/doc/models/from-user-name-and-id-input.md +++ /dev/null @@ -1,29 +0,0 @@ - -# From User Name and ID Input - -A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. - -If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. - -Provide either name or id as input. When both are given user id will be considered. - -## Structure - -`FromUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Username of the user | -| `id` | `string \| undefined` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/group-name-and-id-input.md b/Typescript/doc/models/group-name-and-id-input.md deleted file mode 100644 index 48b4ecf15..000000000 --- a/Typescript/doc/models/group-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID Input - -## Structure - -`GroupNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | GUID of the group | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/group-name-and-id.md b/Typescript/doc/models/group-name-and-id.md deleted file mode 100644 index 932e6bcda..000000000 --- a/Typescript/doc/models/group-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Group Name and ID - -## Structure - -`GroupNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | GUID of the group | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/group-permission.md b/Typescript/doc/models/group-permission.md deleted file mode 100644 index b2d79e301..000000000 --- a/Typescript/doc/models/group-permission.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Group Permission - -## Structure - -`GroupPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | GUID of the user group | -| `name` | `string \| undefined` | Optional | Name of the user group | -| `permission` | `string \| undefined` | Optional | Indicates the permission which user group has on the object | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "permission": null -} -``` - diff --git a/Typescript/doc/models/group-response.md b/Typescript/doc/models/group-response.md deleted file mode 100644 index 943f05343..000000000 --- a/Typescript/doc/models/group-response.md +++ /dev/null @@ -1,79 +0,0 @@ - -# Group Response - -## Structure - -`GroupResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `displayName` | `string \| undefined` | Optional | A unique display name string for the user group | -| `id` | `string \| undefined` | Optional | GUID of the group | -| `visibility` | `string \| undefined` | Optional | Visibility of the group | -| `description` | `string \| undefined` | Optional | Description of the group | -| `privileges` | `string[] \| undefined` | Optional | Privileges assigned to the group | -| `orgs` | [`OrgType[] \| undefined`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | -| `groups` | [`GroupNameAndID[] \| undefined`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which is added | -| `users` | [`UserNameAndID[] \| undefined`](../../doc/models/user-name-and-id.md) | Optional | User Group Information by Id or Name. | -| `assignedLiveboards` | [`LiveboardNameAndID[] \| undefined`](../../doc/models/liveboard-name-and-id.md) | Optional | Liveboards assigned to the group | -| `userGroupContent` | `unknown \| undefined` | Optional | - | -| `tags` | `string[] \| undefined` | Optional | Tags assigned to the group | -| `isDeleted` | `boolean \| undefined` | Optional | Indicates if the group is deleted | -| `isHidden` | `boolean \| undefined` | Optional | Indicates if the group is hidden | -| `isExternal` | `boolean \| undefined` | Optional | Indicates if the group is from external system | -| `isDeprecated` | `boolean \| undefined` | Optional | - | -| `complete` | `boolean \| undefined` | Optional | Indicates if the all the properties of group is provided | -| `isSystemPrincipal` | `boolean \| undefined` | Optional | Indicates if the group is system principal | -| `type` | `string \| undefined` | Optional | Indicates the type of group | -| `parenttype` | `string \| undefined` | Optional | Indicates the type of parent object | -| `groupIdx` | `number \| undefined` | Optional | - | -| `metadataVersion` | `number \| undefined` | Optional | - | -| `tenantId` | `string \| undefined` | Optional | Tenant id associated with the group | -| `indexVersion` | `number \| undefined` | Optional | - | -| `generationNum` | `number \| undefined` | Optional | - | -| `created` | `number \| undefined` | Optional | Date and time when group was created | -| `modified` | `number \| undefined` | Optional | Date and time of last modification of the group | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modifiedBy` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "description": null, - "privileges": null, - "orgs": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "userGroupContent": null, - "tags": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "groupIdx": null, - "metadataVersion": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/Typescript/doc/models/home-liveboard-response.md b/Typescript/doc/models/home-liveboard-response.md deleted file mode 100644 index c3544c973..000000000 --- a/Typescript/doc/models/home-liveboard-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Home Liveboard Response - -## Structure - -`HomeLiveboardResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Optional | Name of the user | -| `userId` | `string \| undefined` | Optional | The GUID of the user | -| `liveboardName` | `string \| undefined` | Optional | Name of the liveboard | -| `liveboardId` | `string \| undefined` | Optional | The GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardName": null, - "liveboardId": null -} -``` - diff --git a/Typescript/doc/models/import-policy-enum.md b/Typescript/doc/models/import-policy-enum.md deleted file mode 100644 index e9b69a301..000000000 --- a/Typescript/doc/models/import-policy-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Import Policy Enum - -Policy to follow during import - -## Enumeration - -`ImportPolicyEnum` - -## Fields - -| Name | -| --- | -| `pARTIAL` | -| `aLLORNONE` | -| `vALIDATEONLY` | - diff --git a/Typescript/doc/models/liveboard-name-and-id.md b/Typescript/doc/models/liveboard-name-and-id.md deleted file mode 100644 index 43ef1c1d2..000000000 --- a/Typescript/doc/models/liveboard-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Liveboard Name and ID - -## Structure - -`LiveboardNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the liveboard | -| `id` | `string \| undefined` | Optional | GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/liveboard-query-response.md b/Typescript/doc/models/liveboard-query-response.md deleted file mode 100644 index 1aacee506..000000000 --- a/Typescript/doc/models/liveboard-query-response.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Liveboard Query Response - -## Structure - -`LiveboardQueryResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | The name of the Liveboard | -| `id` | `string \| undefined` | Optional | The GUID of the Liveboard | -| `viz` | [`VizType[] \| undefined`](../../doc/models/viz-type.md) | Optional | SQL query associated with the saved Answer | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "viz": null -} -``` - diff --git a/Typescript/doc/models/logical-table-header.md b/Typescript/doc/models/logical-table-header.md deleted file mode 100644 index fa2643bfd..000000000 --- a/Typescript/doc/models/logical-table-header.md +++ /dev/null @@ -1,51 +0,0 @@ - -# Logical Table Header - -## Structure - -`LogicalTableHeader` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | - | -| `name` | `string \| undefined` | Optional | - | -| `author` | `string \| undefined` | Optional | - | -| `authorName` | `string \| undefined` | Optional | - | -| `authorDisplayName` | `string \| undefined` | Optional | - | -| `created` | `number \| undefined` | Optional | - | -| `modified` | `number \| undefined` | Optional | - | -| `modifiedBy` | `string \| undefined` | Optional | - | -| `generationNum` | `number \| undefined` | Optional | - | -| `owner` | `string \| undefined` | Optional | - | -| `deleted` | `boolean \| undefined` | Optional | - | -| `hidden` | `boolean \| undefined` | Optional | - | -| `database` | `string \| undefined` | Optional | - | -| `schema` | `string \| undefined` | Optional | - | -| `type` | `string \| undefined` | Optional | - | -| `subType` | `string \| undefined` | Optional | - | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "author": null, - "authorName": null, - "authorDisplayName": null, - "created": null, - "modified": null, - "modifiedBy": null, - "generationNum": null, - "owner": null, - "deleted": null, - "hidden": null, - "database": null, - "schema": null, - "type": null, - "subType": null -} -``` - diff --git a/Typescript/doc/models/logs-response.md b/Typescript/doc/models/logs-response.md deleted file mode 100644 index 8b7e371d0..000000000 --- a/Typescript/doc/models/logs-response.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Logs Response - -## Structure - -`LogsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `date` | `string \| undefined` | Optional | Date and time for the event in the log | -| `log` | `string \| undefined` | Optional | Logged event at the time specified in JSON format. This includes, Event ID, A unique description of the event, for example, User login failed, Timestamp, User ID of the person initiating the event and IP address of the ThoughtSpot instance. | - -## Example (as JSON) - -```json -{ - "date": null, - "log": null -} -``` - diff --git a/Typescript/doc/models/metadata-tag-response.md b/Typescript/doc/models/metadata-tag-response.md deleted file mode 100644 index 6d1eb9592..000000000 --- a/Typescript/doc/models/metadata-tag-response.md +++ /dev/null @@ -1,47 +0,0 @@ - -# Metadata Tag Response - -## Structure - -`MetadataTagResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the tag | -| `id` | `string \| undefined` | Optional | GUID of the tag | -| `clientState` | [`ClientState \| undefined`](../../doc/models/client-state.md) | Optional | - | -| `indexVersion` | `number \| undefined` | Optional | - | -| `generationNum` | `number \| undefined` | Optional | - | -| `isDeleted` | `boolean \| undefined` | Optional | Indicates if the tag is deleted | -| `isHidden` | `boolean \| undefined` | Optional | Indicates if the tag is hidden | -| `isExternal` | `boolean \| undefined` | Optional | Indicates if the tag is from external system | -| `isDeprecated` | `boolean \| undefined` | Optional | - | -| `created` | `number \| undefined` | Optional | Date and time when group was created | -| `modified` | `number \| undefined` | Optional | Date and time of last modification of the group | -| `modifiedBy` | [`TagNameAndID \| undefined`](../../doc/models/tag-name-and-id.md) | Optional | - | -| `author` | [`TagNameAndID \| undefined`](../../doc/models/tag-name-and-id.md) | Optional | - | -| `owner` | [`TagNameAndID \| undefined`](../../doc/models/tag-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "clientState": null, - "indexVersion": null, - "generationNum": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "created": null, - "modified": null, - "modifiedBy": null, - "author": null, - "owner": null -} -``` - diff --git a/Typescript/doc/models/name-and-id-input.md b/Typescript/doc/models/name-and-id-input.md deleted file mode 100644 index d23ad8851..000000000 --- a/Typescript/doc/models/name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Name and Id Input - -## Structure - -`NameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the user | -| `id` | `string \| undefined` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/org-type.md b/Typescript/doc/models/org-type.md deleted file mode 100644 index 4650e6766..000000000 --- a/Typescript/doc/models/org-type.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Org Type - -## Structure - -`OrgType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the organization | -| `id` | `number \| undefined` | Optional | Id of the organization | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/orgs-response.md b/Typescript/doc/models/orgs-response.md deleted file mode 100644 index bf8796526..000000000 --- a/Typescript/doc/models/orgs-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Orgs Response - -## Structure - -`OrgsResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `orgId` | `number \| undefined` | Optional | ID of the organization searched for | -| `orgName` | `string \| undefined` | Optional | Name of the organization searched for | -| `description` | `string \| undefined` | Optional | Description associated with the organization | -| `allGroupUserId` | `string \| undefined` | Optional | GUID of the ALL group in the organization | -| `defaultAdminUserGroupId` | `string \| undefined` | Optional | GUID of the admin group in the organization | -| `active` | `boolean \| undefined` | Optional | Indicates if the organization is active or not | - -## Example (as JSON) - -```json -{ - "orgId": null, - "orgName": null, - "description": null, - "allGroupUserId": null, - "defaultAdminUserGroupId": null, - "active": null -} -``` - diff --git a/Typescript/doc/models/orientation-enum.md b/Typescript/doc/models/orientation-enum.md deleted file mode 100644 index a437f078b..000000000 --- a/Typescript/doc/models/orientation-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Orientation Enum - -Page orientation for the PDF. Default: PORTRAIT - -## Enumeration - -`OrientationEnum` - -## Fields - -| Name | -| --- | -| `pORTRAIT` | -| `lANDSCAPE` | - diff --git a/Typescript/doc/models/pdf-options-input.md b/Typescript/doc/models/pdf-options-input.md deleted file mode 100644 index 9f9be425c..000000000 --- a/Typescript/doc/models/pdf-options-input.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Pdf Options Input - -## Structure - -`PdfOptionsInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `orientation` | [`OrientationEnum \| undefined`](../../doc/models/orientation-enum.md) | Optional | Page orientation for the PDF. Default: PORTRAIT | -| `truncateTables` | `boolean \| undefined` | Optional | When set to true, only the first page of the tables is displayed in the file.

This setting is applicable only when generating report for specific visualization ids. Default: false | -| `includeLogo` | `boolean \| undefined` | Optional | Include customized wide logo if available in the footer. Default: true | -| `footerText` | `string \| undefined` | Optional | Footer text to include in the footer of each page of the PDF. | -| `includePageNumber` | `boolean \| undefined` | Optional | When set to true, the page number is included in the footer of each page. Default: true | -| `includeCoverPage` | `boolean \| undefined` | Optional | When set to true, a cover page with the Liveboard title is added in the PDF. Default: true | -| `includeFilterPage` | `boolean \| undefined` | Optional | When set to true, a second page with a list of all applied filters is added in the PDF. Default: true | - -## Example (as JSON) - -```json -{ - "orientation": null, - "truncateTables": null, - "includeLogo": null, - "footerText": null, - "includePageNumber": null, - "includeCoverPage": null, - "includeFilterPage": null -} -``` - diff --git a/Typescript/doc/models/permissions-type-search.md b/Typescript/doc/models/permissions-type-search.md deleted file mode 100644 index 674521fb4..000000000 --- a/Typescript/doc/models/permissions-type-search.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Permissions Type Search - -## Structure - -`PermissionsTypeSearch` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | `string \| undefined` | Optional | Indicates the type of the object | -| `tsObject` | [`TsObjectTypeSerach[] \| undefined`](../../doc/models/ts-object-type-serach.md) | Optional | An array of objects of type mentioned in type field | - -## Example (as JSON) - -```json -{ - "type": null, - "tsObject": null -} -``` - diff --git a/Typescript/doc/models/pinboard-details.md b/Typescript/doc/models/pinboard-details.md deleted file mode 100644 index 940b82e4b..000000000 --- a/Typescript/doc/models/pinboard-details.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Pinboard Details - -## Structure - -`PinboardDetails` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `pinboardId` | `string \| undefined` | Optional | pinboard id of recently pinned pinboard | -| `pinboardName` | `string \| undefined` | Optional | pinboard name of recently pinned pinboard | -| `tabId` | `string \| undefined` | Optional | tab id of recently pinned tab | -| `tabName` | `string \| undefined` | Optional | tab name of recently pinned tab | - -## Example (as JSON) - -```json -{ - "pinboardId": null, - "pinboardName": null, - "tabId": null, - "tabName": null -} -``` - diff --git a/Typescript/doc/models/principal-search-response.md b/Typescript/doc/models/principal-search-response.md deleted file mode 100644 index dc7771296..000000000 --- a/Typescript/doc/models/principal-search-response.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Principal Search Response - -## Structure - -`PrincipalSearchResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | GUID of the user or user group | -| `name` | `string \| undefined` | Optional | Name of the user or user group | -| `type` | `string \| undefined` | Optional | Indicates the type of principal | -| `permissions` | [`PermissionsTypeSearch[] \| undefined`](../../doc/models/permissions-type-search.md) | Optional | Indicates the permission which user or user group has on the object | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permissions": null -} -``` - diff --git a/Typescript/doc/models/privilege-enum.md b/Typescript/doc/models/privilege-enum.md deleted file mode 100644 index ff8709905..000000000 --- a/Typescript/doc/models/privilege-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Privilege Enum - -## Enumeration - -`PrivilegeEnum` - -## Fields - -| Name | -| --- | -| `rANALYSIS` | -| `dATAMANAGEMENT` | -| `aPPLICATIONADMINISTRATION` | -| `uSERADMINISTRATION` | -| `sYSTEMMANAGEMENT` | -| `sYSTEMINFOADMINISTRATION` | -| `aUTHORING` | -| `bACKUPADMINISTRATION` | -| `sHAREWITHALL` | -| `dEVELOPER` | -| `jOBSCHEDULING` | -| `gROUPADMINISTRATION` | -| `bYPASSRLS` | -| `eXPERIMENTALFEATUREPRIVILEGE` | -| `a3ANALYSIS` | -| `uSERDATAUPLOADING` | -| `dATADOWNLOADING` | -| `dISABLEPINBOARDCREATION` | -| `aDMINISTRATION` | - diff --git a/Typescript/doc/models/secuirity-dependents.md b/Typescript/doc/models/secuirity-dependents.md deleted file mode 100644 index 09b6af907..000000000 --- a/Typescript/doc/models/secuirity-dependents.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Secuirity Dependents - -## Structure - -`SecuirityDependents` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | GUID of the object | -| `name` | `string \| undefined` | Optional | Name of the object | -| `type` | `string \| undefined` | Optional | Indicates the type of the object | -| `owner` | `string \| undefined` | Optional | Owner of the object | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `permissions` | [`DependentPermission[] \| undefined`](../../doc/models/dependent-permission.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null -} -``` - diff --git a/Typescript/doc/models/security-permission-response.md b/Typescript/doc/models/security-permission-response.md deleted file mode 100644 index 8d7a3148f..000000000 --- a/Typescript/doc/models/security-permission-response.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Security Permission Response - -## Structure - -`SecurityPermissionResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | GUID of the object | -| `name` | `string \| undefined` | Optional | Name of the object | -| `type` | `string \| undefined` | Optional | Indicates the type of the object | -| `owner` | `string \| undefined` | Optional | GUID of the owner of the object | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `permissions` | [`SecurityPermission[] \| undefined`](../../doc/models/security-permission.md) | Optional | An array of object with details of permission on users and user groups | -| `dependents` | [`SecuirityDependents[] \| undefined`](../../doc/models/secuirity-dependents.md) | Optional | The objects on which the primary object is dependent on | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "owner": null, - "author": null, - "permissions": null, - "dependents": null -} -``` - diff --git a/Typescript/doc/models/security-permission.md b/Typescript/doc/models/security-permission.md deleted file mode 100644 index 424c595c1..000000000 --- a/Typescript/doc/models/security-permission.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Security Permission - -## Structure - -`SecurityPermission` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | GUID of the user or user group | -| `name` | `string \| undefined` | Optional | Name of the user or user group | -| `type` | `string \| undefined` | Optional | Indicates the type of principal | -| `permission` | `string \| undefined` | Optional | Indicates the permission which user or user group has on the object | -| `sharedPermission` | `string \| undefined` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with this user or user group | -| `groupPermission` | [`GroupPermission[] \| undefined`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "type": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Typescript/doc/models/session-login-response.md b/Typescript/doc/models/session-login-response.md deleted file mode 100644 index 45fd07a65..000000000 --- a/Typescript/doc/models/session-login-response.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Session Login Response - -Login response - -## Structure - -`SessionLoginResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Optional | Username of the user account for which token is generated | -| `token` | `string \| undefined` | Optional | Bearer token generated. This will be blank when token type is Cookie | -| `tokenCreatedTime` | `string \| undefined` | Optional | Date and time at which the token is generated | -| `tokenExpiryDuration` | `string \| undefined` | Optional | Duration in seconds after which the token expires | -| `tokenType` | `string \| undefined` | Optional | Type of token generated | - -## Example (as JSON) - -```json -{ - "userName": null, - "token": null, - "tokenCreatedTime": null, - "tokenExpiryDuration": null, - "tokenType": null -} -``` - diff --git a/Typescript/doc/models/sort-by-1-enum.md b/Typescript/doc/models/sort-by-1-enum.md deleted file mode 100644 index fafbe555b..000000000 --- a/Typescript/doc/models/sort-by-1-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by 1 Enum - -Field based on which the re.sponse needs to be ordered. Valid values - -## Enumeration - -`SortBy1Enum` - -## Fields - -| Name | -| --- | -| `dEFAULT` | -| `nAME` | -| `dISPLAYNAME` | -| `aUTHOR` | -| `cREATED` | -| `mODIFIED` | -| `lASTACCESSED` | -| `sYNCED` | -| `vIEWS` | -| `nONE` | -| `uSERSTATE` | -| `rOWCOUNT` | - diff --git a/Typescript/doc/models/sort-by-enum.md b/Typescript/doc/models/sort-by-enum.md deleted file mode 100644 index 457180bd6..000000000 --- a/Typescript/doc/models/sort-by-enum.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Sort by Enum - -Field based on which the response needs to be ordered. - -## Enumeration - -`SortByEnum` - -## Fields - -| Name | -| --- | -| `dEFAULT` | -| `nAME` | -| `dISPLAYNAME` | -| `aUTHOR` | -| `cREATED` | -| `mODIFIED` | -| `lASTACCESSED` | -| `sYNCED` | -| `vIEWS` | -| `nONE` | -| `uSERSTATE` | -| `rOWCOUNT` | - diff --git a/Typescript/doc/models/sort-order-1-enum.md b/Typescript/doc/models/sort-order-1-enum.md deleted file mode 100644 index b1c1c74bd..000000000 --- a/Typescript/doc/models/sort-order-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order 1 Enum - -Order in which sortBy should be applied. Valid values - -## Enumeration - -`SortOrder1Enum` - -## Fields - -| Name | -| --- | -| `dEFAULT` | -| `aSC` | -| `dESC` | - diff --git a/Typescript/doc/models/sort-order-enum.md b/Typescript/doc/models/sort-order-enum.md deleted file mode 100644 index 27d5e0c75..000000000 --- a/Typescript/doc/models/sort-order-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Sort Order Enum - -Order in which sortBy should be applied. - -## Enumeration - -`SortOrderEnum` - -## Fields - -| Name | -| --- | -| `dEFAULT` | -| `aSC` | -| `dESC` | - diff --git a/Typescript/doc/models/state-1-enum.md b/Typescript/doc/models/state-1-enum.md deleted file mode 100644 index 3b166c252..000000000 --- a/Typescript/doc/models/state-1-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# State 1 Enum - -Status of user account. acitve or inactive. - -## Enumeration - -`State1Enum` - -## Fields - -| Name | -| --- | -| `aCTIVE` | -| `iNACTIVE` | -| `eXPIRED` | -| `lOCKED` | -| `pENDING` | - diff --git a/Typescript/doc/models/state-enum.md b/Typescript/doc/models/state-enum.md deleted file mode 100644 index 1d3c55ebd..000000000 --- a/Typescript/doc/models/state-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# State Enum - -## Enumeration - -`StateEnum` - -## Fields - -| Name | -| --- | -| `aCTIVE` | -| `iNACTIVE` | -| `eXPIRED` | -| `lOCKED` | -| `pENDING` | - diff --git a/Typescript/doc/models/table-columns.md b/Typescript/doc/models/table-columns.md deleted file mode 100644 index 0b38b31f8..000000000 --- a/Typescript/doc/models/table-columns.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Columns - -## Structure - -`TableColumns` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the column | -| `dataType` | `string \| undefined` | Optional | Datatype of the column | - -## Example (as JSON) - -```json -{ - "name": null, - "dataType": null -} -``` - diff --git a/Typescript/doc/models/table-input.md b/Typescript/doc/models/table-input.md deleted file mode 100644 index a8ac77ab6..000000000 --- a/Typescript/doc/models/table-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Table Input - -## Structure - -`TableInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the table | -| `id` | `string \| undefined` | Optional | GUID of the Table | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/table-list.md b/Typescript/doc/models/table-list.md deleted file mode 100644 index 4330ea373..000000000 --- a/Typescript/doc/models/table-list.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Table List - -## Structure - -`TableList` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the table | -| `type` | `string \| undefined` | Optional | Type of the table | -| `id` | `string \| undefined` | Optional | GUID of the table | -| `databaseStripe` | `string \| undefined` | Optional | Name of the database to which the table belongs | -| `schemaStripe` | `string \| undefined` | Optional | Name of the schema to which the table belongs | -| `isExternal` | `boolean \| undefined` | Optional | - | -| `isDeprecated` | `boolean \| undefined` | Optional | Indicates if the table is deprecated | -| `isDeleted` | `boolean \| undefined` | Optional | Indicates if the table is deleted | -| `isHidden` | `boolean \| undefined` | Optional | Indicates if the table is hideen | -| `indexVersion` | `number \| undefined` | Optional | - | -| `generationNum` | `number \| undefined` | Optional | - | -| `created` | `string \| undefined` | Optional | Date and time when the table was created | -| `modified` | `string \| undefined` | Optional | Date and time of last modification of the table | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modifiedBy` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `tags` | `string[] \| undefined` | Optional | List of tags assigned to the table | - -## Example (as JSON) - -```json -{ - "name": null, - "type": null, - "id": null, - "databaseStripe": null, - "schemaStripe": null, - "isExternal": null, - "isDeprecated": null, - "isDeleted": null, - "isHidden": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null, - "tags": null -} -``` - diff --git a/Typescript/doc/models/tag-name-and-id-input.md b/Typescript/doc/models/tag-name-and-id-input.md deleted file mode 100644 index aa956f364..000000000 --- a/Typescript/doc/models/tag-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and Id Input - -## Structure - -`TagNameAndIdInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the tags | -| `id` | `string \| undefined` | Optional | GUID of the tags | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/tag-name-and-id.md b/Typescript/doc/models/tag-name-and-id.md deleted file mode 100644 index 3cfc931d6..000000000 --- a/Typescript/doc/models/tag-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tag Name and ID - -## Structure - -`TagNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group to which group is added | -| `id` | `string \| undefined` | Optional | GUID of the group to which group is added | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/to-user-name-and-id-input.md b/Typescript/doc/models/to-user-name-and-id-input.md deleted file mode 100644 index 91b8e6a2d..000000000 --- a/Typescript/doc/models/to-user-name-and-id-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# To User Name and ID Input - -A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. - -## Structure - -`ToUserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Username of the user | -| `id` | `string \| undefined` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/topic-enum.md b/Typescript/doc/models/topic-enum.md deleted file mode 100644 index 88dbce811..000000000 --- a/Typescript/doc/models/topic-enum.md +++ /dev/null @@ -1,13 +0,0 @@ - -# Topic Enum - -## Enumeration - -`TopicEnum` - -## Fields - -| Name | -| --- | -| `securityLogs` | - diff --git a/Typescript/doc/models/ts-object-input.md b/Typescript/doc/models/ts-object-input.md deleted file mode 100644 index 5bece7795..000000000 --- a/Typescript/doc/models/ts-object-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Ts Object Input - -## Structure - -`TsObjectInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the metadata object | -| `type` | [`TypeEnum`](../../doc/models/type-enum.md) | Required | Type of the metadata object | - -## Example (as JSON) - -```json -{ - "id": "id0", - "type": "DATAOBJECT" -} -``` - diff --git a/Typescript/doc/models/ts-object-search-input.md b/Typescript/doc/models/ts-object-search-input.md deleted file mode 100644 index c42de9f47..000000000 --- a/Typescript/doc/models/ts-object-search-input.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Ts Object Search Input - -## Structure - -`TsObjectSearchInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type2Enum`](../../doc/models/type-2-enum.md) | Required | Type of the metadata objec | -| `id` | `string[]` | Required | A JSON Array of GUIDs of the metadata object | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ] -} -``` - diff --git a/Typescript/doc/models/ts-object-type-serach.md b/Typescript/doc/models/ts-object-type-serach.md deleted file mode 100644 index a0978fe77..000000000 --- a/Typescript/doc/models/ts-object-type-serach.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Ts Object Type Serach - -## Structure - -`TsObjectTypeSerach` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string \| undefined` | Optional | GUID of the object | -| `name` | `string \| undefined` | Optional | Name of the object | -| `owner` | `string \| undefined` | Optional | Owner of the object | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `permission` | `string \| undefined` | Optional | Indicates the permission which user or user group has on the object | -| `sharedPermission` | `string \| undefined` | Optional | Indicates the permission which user or user group has on the object through sharing of the object with the user or user group | -| `groupPermission` | [`GroupPermission[] \| undefined`](../../doc/models/group-permission.md) | Optional | An array of object with details of permission on the user groups to which the user or user group belongs | - -## Example (as JSON) - -```json -{ - "id": null, - "name": null, - "owner": null, - "author": null, - "permission": null, - "sharedPermission": null, - "groupPermission": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-admin-assignauthor-request.md b/Typescript/doc/models/tspublic-rest-v2-admin-assignauthor-request.md deleted file mode 100644 index 950643bab..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-admin-assignauthor-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Admin Assignauthor Request - -## Structure - -`TspublicRestV2AdminAssignauthorRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `tsObjectId` | `string[]` | Required | A JSON array of GUIDs of the metadata objects. | -| `name` | `string \| undefined` | Optional | User name of the user account | -| `id` | `string \| undefined` | Optional | The GUID of the user account | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-admin-changeauthor-request.md b/Typescript/doc/models/tspublic-rest-v2-admin-changeauthor-request.md deleted file mode 100644 index d7e871fb3..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-admin-changeauthor-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Admin Changeauthor Request - -## Structure - -`TspublicRestV2AdminChangeauthorRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `tsObjectId` | `string[]` | Required | A JSON array of GUIDs of the metadata objects.

To change owner of all the objects owned by a user, provide single input as ALL.

If multiple object ids along with ALL is provided as input, then ALL will be considered. | -| `fromUser` | [`FromUserNameAndIDInput`](../../doc/models/from-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered.

If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed.

Provide either name or id as input. When both are given user id will be considered. | -| `toUser` | [`ToUserNameAndIDInput`](../../doc/models/to-user-name-and-id-input.md) | Required | A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "tsObjectId": [ - "tsObjectId1", - "tsObjectId2", - "tsObjectId3" - ], - "fromUser": { - "name": null, - "id": null - }, - "toUser": { - "name": null, - "id": null - } -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-admin-configuration-update-request.md b/Typescript/doc/models/tspublic-rest-v2-admin-configuration-update-request.md deleted file mode 100644 index 3affb49f9..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-admin-configuration-update-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Configuration Update Request - -## Structure - -`TspublicRestV2AdminConfigurationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `configuration` | `string \| undefined` | Optional | A JSON file with the key-value pair of configuration attributes to be updated.

Example: {"defaultChartDataSize": 5000} | - -## Example (as JSON) - -```json -{ - "configuration": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-admin-forcelogout-request.md b/Typescript/doc/models/tspublic-rest-v2-admin-forcelogout-request.md deleted file mode 100644 index f99a0c7f5..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-admin-forcelogout-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Admin Forcelogout Request - -## Structure - -`TspublicRestV2AdminForcelogoutRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `user` | [`NameAndIdInput[] \| undefined`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name of users or GUIDs of groups or both. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "user": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-admin-resetpassword-request.md b/Typescript/doc/models/tspublic-rest-v2-admin-resetpassword-request.md deleted file mode 100644 index 2d08678cb..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-admin-resetpassword-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Admin Resetpassword Request - -## Structure - -`TspublicRestV2AdminResetpasswordRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | User name of the user account | -| `id` | `string \| undefined` | Optional | The GUID of the user account to query. | -| `newPassword` | `string` | Required | A new password for the user. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "newPassword": "newPassword6" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md b/Typescript/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md deleted file mode 100644 index b04d3336f..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-admin-syncprincipal-request.md +++ /dev/null @@ -1,40 +0,0 @@ - -# Tspublic Rest V2 Admin Syncprincipal Request - -## Structure - -`TspublicRestV2AdminSyncprincipalRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `principalObject` | `unknown[]` | Required | A JSON array of principal objects containing all users and groups present in the external system.

Example:

{

"name": "Customer Success",

"displayName": "Customer Success",

"description": "CS",

"created": 1568926267025,

"modified": 1568926982242,

"principalTypeEnum": "LOCAL_GROUP",

"groupNames": [],

"visibility": "DEFAULT"

},

{

"name": "test",

"displayName": "test one",

"created": 1587573621279,

"modified": 1587573621674,

"mail": "test2@test.com",

"principalTypeEnum": "LOCAL_USER",

"groupNames": [ "Administrator", "All" ],

"visibility": "DEFAULT"

}

You can leave the created and modified dates blank for new users.

You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum keyword.

Set visibility to NON_SHARABLE, if you do not want the user to be able to share ThoughtSpot objects with other users in this group. | -| `updateModified` | `boolean \| undefined` | Optional | Specifies whether to apply the changes to users and groups already in the cluster based on the principal object list input.
**Default**: `false` | -| `deleteRemoved` | `boolean \| undefined` | Optional | Specifies whether to delete the users and groups already in the cluster if not present in the principal object list input.
**Default**: `false` | -| `newUserPassword` | `string \| undefined` | Optional | Assign a password for new users added during the sync operation.

All new users added will have this password. It is mandatory to provide value for this field if new users are included in the input list. | - -## Example (as JSON) - -```json -{ - "principalObject": [ - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - }, - { - "key1": "val1", - "key2": "val2" - } - ], - "updateModified": null, - "deleteRemoved": null, - "newUserPassword": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-connection-addtable-request.md b/Typescript/doc/models/tspublic-rest-v2-connection-addtable-request.md deleted file mode 100644 index ef1e5dcbf..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-connection-addtable-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Connection Addtable Request - -## Structure - -`TspublicRestV2ConnectionAddtableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the connection | -| `table` | [`AddTableInput[]`](../../doc/models/add-table-input.md) | Required | A JSON array of table details | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": "name6", - "dbName": "dbName4", - "schemaName": "schemaName0", - "columns": [ - { - "name": "name6", - "dataType": "dataType8" - } - ] - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-connection-create-request.md b/Typescript/doc/models/tspublic-rest-v2-connection-create-request.md deleted file mode 100644 index 18cbef17b..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-connection-create-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Create Request - -## Structure - -`TspublicRestV2ConnectionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type14Enum`](../../doc/models/type-14-enum.md) | Required | Type of the data connection. | -| `name` | `string` | Required | Name of the connection | -| `description` | `string \| undefined` | Optional | A short description of the connection. | -| `configuration` | `string` | Required | A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. | - -## Example (as JSON) - -```json -{ - "type": "DENODO", - "name": "name0", - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-connection-removetable-request.md b/Typescript/doc/models/tspublic-rest-v2-connection-removetable-request.md deleted file mode 100644 index 2f0c562bb..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-connection-removetable-request.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Tspublic Rest V2 Connection Removetable Request - -## Structure - -`TspublicRestV2ConnectionRemovetableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the connection | -| `table` | [`TableInput[]`](../../doc/models/table-input.md) | Required | A JSON array of name or GUIDs of the table or both. At least one input is required. Provide either table name or id. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "id": "id0", - "table": [ - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-connection-search-request.md b/Typescript/doc/models/tspublic-rest-v2-connection-search-request.md deleted file mode 100644 index 03d31853c..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-connection-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Connection Search Request - -## Structure - -`TspublicRestV2ConnectionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `number \| undefined` | Optional | The offset point, starting from where the records should be included in the response. If no input is provided then offset starts from 0
**Default**: `0` | -| `batchNumber` | `number \| undefined` | Optional | An alternate way to set offset for the starting point of the response. Offset field should be kept blank to use the value from this field. Offset value will be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batchSize` | `number \| undefined` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided, then all records starting from the value provided in offset is included in the response.
**Default**: `-1` | -| `sortBy` | [`SortBy1Enum \| undefined`](../../doc/models/sort-by-1-enum.md) | Optional | Field based on which the re.sponse needs to be ordered. Valid values
**Default**: `SortBy1Enum.DEFAULT` | -| `sortOrder` | [`SortOrder1Enum \| undefined`](../../doc/models/sort-order-1-enum.md) | Optional | Order in which sortBy should be applied. Valid values | -| `type` | [`Type15Enum`](../../doc/models/type-15-enum.md) | Required | Type of the connect being searched. Valid values: SNOWFLAKE\|AMAZON_REDSHIFT\|GOOGLE_BIGQUERY\|AZURE_SYNAPSE\|TERADATA\|STARBURST\|SAP_HANA\|ORACLE_ADW\|DATABRICKS\|DENODO | -| `namePattern` | `string \| undefined` | Optional | A pattern to match the name of the connection. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | -| `fetchId` | `string[] \| undefined` | Optional | A JSON array containing the GUIDs of the connections that you want to fetch. | -| `skipId` | `string[] \| undefined` | Optional | A JSON array containing the GUIDs of the connections that you want to skip. | -| `tag` | [`TagNameAndIdInput[] \| undefined`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "DENODO", - "namePattern": null, - "fetchId": null, - "skipId": null, - "tag": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-connection-table-request.md b/Typescript/doc/models/tspublic-rest-v2-connection-table-request.md deleted file mode 100644 index fa64ea526..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-connection-table-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Connection Table Request - -## Structure - -`TspublicRestV2ConnectionTableRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | The GUID of the connection | -| `configuration` | `string \| undefined` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | -| `includeColumn` | `boolean \| undefined` | Optional | When set to true, the response will include column level details as well
**Default**: `true` | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "includeColumn": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md b/Typescript/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md deleted file mode 100644 index 85f09a3bb..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-connection-tablecoloumn-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Connection Tablecoloumn Request - -## Structure - -`TspublicRestV2ConnectionTablecoloumnRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | The GUID of the connection | -| `configuration` | `string \| undefined` | Optional | A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered.

To get the tables based on a different configuration, include required attributes in the connection configuration JSON.

Example:

Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"}

Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} | -| `table` | [`ConnectionTableColumnsInput[]`](../../doc/models/connection-table-columns-input.md) | Required | List of table details | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": null, - "table": [ - { - "dbName": "dbName4", - "schemaName": "schemaName0", - "name": "name6" - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-connection-update-request.md b/Typescript/doc/models/tspublic-rest-v2-connection-update-request.md deleted file mode 100644 index 4742d2402..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-connection-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Connection Update Request - -## Structure - -`TspublicRestV2ConnectionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the connection | -| `name` | `string \| undefined` | Optional | The text to update the name of the connection. | -| `description` | `string \| undefined` | Optional | The text to update the description of the connection. | -| `configuration` | `string` | Required | A JSON object of the connection metadata. Include all the configuration attributes with original value along with the changes required to any attribute. | - -## Example (as JSON) - -```json -{ - "id": "id0", - "name": null, - "description": null, - "configuration": "configuration6" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-customaction-association-update-request.md b/Typescript/doc/models/tspublic-rest-v2-customaction-association-update-request.md deleted file mode 100644 index 5e0c15229..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-customaction-association-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Association Update Request - -## Structure - -`TspublicRestV2CustomactionAssociationUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the custom action | -| `association` | `string` | Required | A JSON map of the attributes with association of the action to ThoughtSpot object ID

Example:

{"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "id": "id0", - "association": "association0" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-customaction-create-request.md b/Typescript/doc/models/tspublic-rest-v2-customaction-create-request.md deleted file mode 100644 index 77e668387..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-customaction-create-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Create Request - -## Structure - -`TspublicRestV2CustomactionCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `configuration` | `string` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "configuration": "configuration6" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-customaction-search-request.md b/Typescript/doc/models/tspublic-rest-v2-customaction-search-request.md deleted file mode 100644 index 549ca82ce..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-customaction-search-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Customaction Search Request - -## Structure - -`TspublicRestV2CustomactionSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `tag` | `string[] \| undefined` | Optional | A JSON array of tag GUIDs.

If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags. | - -## Example (as JSON) - -```json -{ - "tag": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-customaction-update-request.md b/Typescript/doc/models/tspublic-rest-v2-customaction-update-request.md deleted file mode 100644 index 888a203a1..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-customaction-update-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Customaction Update Request - -## Structure - -`TspublicRestV2CustomactionUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of the custom action | -| `configuration` | `string` | Required | A JSON object with the key-value pair of configuration attributes

Example:

{"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} | - -## Example (as JSON) - -```json -{ - "id": "id0", - "configuration": "configuration6" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-data-answer-request.md b/Typescript/doc/models/tspublic-rest-v2-data-answer-request.md deleted file mode 100644 index a9cdc0d91..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-data-answer-request.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Tspublic Rest V2 Data Answer Request - -## Structure - -`TspublicRestV2DataAnswerRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `number \| undefined` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | -| `batchNumber` | `number \| undefined` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batchSize` | `number \| undefined` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `id` | `string` | Required | The GUID of the Answer | -| `formatType` | [`FormatTypeEnum \| undefined`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": "id0", - "formatType": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-data-liveboard-request.md b/Typescript/doc/models/tspublic-rest-v2-data-liveboard-request.md deleted file mode 100644 index 7831474bc..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-data-liveboard-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Data Liveboard Request - -## Structure - -`TspublicRestV2DataLiveboardRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `number \| undefined` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `0` | -| `batchNumber` | `number \| undefined` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batchSize` | `number \| undefined` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `id` | `string \| undefined` | Optional | The GUID of the Liveboard | -| `transientContent` | `string \| undefined` | Optional | If you have embedded ThoughtSpot in your host application, and you want to download Liveboard data with unsaved changes then, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If value for this field is provided, then id will not be considered. | -| `vizId` | `string[] \| undefined` | Optional | A JSON array of GUIDs of the visualizations in the Liveboard. | -| `runtimeFilter` | `string \| undefined` | Optional | JSON object which contains filter condition to filter the data at the time of data retrieval.

Example: {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters | -| `runtimeSort` | `string \| undefined` | Optional | JSON object which provides columns to sort the data at the time of data retrieval.

Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"}

For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. | -| `formatType` | [`FormatTypeEnum \| undefined`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "id": null, - "transientContent": null, - "vizId": null, - "runtimeFilter": null, - "runtimeSort": null, - "formatType": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-data-search-request.md b/Typescript/doc/models/tspublic-rest-v2-data-search-request.md deleted file mode 100644 index 3b44554f6..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-data-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Data Search Request - -## Structure - -`TspublicRestV2DataSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `offset` | `number \| undefined` | Optional | The offset point, starting from where the records should be included in the response.

If no input is provided then offset starts from 0.
**Default**: `-1` | -| `batchNumber` | `number \| undefined` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered.
**Default**: `-1` | -| `batchSize` | `number \| undefined` | Optional | The number of records that should be included in the response starting from offset position.

If no input is provided, then all records starting from the value provided in offset is included in the response
**Default**: `-1` | -| `queryString` | `string` | Required | The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' | -| `dataObjectId` | `string` | Required | The GUID of the data object, either a worksheet, a view, or a table. | -| `formatType` | [`FormatTypeEnum \| undefined`](../../doc/models/format-type-enum.md) | Optional | The format of the data in the response.

FULL: The response comes in "column":"value" format.

COMPACT: The response includes only the value of the columns.
**Default**: `FormatTypeEnum.COMPACT` | - -## Example (as JSON) - -```json -{ - "offset": null, - "batchNumber": null, - "batchSize": null, - "queryString": "queryString4", - "dataObjectId": "dataObjectId2", - "formatType": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-database-table-create-request.md b/Typescript/doc/models/tspublic-rest-v2-database-table-create-request.md deleted file mode 100644 index e1c08c0a4..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-database-table-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Create Request - -## Structure - -`TspublicRestV2DatabaseTableCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `createDatabase` | `boolean \| undefined` | Optional | Flag to indicate if the database and schema should be created if they do not exist in Falcon. (Valid values: True/False)
**Default**: `true` | -| `schema` | `string \| undefined` | Optional | DDL of the table to be created. Example: {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} | - -## Example (as JSON) - -```json -{ - "createDatabase": null, - "schema": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-database-table-runquery-request.md b/Typescript/doc/models/tspublic-rest-v2-database-table-runquery-request.md deleted file mode 100644 index 8675aaf7a..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-database-table-runquery-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Database Table Runquery Request - -## Structure - -`TspublicRestV2DatabaseTableRunqueryRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `statement` | `string[]` | Required | A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end with semi-colon (;). The TQL operations that can be run through this API are restricted to create database and schema, alter table, delete and update table rows. If a TQL statement fails, then the subsequent statements in the array are not run. Example: ["alter table test_db.test_schema.test_table drop contraint primary key;";"alter table test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] | - -## Example (as JSON) - -```json -{ - "statement": [ - "statement0" - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-addgroup-request.md b/Typescript/doc/models/tspublic-rest-v2-group-addgroup-request.md deleted file mode 100644 index 54a61227f..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Addgroup Request - -## Structure - -`TspublicRestV2GroupAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | The GUID of the group to query. | -| `groups` | [`GroupNameAndIDInput[]`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-addprivilege-request.md b/Typescript/doc/models/tspublic-rest-v2-group-addprivilege-request.md deleted file mode 100644 index 1bbcd3977..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-addprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Addprivilege Request - -## Structure - -`TspublicRestV2GroupAddprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | The GUID of the group to query. | -| `privileges` | [`PrivilegeEnum[] \| undefined`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-adduser-request.md b/Typescript/doc/models/tspublic-rest-v2-group-adduser-request.md deleted file mode 100644 index 7b2540fe4..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-adduser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Adduser Request - -## Structure - -`TspublicRestV2GroupAdduserRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | The GUID of the group to query. | -| `users` | [`UserNameAndIDInput[]`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to update in user group. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-create-request.md b/Typescript/doc/models/tspublic-rest-v2-group-create-request.md deleted file mode 100644 index e349b71e5..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-create-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Group Create Request - -## Structure - -`TspublicRestV2GroupCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the user group. The group name string must be unique. | -| `displayName` | `string` | Required | A unique display name string for the user group, for example, Developer group. | -| `visibility` | [`Visibility2Enum \| undefined`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `Visibility2Enum.DEFAULT` | -| `description` | `string \| undefined` | Optional | Description text for the group. | -| `privileges` | [`PrivilegeEnum[] \| undefined`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `orgId` | `number \| undefined` | Optional | Unique identifier of the organization. If no value is provided then group will be created in the organization associated with the login session. | -| `groups` | [`GroupNameAndIDInput[] \| undefined`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the group belong to. | -| `users` | [`UserNameAndIDInput[] \| undefined`](../../doc/models/user-name-and-id-input.md) | Optional | Array of names of user names that the group belong to. | -| `type` | [`Type10Enum \| undefined`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type10Enum.LOCALGROUP` | - -## Example (as JSON) - -```json -{ - "name": "name0", - "displayName": "displayName2", - "visibility": null, - "description": null, - "privileges": null, - "orgId": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-removegroup-request.md b/Typescript/doc/models/tspublic-rest-v2-group-removegroup-request.md deleted file mode 100644 index 85335e3ae..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 Group Removegroup Request - -## Structure - -`TspublicRestV2GroupRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | The GUID of the group to query. | -| `groups` | [`GroupNameAndIDInput[]`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-removeprivilege-request.md b/Typescript/doc/models/tspublic-rest-v2-group-removeprivilege-request.md deleted file mode 100644 index e9659d0a7..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-removeprivilege-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Group Removeprivilege Request - -## Structure - -`TspublicRestV2GroupRemoveprivilegeRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | The GUID of the group to query. | -| `privileges` | [`PrivilegeEnum[] \| undefined`](../../doc/models/privilege-enum.md) | Optional | A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "privileges": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-removeuser-request.md b/Typescript/doc/models/tspublic-rest-v2-group-removeuser-request.md deleted file mode 100644 index 956f56991..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-removeuser-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Group Removeuser Request - -## Structure - -`TspublicRestV2GroupRemoveuserRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the group | -| `id` | `string \| undefined` | Optional | The GUID of the group to query. | -| `users` | [`UserNameAndIDInput[]`](../../doc/models/user-name-and-id-input.md) | Required | Array of user name that you want to delete from user group. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-search-request.md b/Typescript/doc/models/tspublic-rest-v2-group-search-request.md deleted file mode 100644 index b13632fe8..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Search Request - -## Structure - -`TspublicRestV2GroupSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `outputFields` | `string[] \| undefined` | Optional | Array of field names that need to be included in the response | -| `name` | `string \| undefined` | Optional | Name of the user group | -| `id` | `string \| undefined` | Optional | GUID of the group to update | -| `displayName` | `string \| undefined` | Optional | A unique display name string for the user group, for example, Developer group. | -| `visibility` | `string \| undefined` | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. | -| `description` | `string \| undefined` | Optional | Description text for the group. | -| `privileges` | [`PrivilegeEnum[] \| undefined`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `groups` | [`GroupNameAndIDInput[] \| undefined`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `users` | [`UserNameAndIDInput[] \| undefined`](../../doc/models/user-name-and-id-input.md) | Optional | Array of user name that associated with group. | -| `type` | `string \| undefined` | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "type": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-group-update-request.md b/Typescript/doc/models/tspublic-rest-v2-group-update-request.md deleted file mode 100644 index 2df6201dd..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-group-update-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Group Update Request - -## Structure - -`TspublicRestV2GroupUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the user group. The group name string must be unique. | -| `id` | `string \| undefined` | Optional | he GUID of the user account to query. | -| `displayName` | `string \| undefined` | Optional | A unique display name string for the user group, for example, Developer group. | -| `visibility` | [`Visibility2Enum \| undefined`](../../doc/models/visibility-2-enum.md) | Optional | Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.
**Default**: `Visibility2Enum.DEFAULT` | -| `description` | `string \| undefined` | Optional | Description text for the group. | -| `privileges` | [`PrivilegeEnum[] \| undefined`](../../doc/models/privilege-enum.md) | Optional | A JSON array of privileges assigned to the group | -| `groups` | [`GroupNameAndIDInput[] \| undefined`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `users` | [`UserNameAndIDInput[] \| undefined`](../../doc/models/user-name-and-id-input.md) | Optional | Array of object, A JSON array of name of users of users. | -| `assignedLiveboards` | `string[] \| undefined` | Optional | Array of string. An array of liveboard ids to be assigned to the group. | -| `type` | [`Type10Enum \| undefined`](../../doc/models/type-10-enum.md) | Optional | Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type10Enum.LOCALGROUP` | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "description": null, - "privileges": null, - "groups": null, - "users": null, - "assignedLiveboards": null, - "type": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-materialization-refreshview-request.md b/Typescript/doc/models/tspublic-rest-v2-materialization-refreshview-request.md deleted file mode 100644 index e238fb62b..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-materialization-refreshview-request.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Tspublic Rest V2 Materialization Refreshview Request - -## Structure - -`TspublicRestV2MaterializationRefreshviewRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | GUID of metadata object | - -## Example (as JSON) - -```json -{ - "id": "id0" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-dependency-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-dependency-request.md deleted file mode 100644 index f50aa6f5b..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-dependency-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Dependency Request - -## Structure - -`TspublicRestV2MetadataDependencyRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type13Enum`](../../doc/models/type-13-enum.md) | Required | Type of the data object | -| `id` | `string[]` | Required | A JSON array of GUIDs of the objects | -| `batchSize` | `number \| undefined` | Optional | The maximum number of batches to fetch in a query. If this attribute is not defined, the value specified in the cluster configuration is used. To get the list of all dependent objects in a single query, define the batch size attribute as -1
**Default**: `-1` | - -## Example (as JSON) - -```json -{ - "type": "COLUMN", - "id": [ - "id0" - ], - "batchSize": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-detail-search-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-detail-search-request.md deleted file mode 100644 index 3cc22852f..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-detail-search-request.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Tspublic Rest V2 Metadata Detail Search Request - -## Structure - -`TspublicRestV2MetadataDetailSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type6Enum`](../../doc/models/type-6-enum.md) | Required | Type of the metadata object being searched. | -| `id` | `string[]` | Required | A JSON array of GUIDs of the objects. | -| `showHidden` | `boolean \| undefined` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `false` | -| `dropQuestionDetails` | `boolean \| undefined` | Optional | When set to true, the search assist data associated with a worksheet is not included in the API response. This attribute is applicable only for DATAOBJECT data type.
**Default**: `false` | -| `version` | `string \| undefined` | Optional | Specify the version to retrieve the objects from. By default, the API returns metadata for all versions of the object. | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "showHidden": null, - "dropQuestionDetails": null, - "version": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md deleted file mode 100644 index e1d1602c2..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-favorite-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Assign Request - -## Structure - -`TspublicRestV2MetadataFavoriteAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Optional | Name of the user | -| `userId` | `string \| undefined` | Optional | The GUID of the user | -| `tsObject` | [`TsObjectInput[]`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md deleted file mode 100644 index ccfd12ef9..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-favorite-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Favorite Unassign Request - -## Structure - -`TspublicRestV2MetadataFavoriteUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Optional | Name of the user | -| `userId` | `string \| undefined` | Optional | The GUID of the user | -| `tsObject` | [`TsObjectInput[]`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-header-search-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-header-search-request.md deleted file mode 100644 index 67a417f57..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-header-search-request.md +++ /dev/null @@ -1,53 +0,0 @@ - -# Tspublic Rest V2 Metadata Header Search Request - -## Structure - -`TspublicRestV2MetadataHeaderSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `outputFields` | `string[] \| undefined` | Optional | Array of header field names that need to be included in the header response | -| `offset` | `number \| undefined` | Optional | The batch offset, starting from where the records should be included in the response. If no input is provided then offset starts from 0. Default: 0
**Default**: `0` | -| `batchNumber` | `number \| undefined` | Optional | An alternate way to set offset for the starting point of the response.

The value in offset field will not be considered if batchNumber field has value greater than 0.

Offset value will be calculated as (batchNumber - 1) * batchSize.

It is mandatory to provide a value for batchSize with batchNumber.

Example:

Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. | -| `batchSize` | `number \| undefined` | Optional | The number of records that should be included in the response starting from offset position. If no input is provided then first page is included in the response.
**Default**: `-1` | -| `sortBy` | [`SortByEnum \| undefined`](../../doc/models/sort-by-enum.md) | Optional | Field based on which the response needs to be ordered.
**Default**: `SortByEnum.DEFAULT` | -| `sortOrder` | [`SortOrderEnum \| undefined`](../../doc/models/sort-order-enum.md) | Optional | Order in which sortBy should be applied.
**Default**: `SortOrderEnum.DEFAULT` | -| `type` | [`Type3Enum`](../../doc/models/type-3-enum.md) | Required | Type of the metadata object being searched. | -| `namePattern` | `string \| undefined` | Optional | A pattern to match the name of the metadata object. This parameter supports matching case-insensitive strings. For a wildcard match, use %. | -| `fetchId` | `string[] \| undefined` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to fetch. | -| `skipId` | `string[] \| undefined` | Optional | A JSON array containing the GUIDs of the metadata objects that you want to skip. | -| `showHidden` | `boolean \| undefined` | Optional | When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.
**Default**: `false` | -| `autoCreated` | `boolean \| undefined` | Optional | A flag to indicate whether to list only the auto created objects. When no value is provided as input then all objects are returned. | -| `accessLevel` | [`AccessLevelInput[] \| undefined`](../../doc/models/access-level-input.md) | Optional | A JSON array of objects with user details for which the metadata objects should be considered from the repository
If you specify ID or name of user and set the type parameter to USER, the API returns metadata objects associated with the user
If you specify ID or name of user group and set the type parameter to USER_GROUP, the API returns metadata objects for all the users mapped to the specified user group.
If the id or name parameter is not defined, but the type attribute is set to USER or USER_GROUP, then the API will not return and response.
If no input is provided for any field for this object, then the API returns headers for all users.
If both name and id is provided, then id will be considered. | -| `tag` | [`TagNameAndIdInput[] \| undefined`](../../doc/models/tag-name-and-id-input.md) | Optional | A JSON array of name or GUID of tags or both. When both are given then id is considered. | -| `favoriteFor` | [`NameAndIdInput[] \| undefined`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. When both are given then id is considered. | -| `author` | [`NameAndIdInput[] \| undefined`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who created the object. When both are given then id is considered | -| `lastModifiedBy` | [`NameAndIdInput[] \| undefined`](../../doc/models/name-and-id-input.md) | Optional | A JSON array of name or GUID of the user or both who last modified the object. When both are given then id is considered. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "offset": null, - "batchNumber": null, - "batchSize": null, - "sortBy": null, - "sortOrder": null, - "type": "COLUMN_ALL", - "namePattern": null, - "fetchId": null, - "skipId": null, - "showHidden": null, - "autoCreated": null, - "accessLevel": null, - "tag": null, - "favoriteFor": null, - "author": null, - "lastModifiedBy": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md deleted file mode 100644 index 8b6af6152..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-assign-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Assign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Optional | Name of the user | -| `userId` | `string \| undefined` | Optional | The GUID of the user | -| `liveboardId` | `string \| undefined` | Optional | The GUID of the liveboard | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null, - "liveboardId": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md deleted file mode 100644 index 1d3a8019e..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-homeliveboard-unassign-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Homeliveboard Unassign Request - -## Structure - -`TspublicRestV2MetadataHomeliveboardUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `userName` | `string \| undefined` | Optional | Name of the user | -| `userId` | `string \| undefined` | Optional | The GUID of the user | - -## Example (as JSON) - -```json -{ - "userName": null, - "userId": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md deleted file mode 100644 index f70d50040..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-assign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Assign Request - -## Structure - -`TspublicRestV2MetadataTagAssignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the tag | -| `id` | `string \| undefined` | Optional | The GUID of the tag | -| `tsObject` | [`TsObjectInput[]`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-create-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-tag-create-request.md deleted file mode 100644 index 515e9b132..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Create Request - -## Structure - -`TspublicRestV2MetadataTagCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the tag | -| `color` | `string \| undefined` | Optional | Hex color code to be assigned to the tag | - -## Example (as JSON) - -```json -{ - "name": "name0", - "color": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md deleted file mode 100644 index da314f2c2..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-unassign-request.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Unassign Request - -## Structure - -`TspublicRestV2MetadataTagUnassignRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the tag | -| `id` | `string \| undefined` | Optional | The GUID of the tag | -| `tsObject` | [`TsObjectInput[]`](../../doc/models/ts-object-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "tsObject": [ - { - "id": "id2", - "type": "DATAOBJECT" - }, - { - "id": "id3", - "type": "CONNECTION" - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-update-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-tag-update-request.md deleted file mode 100644 index e3ed4f30d..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-tag-update-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Metadata Tag Update Request - -## Structure - -`TspublicRestV2MetadataTagUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the tag | -| `id` | `string \| undefined` | Optional | The GUID of the tag | -| `color` | `string \| undefined` | Optional | Hex color code to be assigned to the tag | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "color": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-tml-export-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-tml-export-request.md deleted file mode 100644 index cc8f6f23a..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-tml-export-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Export Request - -## Structure - -`TspublicRestV2MetadataTmlExportRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string[]` | Required | A JSON array of GUIDs of the objects. | -| `formatType` | [`FormatType3Enum \| undefined`](../../doc/models/format-type-3-enum.md) | Optional | The format in which to export the objects
**Default**: `FormatType3Enum.YAML` | -| `exportAssociated` | `boolean \| undefined` | Optional | Specifies if you would like to export the associated objects. To export the objects associated with the objects specified in id, set the value to true. When set to true, the API exports any underlying worksheets, tables, or views for a given object. By default, the API does not export these underlying objects
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "id": [ - "id0" - ], - "formatType": null, - "exportAssociated": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-metadata-tml-import-request.md b/Typescript/doc/models/tspublic-rest-v2-metadata-tml-import-request.md deleted file mode 100644 index 0134bb52c..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-metadata-tml-import-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Metadata Tml Import Request - -## Structure - -`TspublicRestV2MetadataTmlImportRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `objectTML` | `string[]` | Required | A string array of TML objects to upload, in YAML or JSON format.

If TML is in YAML format, then use escape characters for quotes and new line characters.

Example TML:

guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: DONT_INDEX\n db_column_properties:\n data_type: INT64\n

If TML is in JSON format, then use escape characters for quotes.

Example TML:

{\\"guid\\": \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', | -| `importPolicy` | [`ImportPolicyEnum \| undefined`](../../doc/models/import-policy-enum.md) | Optional | Policy to follow during import
**Default**: `ImportPolicyEnum.PARTIAL` | -| `forceCreate` | `boolean \| undefined` | Optional | Specifies if you are updating or creating objects. To create new objects, specify true. By default, ThoughtSpot updates existing objects that have the same GUID as the objects you are importing. When set to true, the GUID property in the imported TML is replaced on the server, and the response headers will include the id_guid property with the GUID of the new object. The new object will be assigned a new GUID, even if the imported TML file included a guid value. Thus, there is no need to include the guid in the TML file if you are using forceCreate=true.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "objectTML": [ - "objectTML7" - ], - "importPolicy": null, - "forceCreate": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-org-create-request.md b/Typescript/doc/models/tspublic-rest-v2-org-create-request.md deleted file mode 100644 index be31179d7..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-org-create-request.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Tspublic Rest V2 Org Create Request - -## Structure - -`TspublicRestV2OrgCreateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string` | Required | Name of the organization. | -| `description` | `string \| undefined` | Optional | Description text for the organization. | - -## Example (as JSON) - -```json -{ - "name": "name0", - "description": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-org-search-request.md b/Typescript/doc/models/tspublic-rest-v2-org-search-request.md deleted file mode 100644 index 1a90eafc4..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-org-search-request.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Tspublic Rest V2 Org Search Request - -## Structure - -`TspublicRestV2OrgSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the organization. | -| `id` | `number \| undefined` | Optional | The ID of the organization. | -| `showDeleted` | `boolean \| undefined` | Optional | When set to true, the response will include the details of deleted organization also.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "showDeleted": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-org-update-request.md b/Typescript/doc/models/tspublic-rest-v2-org-update-request.md deleted file mode 100644 index bce78c5cd..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-org-update-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 Org Update Request - -## Structure - -`TspublicRestV2OrgUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the organization. | -| `id` | `number \| undefined` | Optional | The ID of the organization. | -| `description` | `string \| undefined` | Optional | Description text for the organization. | -| `active` | `boolean \| undefined` | Optional | Status of the organization. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "description": null, - "active": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md b/Typescript/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md deleted file mode 100644 index 2f1aeaa07..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-security-permission-principal-search-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 Security Permission Principal Search Request - -## Structure - -`TspublicRestV2SecurityPermissionPrincipalSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `principal` | [`UserNameAndIDInput[]`](../../doc/models/user-name-and-id-input.md) | Required | A JSON array of principal names or GUIDs to be included in the request. When both are given then id is considered. | -| `tsObject` | [`TsObjectSearchInput[] \| undefined`](../../doc/models/ts-object-search-input.md) | Optional | A JSON Array of GUIDs and type of metadata object. | - -## Example (as JSON) - -```json -{ - "principal": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ], - "tsObject": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md b/Typescript/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md deleted file mode 100644 index 9bd29f36c..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-security-permission-tsobject-search-request.md +++ /dev/null @@ -1,39 +0,0 @@ - -# Tspublic Rest V2 Security Permission Tsobject Search Request - -## Structure - -`TspublicRestV2SecurityPermissionTsobjectSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `tsObject` | [`TsObjectSearchInput[]`](../../doc/models/ts-object-search-input.md) | Required | A JSON Array of GUIDs and type of metadata object. | -| `principal` | [`UserNameAndIDInput[] \| undefined`](../../doc/models/user-name-and-id-input.md) | Optional | A JSON array of principal names or GUIDs. When both are given then id is considered. | -| `includeDependent` | `boolean \| undefined` | Optional | When this field is set to true, the API response includes the permission details for the dependent objects.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "tsObject": [ - { - "type": "DATAOBJECT", - "id": [ - "id2" - ] - }, - { - "type": "COLUMN", - "id": [ - "id3", - "id4" - ] - } - ], - "principal": null, - "includeDependent": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-security-share-tsobject-request.md b/Typescript/doc/models/tspublic-rest-v2-security-share-tsobject-request.md deleted file mode 100644 index f3869107f..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-security-share-tsobject-request.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Tspublic Rest V2 Security Share Tsobject Request - -## Structure - -`TspublicRestV2SecurityShareTsobjectRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `type` | [`Type18Enum`](../../doc/models/type-18-enum.md) | Required | Type of metadata object. Valid values: Liveboard\|Answer\|DataObject\|Column | -| `id` | `string[]` | Required | A JSON array of the GUIDs of the objects to be shared | -| `permission` | `string` | Required | A JSON object with GUIDs of user and user group, and the type of access privilge.

You can provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user group can view the shared object, whereas MODIFY access enables users to modify the object.

To remove access to a shared object, you can set the shareMode in the permission string to NO_ACCESS. Example:

{"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} | -| `emailId` | `string[] \| undefined` | Optional | The email addresses that should ne notified when the objects are shared. | -| `notify` | `boolean \| undefined` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `true` | -| `message` | `string \| undefined` | Optional | The message text to send in the notification email. | -| `includeCustomEmbedUrl` | `boolean \| undefined` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "type": "DATAOBJECT", - "id": [ - "id0" - ], - "permission": "permission2", - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-security-share-visualization-request.md b/Typescript/doc/models/tspublic-rest-v2-security-share-visualization-request.md deleted file mode 100644 index f65073104..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-security-share-visualization-request.md +++ /dev/null @@ -1,37 +0,0 @@ - -# Tspublic Rest V2 Security Share Visualization Request - -## Structure - -`TspublicRestV2SecurityShareVisualizationRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `id` | `string` | Required | A JSON array of the GUIDs of the objects to be shared | -| `vizId` | `string` | Required | The GUID of visualization | -| `principalId` | `string[]` | Required | The GUID of the users and user groups with which you want to share the visualization | -| `emailId` | `string[] \| undefined` | Optional | The email addresses that should ne notified when the objects are shared | -| `notify` | `boolean \| undefined` | Optional | When set to true, a notification is sent to the users after an object is shared.
**Default**: `true` | -| `message` | `string \| undefined` | Optional | The message text to send in the notification email. | -| `includeCustomEmbedUrl` | `boolean \| undefined` | Optional | When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance.
**Default**: `false` | - -## Example (as JSON) - -```json -{ - "id": "id0", - "vizId": "vizId2", - "principalId": [ - "principalId8", - "principalId9", - "principalId0" - ], - "emailId": null, - "notify": null, - "message": null, - "includeCustomEmbedUrl": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-user-addgroup-request.md b/Typescript/doc/models/tspublic-rest-v2-user-addgroup-request.md deleted file mode 100644 index 3724dd143..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-user-addgroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Addgroup Request - -## Structure - -`TspublicRestV2UserAddgroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | User name of the user account | -| `id` | `string \| undefined` | Optional | The GUID of the user account | -| `groups` | [`GroupNameAndIDInput[]`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-user-addorg-request.md b/Typescript/doc/models/tspublic-rest-v2-user-addorg-request.md deleted file mode 100644 index b60b0e3eb..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-user-addorg-request.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Tspublic Rest V2 User Addorg Request - -## Structure - -`TspublicRestV2UserAddorgRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `orgId` | `number \| undefined` | Optional | The ID of the organization. | -| `users` | [`UserNameAndIDInput[]`](../../doc/models/user-name-and-id-input.md) | Required | Array of objects. A JSON array of name of users or GUIDs of users or both. When both are given then id is considered | - -## Example (as JSON) - -```json -{ - "orgId": null, - "users": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-user-changepassword-request.md b/Typescript/doc/models/tspublic-rest-v2-user-changepassword-request.md deleted file mode 100644 index 797c7d2d9..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-user-changepassword-request.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Tspublic Rest V2 User Changepassword Request - -## Structure - -`TspublicRestV2UserChangepasswordRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | User name of the user account. | -| `id` | `string \| undefined` | Optional | The GUID of the user account to query. | -| `currentPassword` | `string` | Required | The current password of the user. | -| `newPassword` | `string` | Required | A new password for the user. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "currentPassword": "currentPassword6", - "newPassword": "newPassword6" -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-user-removegroup-request.md b/Typescript/doc/models/tspublic-rest-v2-user-removegroup-request.md deleted file mode 100644 index 26fae2e7d..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-user-removegroup-request.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Tspublic Rest V2 User Removegroup Request - -## Structure - -`TspublicRestV2UserRemovegroupRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | User name of the user account | -| `id` | `string \| undefined` | Optional | The GUID of the user account | -| `groups` | [`GroupNameAndIDInput[]`](../../doc/models/group-name-and-id-input.md) | Required | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "groups": [ - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - }, - { - "name": null, - "id": null - } - ] -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-user-search-request.md b/Typescript/doc/models/tspublic-rest-v2-user-search-request.md deleted file mode 100644 index f074c4114..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-user-search-request.md +++ /dev/null @@ -1,45 +0,0 @@ - -# Tspublic Rest V2 User Search Request - -## Structure - -`TspublicRestV2UserSearchRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `outputFields` | `string[] \| undefined` | Optional | Array of field names that need to be included in the response | -| `name` | `string \| undefined` | Optional | User name of the user account | -| `id` | `string \| undefined` | Optional | The GUID of the user account | -| `displayName` | `string \| undefined` | Optional | A unique display name string for the user, usually their first and last name. | -| `visibility` | `string \| undefined` | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. | -| `mail` | `string \| undefined` | Optional | email of the user. | -| `groups` | [`GroupNameAndIDInput[] \| undefined`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | -| `privileges` | [`PrivilegeEnum[] \| undefined`](../../doc/models/privilege-enum.md) | Optional | Privileges assigned to user account | -| `state` | `string \| undefined` | Optional | Status of user account. acitve or inactive. | -| `notifyOnShare` | `boolean \| undefined` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. | -| `showWalkMe` | `boolean \| undefined` | Optional | The user preference for revisiting the onboarding experience. | -| `analystOnboardingComplete` | `boolean \| undefined` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. | -| `type` | `string \| undefined` | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. | - -## Example (as JSON) - -```json -{ - "outputFields": null, - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null -} -``` - diff --git a/Typescript/doc/models/tspublic-rest-v2-user-update-request.md b/Typescript/doc/models/tspublic-rest-v2-user-update-request.md deleted file mode 100644 index bd44664fe..000000000 --- a/Typescript/doc/models/tspublic-rest-v2-user-update-request.md +++ /dev/null @@ -1,41 +0,0 @@ - -# Tspublic Rest V2 User Update Request - -## Structure - -`TspublicRestV2UserUpdateRequest` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Name of the user. The username string must be unique. | -| `id` | `string \| undefined` | Optional | The GUID of the user account to query | -| `displayName` | `string \| undefined` | Optional | A unique display name string for the user, usually their first and last name. | -| `visibility` | [`Visibility1Enum \| undefined`](../../doc/models/visibility-1-enum.md) | Optional | Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects.
**Default**: `Visibility1Enum.DEFAULT` | -| `mail` | `string \| undefined` | Optional | email of the user. | -| `state` | [`State1Enum \| undefined`](../../doc/models/state-1-enum.md) | Optional | Status of user account. acitve or inactive.
**Default**: `State1Enum.ACTIVE` | -| `notifyOnShare` | `boolean \| undefined` | Optional | User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards.
**Default**: `true` | -| `showWalkMe` | `boolean \| undefined` | Optional | The user preference for revisiting the onboarding experience.
**Default**: `true` | -| `analystOnboardingComplete` | `boolean \| undefined` | Optional | ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI.
**Default**: `false` | -| `type` | [`Type9Enum \| undefined`](../../doc/models/type-9-enum.md) | Optional | Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system.
**Default**: `Type9Enum.LOCALUSER` | -| `groups` | [`GroupNameAndIDInput[] \| undefined`](../../doc/models/group-name-and-id-input.md) | Optional | Array of objects of groups that the user belong to. | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "displayName": null, - "visibility": null, - "mail": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "type": null, - "groups": null -} -``` - diff --git a/Typescript/doc/models/type-1-enum.md b/Typescript/doc/models/type-1-enum.md deleted file mode 100644 index b279c27cd..000000000 --- a/Typescript/doc/models/type-1-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 1 Enum - -Type of access detail provided - -## Enumeration - -`Type1Enum` - -## Fields - -| Name | -| --- | -| `uSER` | -| `uSERGROUP` | - diff --git a/Typescript/doc/models/type-10-enum.md b/Typescript/doc/models/type-10-enum.md deleted file mode 100644 index 0054f3808..000000000 --- a/Typescript/doc/models/type-10-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 10 Enum - -Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type10Enum` - -## Fields - -| Name | -| --- | -| `lOCALGROUP` | -| `tENANTGROUP` | - diff --git a/Typescript/doc/models/type-13-enum.md b/Typescript/doc/models/type-13-enum.md deleted file mode 100644 index e163138f3..000000000 --- a/Typescript/doc/models/type-13-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 13 Enum - -Type of the data object - -## Enumeration - -`Type13Enum` - -## Fields - -| Name | -| --- | -| `lIVEBOARD` | -| `dATAOBJECT` | -| `cOLUMN` | -| `jOIN` | - diff --git a/Typescript/doc/models/type-14-enum.md b/Typescript/doc/models/type-14-enum.md deleted file mode 100644 index acb028692..000000000 --- a/Typescript/doc/models/type-14-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 14 Enum - -Type of the data connection. - -## Enumeration - -`Type14Enum` - -## Fields - -| Name | -| --- | -| `sNOWFLAKE` | -| `aMAZONREDSHIFT` | -| `gOOGLEBIGQUERY` | -| `aZURESYNAPSE` | -| `tERADATA` | -| `sTARBURST` | -| `sAPHANA` | -| `oRACLEADW` | -| `dATABRICKS` | -| `dENODO` | -| `dREMIO` | - diff --git a/Typescript/doc/models/type-15-enum.md b/Typescript/doc/models/type-15-enum.md deleted file mode 100644 index 121be93bf..000000000 --- a/Typescript/doc/models/type-15-enum.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Type 15 Enum - -Type of the connect being searched. Valid values: SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO - -## Enumeration - -`Type15Enum` - -## Fields - -| Name | -| --- | -| `sNOWFLAKE` | -| `aMAZONREDSHIFT` | -| `gOOGLEBIGQUERY` | -| `aZURESYNAPSE` | -| `tERADATA` | -| `sTARBURST` | -| `sAPHANA` | -| `oRACLEADW` | -| `dATABRICKS` | -| `dENODO` | -| `dREMIO` | - diff --git a/Typescript/doc/models/type-16-enum.md b/Typescript/doc/models/type-16-enum.md deleted file mode 100644 index e03b749bc..000000000 --- a/Typescript/doc/models/type-16-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 16 Enum - -## Enumeration - -`Type16Enum` - -## Fields - -| Name | -| --- | -| `cSV` | -| `xLSX` | -| `pDF` | -| `pNG` | - diff --git a/Typescript/doc/models/type-18-enum.md b/Typescript/doc/models/type-18-enum.md deleted file mode 100644 index b9de01550..000000000 --- a/Typescript/doc/models/type-18-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 18 Enum - -Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - -## Enumeration - -`Type18Enum` - -## Fields - -| Name | -| --- | -| `lIVEBOARD` | -| `aNSWER` | -| `dATAOBJECT` | -| `cOLUMN` | - diff --git a/Typescript/doc/models/type-2-enum.md b/Typescript/doc/models/type-2-enum.md deleted file mode 100644 index 67cd89b0b..000000000 --- a/Typescript/doc/models/type-2-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type 2 Enum - -Type of the metadata objec - -## Enumeration - -`Type2Enum` - -## Fields - -| Name | -| --- | -| `lIVEBOARD` | -| `aNSWER` | -| `dATAOBJECT` | -| `cOLUMN` | - diff --git a/Typescript/doc/models/type-3-enum.md b/Typescript/doc/models/type-3-enum.md deleted file mode 100644 index 08919eb07..000000000 --- a/Typescript/doc/models/type-3-enum.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Type 3 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type3Enum` - -## Fields - -| Name | -| --- | -| `aNSWER` | -| `lIVEBOARD` | -| `dATAOBJECTALL` | -| `dATAOBJECTWORKSHEET` | -| `dATAOBJECTTABLE` | -| `dATAOBJECTUSERDEFINED` | -| `dATAOBJECTVIEW` | -| `dATAOBJECTCALENDARTABLE` | -| `cOLUMNALL` | -| `cOLUMNWORKSHEET` | -| `cOLUMNTABLE` | -| `cOLUMNUSERDEFINED` | -| `cOLUMNVIEW` | -| `cOLUMNCALENDARTABLE` | -| `jOIN` | -| `cONNECTION` | -| `tAG` | -| `uSER` | -| `uSERGROUP` | - diff --git a/Typescript/doc/models/type-4-enum.md b/Typescript/doc/models/type-4-enum.md deleted file mode 100644 index 1a2d9ae5e..000000000 --- a/Typescript/doc/models/type-4-enum.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Type 4 Enum - -## Enumeration - -`Type4Enum` - -## Fields - -| Name | -| --- | -| `aNSWER` | -| `lIVEBOARD` | -| `dATAOBJECT` | -| `cOLUMN` | -| `jOIN` | -| `cONNECTION` | -| `tAG` | -| `uSER` | -| `uSERGROUP` | - diff --git a/Typescript/doc/models/type-5-enum.md b/Typescript/doc/models/type-5-enum.md deleted file mode 100644 index d8abde6ba..000000000 --- a/Typescript/doc/models/type-5-enum.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Type 5 Enum - -## Enumeration - -`Type5Enum` - -## Fields - -| Name | -| --- | -| `aNSWER` | -| `lIVEBOARD` | -| `dATAOBJECTALL` | -| `dATAOBJECTWORKSHEET` | -| `dATAOBJECTTABLE` | -| `dATAOBJECTUSERDEFINED` | -| `dATAOBJECTVIEW` | -| `dATAOBJECTCALENDARTABLE` | -| `cOLUMNALL` | -| `cOLUMNWORKSHEET` | -| `cOLUMNTABLE` | -| `cOLUMNUSERDEFINED` | -| `cOLUMNVIEW` | -| `cOLUMNCALENDARTABLE` | -| `jOIN` | -| `cONNECTION` | -| `tAG` | -| `uSER` | -| `uSERGROUP` | - diff --git a/Typescript/doc/models/type-6-enum.md b/Typescript/doc/models/type-6-enum.md deleted file mode 100644 index 234b8a898..000000000 --- a/Typescript/doc/models/type-6-enum.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Type 6 Enum - -Type of the metadata object being searched. - -## Enumeration - -`Type6Enum` - -## Fields - -| Name | -| --- | -| `aNSWER` | -| `lIVEBOARD` | -| `dATAOBJECT` | -| `cOLUMN` | -| `jOIN` | -| `cONNECTION` | -| `tAG` | -| `uSER` | -| `uSERGROUP` | - diff --git a/Typescript/doc/models/type-7-enum.md b/Typescript/doc/models/type-7-enum.md deleted file mode 100644 index e2e937e54..000000000 --- a/Typescript/doc/models/type-7-enum.md +++ /dev/null @@ -1,16 +0,0 @@ - -# Type 7 Enum - -## Enumeration - -`Type7Enum` - -## Fields - -| Name | -| --- | -| `lIVEBOARD` | -| `aNSWER` | -| `dATAOBJECT` | -| `cOLUMN` | - diff --git a/Typescript/doc/models/type-8-enum.md b/Typescript/doc/models/type-8-enum.md deleted file mode 100644 index 5ff1b296f..000000000 --- a/Typescript/doc/models/type-8-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Type 8 Enum - -## Enumeration - -`Type8Enum` - -## Fields - -| Name | -| --- | -| `uNKNOWN` | -| `lDAPUSER` | -| `sAMLUSER` | -| `oIDCUSER` | -| `lOCALUSER` | - diff --git a/Typescript/doc/models/type-9-enum.md b/Typescript/doc/models/type-9-enum.md deleted file mode 100644 index 0b575813c..000000000 --- a/Typescript/doc/models/type-9-enum.md +++ /dev/null @@ -1,19 +0,0 @@ - -# Type 9 Enum - -Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. - -## Enumeration - -`Type9Enum` - -## Fields - -| Name | -| --- | -| `uNKNOWN` | -| `lDAPUSER` | -| `sAMLUSER` | -| `oIDCUSER` | -| `lOCALUSER` | - diff --git a/Typescript/doc/models/type-enum.md b/Typescript/doc/models/type-enum.md deleted file mode 100644 index cb7efcc70..000000000 --- a/Typescript/doc/models/type-enum.md +++ /dev/null @@ -1,18 +0,0 @@ - -# Type Enum - -Type of the metadata object - -## Enumeration - -`TypeEnum` - -## Fields - -| Name | -| --- | -| `aNSWER` | -| `lIVEBOARD` | -| `dATAOBJECT` | -| `cONNECTION` | - diff --git a/Typescript/doc/models/user-name-and-id-input.md b/Typescript/doc/models/user-name-and-id-input.md deleted file mode 100644 index 099d4bbd4..000000000 --- a/Typescript/doc/models/user-name-and-id-input.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID Input - -## Structure - -`UserNameAndIDInput` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Username of the user | -| `id` | `string \| undefined` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/user-name-and-id.md b/Typescript/doc/models/user-name-and-id.md deleted file mode 100644 index 3bc5b8f01..000000000 --- a/Typescript/doc/models/user-name-and-id.md +++ /dev/null @@ -1,23 +0,0 @@ - -# User Name and ID - -## Structure - -`UserNameAndID` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Username of the user | -| `id` | `string \| undefined` | Optional | GUID of the user | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null -} -``` - diff --git a/Typescript/doc/models/user-response.md b/Typescript/doc/models/user-response.md deleted file mode 100644 index 67bcca8bb..000000000 --- a/Typescript/doc/models/user-response.md +++ /dev/null @@ -1,83 +0,0 @@ - -# User Response - -## Structure - -`UserResponse` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | Username of the user account | -| `displayName` | `string \| undefined` | Optional | Display name of the user account | -| `id` | `string \| undefined` | Optional | GUID of the user account | -| `visibility` | `string \| undefined` | Optional | Visibility of the user account | -| `mail` | `string \| undefined` | Optional | Email of the user account | -| `groups` | [`GroupNameAndID[] \| undefined`](../../doc/models/group-name-and-id.md) | Optional | Name of the group to which user account is added | -| `privileges` | `string[] \| undefined` | Optional | Privileges assigned to user account | -| `orgs` | [`OrgType[] \| undefined`](../../doc/models/org-type.md) | Optional | The organizations that user belongs to | -| `tags` | `string[] \| undefined` | Optional | Tags assigned to the user | -| `state` | `string \| undefined` | Optional | Indicates if the user account is active or inactive | -| `notifyOnShare` | `boolean \| undefined` | Optional | Indicates if the email should be sent when object is shared with the user | -| `showWalkMe` | `boolean \| undefined` | Optional | Indicates if the walk me should be shown when logging in | -| `analystOnboardingComplete` | `boolean \| undefined` | Optional | Indicates if the onboarding is completed for the user | -| `firstLogin` | `number \| undefined` | Optional | Indicates if the use is logging in for the first time | -| `welcomeEmailSent` | `boolean \| undefined` | Optional | Indicates if the welcome email is sent to email associated with the user account | -| `isDeleted` | `boolean \| undefined` | Optional | Indicates if the user account is deleted | -| `isHidden` | `boolean \| undefined` | Optional | Indicates if the user account is hidden | -| `isExternal` | `boolean \| undefined` | Optional | Indicates if the user account is from external system
isDeprecated | -| `isDeprecated` | `boolean \| undefined` | Optional | - | -| `complete` | `boolean \| undefined` | Optional | Indicates if the all the properties of user account is provided | -| `isSuperUser` | `boolean \| undefined` | Optional | Indicates if the user account is super user | -| `isSystemPrincipal` | `boolean \| undefined` | Optional | Indicates if the user account is system principal | -| `type` | `string \| undefined` | Optional | Indicates the type of user account | -| `parenttype` | `string \| undefined` | Optional | Indicates the type of parent object | -| `tenantId` | `string \| undefined` | Optional | Tenant id associated with the user account | -| `indexVersion` | `number \| undefined` | Optional | - | -| `generationNum` | `number \| undefined` | Optional | - | -| `created` | `number \| undefined` | Optional | Date and time when user account was created | -| `modified` | `number \| undefined` | Optional | Date and time of last modification of user account | -| `author` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `modifiedBy` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | -| `owner` | [`UserNameAndID \| undefined`](../../doc/models/user-name-and-id.md) | Optional | - | - -## Example (as JSON) - -```json -{ - "name": null, - "displayName": null, - "id": null, - "visibility": null, - "mail": null, - "groups": null, - "privileges": null, - "orgs": null, - "tags": null, - "state": null, - "notifyOnShare": null, - "showWalkMe": null, - "analystOnboardingComplete": null, - "firstLogin": null, - "welcomeEmailSent": null, - "isDeleted": null, - "isHidden": null, - "isExternal": null, - "isDeprecated": null, - "complete": null, - "isSuperUser": null, - "isSystemPrincipal": null, - "type": null, - "parenttype": null, - "tenantId": null, - "indexVersion": null, - "generationNum": null, - "created": null, - "modified": null, - "author": null, - "modifiedBy": null, - "owner": null -} -``` - diff --git a/Typescript/doc/models/visibility-1-enum.md b/Typescript/doc/models/visibility-1-enum.md deleted file mode 100644 index ee26b4779..000000000 --- a/Typescript/doc/models/visibility-1-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 1 Enum - -Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. - -## Enumeration - -`Visibility1Enum` - -## Fields - -| Name | -| --- | -| `dEFAULT` | -| `nONSHARABLE` | -| `sHARABLE` | - diff --git a/Typescript/doc/models/visibility-2-enum.md b/Typescript/doc/models/visibility-2-enum.md deleted file mode 100644 index c1f638a93..000000000 --- a/Typescript/doc/models/visibility-2-enum.md +++ /dev/null @@ -1,17 +0,0 @@ - -# Visibility 2 Enum - -Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. - -## Enumeration - -`Visibility2Enum` - -## Fields - -| Name | -| --- | -| `dEFAULT` | -| `nONSHARABLE` | -| `sHARABLE` | - diff --git a/Typescript/doc/models/visibility-enum.md b/Typescript/doc/models/visibility-enum.md deleted file mode 100644 index 05dec14b2..000000000 --- a/Typescript/doc/models/visibility-enum.md +++ /dev/null @@ -1,15 +0,0 @@ - -# Visibility Enum - -## Enumeration - -`VisibilityEnum` - -## Fields - -| Name | -| --- | -| `dEFAULT` | -| `nONSHARABLE` | -| `sHARABLE` | - diff --git a/Typescript/doc/models/viz-type.md b/Typescript/doc/models/viz-type.md deleted file mode 100644 index 18e9fa604..000000000 --- a/Typescript/doc/models/viz-type.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Viz Type - -## Structure - -`VizType` - -## Fields - -| Name | Type | Tags | Description | -| --- | --- | --- | --- | -| `name` | `string \| undefined` | Optional | The name of the visualization | -| `id` | `string \| undefined` | Optional | The GUID of the visualization | -| `querySql` | `string \| undefined` | Optional | SQL query associated with the visualization | - -## Example (as JSON) - -```json -{ - "name": null, - "id": null, - "querySql": null -} -``` - diff --git a/Typescript/jest.config.js b/Typescript/jest.config.js deleted file mode 100644 index e13821fb6..000000000 --- a/Typescript/jest.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - testEnvironment: 'node', - globals: { - "__DEV__": true, - } -}; \ No newline at end of file diff --git a/Typescript/src/authentication.ts b/Typescript/src/authentication.ts deleted file mode 100644 index 96f0cbd37..000000000 --- a/Typescript/src/authentication.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { AUTHORIZATION_HEADER, setHeader } from './core'; -import { passThroughInterceptor } from './core'; -import { AuthenticatorInterface } from './core'; - -/** None authentication provider */ -export const noneAuthenticationProvider = () => passThroughInterceptor; - -export const accessTokenAuthenticationProvider = ({ - accessToken, -}: { - accessToken: string; -}): AuthenticatorInterface => { - return (requiresAuth?: boolean) => { - if (!requiresAuth) { - return passThroughInterceptor; - } - - return (request, options, next) => { - request.headers = request.headers ?? {}; - setHeader(request.headers, AUTHORIZATION_HEADER, `Bearer ${accessToken}`); - - return next(request, options); - }; - }; -}; diff --git a/Typescript/src/client.ts b/Typescript/src/client.ts deleted file mode 100644 index d8521d531..000000000 --- a/Typescript/src/client.ts +++ /dev/null @@ -1,150 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { accessTokenAuthenticationProvider } from './authentication'; -import { - AuthParams, - ClientInterface, - SdkRequestBuilder, - SdkRequestBuilderFactory, - Server, -} from './clientInterface'; -import { Configuration, Environment } from './configuration'; -import { - DEFAULT_CONFIGURATION, - DEFAULT_RETRY_CONFIG, -} from './defaultConfiguration'; -import { ApiError } from './core'; -import { pathTemplate, SkipEncode } from './core'; -import { setHeader } from './core'; -import { updateUserAgent } from './core'; -import { - AuthenticatorInterface, - createRequestBuilderFactory, - HttpClient, - HttpClientInterface, - RetryConfiguration, - XmlSerializerInterface, -} from './core'; -import { XmlSerialization } from './http/xmlSerialization'; - -export class Client implements ClientInterface { - private _config: Readonly; - private _timeout: number; - private _retryConfig: RetryConfiguration; - private _requestBuilderFactory: SdkRequestBuilderFactory; - private _userAgent: string; - - constructor(config?: Partial) { - this._config = { - ...DEFAULT_CONFIGURATION, - ...config, - }; - this._retryConfig = { - ...DEFAULT_RETRY_CONFIG, - ...this._config.httpClientOptions?.retryConfig, - }; - this._timeout = - typeof this._config.httpClientOptions?.timeout != 'undefined' - ? this._config.httpClientOptions.timeout - : this._config.timeout; - this._userAgent = updateUserAgent( - 'RestAPI V2 SDK', - ); - this._requestBuilderFactory = createRequestHandlerFactory( - server => getBaseUri(server, this._config), - accessTokenAuthenticationProvider(this._config), - new HttpClient({ - timeout: this._timeout, - clientConfigOverrides: this._config.unstable_httpClientOptions, - httpAgent: this._config.httpClientOptions?.httpAgent, - httpsAgent: this._config.httpClientOptions?.httpsAgent, - }), - [ - withErrorHandlers, - withUserAgent(this._userAgent), - withAuthenticationByDefault, - ], - new XmlSerialization(), - this._retryConfig - ); - } - - public getRequestBuilderFactory(): SdkRequestBuilderFactory { - return this._requestBuilderFactory; - } - - /** - * Clone this client and override given configuration options - */ - public withConfiguration(config: Partial) { - return new Client({ ...this._config, ...config }); - } -} - -function createHttpClientAdapter(client: HttpClient): HttpClientInterface { - return async (request, requestOptions) => { - return await client.executeRequest(request, requestOptions); - }; -} - -function getBaseUri(server: Server = 'default', config: Configuration): string { - if (config.environment === Environment.Production) { - if (server === 'default') { - return pathTemplate`${new SkipEncode(config.baseUrl)}`; - } - } - throw new Error('Could not get Base URL. Invalid environment or server.'); -} - -function createRequestHandlerFactory( - baseUrlProvider: (server?: Server) => string, - authProvider: AuthenticatorInterface, - httpClient: HttpClient, - addons: ((rb: SdkRequestBuilder) => void)[], - xmlSerializer: XmlSerializerInterface, - retryConfig: RetryConfiguration -): SdkRequestBuilderFactory { - const requestBuilderFactory = createRequestBuilderFactory( - createHttpClientAdapter(httpClient), - baseUrlProvider, - ApiError, - authProvider, - xmlSerializer, - retryConfig - ); - - return tap(requestBuilderFactory, ...addons); -} - -function tap( - requestBuilderFactory: SdkRequestBuilderFactory, - ...callback: ((requestBuilder: SdkRequestBuilder) => void)[] -): SdkRequestBuilderFactory { - return (...args) => { - const requestBuilder = requestBuilderFactory(...args); - callback.forEach(c => c(requestBuilder)); - return requestBuilder; - }; -} - -function withErrorHandlers(rb: SdkRequestBuilder) { - rb.defaultToError(ApiError); -} - -function withUserAgent(userAgent: string) { - return (rb: SdkRequestBuilder) => { - rb.interceptRequest(request => { - const headers = request.headers ?? {}; - setHeader(headers, 'user-agent', userAgent); - return { ...request, headers }; - }); - }; -} - -function withAuthenticationByDefault(rb: SdkRequestBuilder) { - rb.authenticate(true); -} diff --git a/Typescript/src/clientInterface.ts b/Typescript/src/clientInterface.ts deleted file mode 100644 index c3ec27d59..000000000 --- a/Typescript/src/clientInterface.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { RequestBuilderFactory } from './core'; - -export interface ClientInterface { - getRequestBuilderFactory(): SdkRequestBuilderFactory; -} - -export type SdkRequestBuilderFactory = RequestBuilderFactory< - Server, - AuthParams ->; - -export type SdkRequestBuilder = ReturnType; - -export type Server = 'default'; - -export type AuthParams = boolean; diff --git a/Typescript/src/configuration.ts b/Typescript/src/configuration.ts deleted file mode 100644 index 7571c2aa2..000000000 --- a/Typescript/src/configuration.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { HttpClientOptions } from './core'; - -/** An interface for all configuration parameters required by the SDK. */ -export interface Configuration { - timeout: number; - environment: Environment; - baseUrl: string; - accessToken: string; - httpClientOptions?: Partial; - unstable_httpClientOptions?: any; -} - -/** Environments available for API */ -export enum Environment { - Production = 'production', -} diff --git a/Typescript/src/controllers/adminController.ts b/Typescript/src/controllers/adminController.ts deleted file mode 100644 index c7d30d97a..000000000 --- a/Typescript/src/controllers/adminController.ts +++ /dev/null @@ -1,205 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - AdminsyncPrincipalResponse, - adminsyncPrincipalResponseSchema, -} from '../models/adminsyncPrincipalResponse'; -import { - TspublicRestV2AdminAssignauthorRequest, - tspublicRestV2AdminAssignauthorRequestSchema, -} from '../models/tspublicRestV2AdminAssignauthorRequest'; -import { - TspublicRestV2AdminChangeauthorRequest, - tspublicRestV2AdminChangeauthorRequestSchema, -} from '../models/tspublicRestV2AdminChangeauthorRequest'; -import { - TspublicRestV2AdminConfigurationUpdateRequest, - tspublicRestV2AdminConfigurationUpdateRequestSchema, -} from '../models/tspublicRestV2AdminConfigurationUpdateRequest'; -import { - TspublicRestV2AdminForcelogoutRequest, - tspublicRestV2AdminForcelogoutRequestSchema, -} from '../models/tspublicRestV2AdminForcelogoutRequest'; -import { - TspublicRestV2AdminResetpasswordRequest, - tspublicRestV2AdminResetpasswordRequestSchema, -} from '../models/tspublicRestV2AdminResetpasswordRequest'; -import { - TspublicRestV2AdminSyncprincipalRequest, - tspublicRestV2AdminSyncprincipalRequestSchema, -} from '../models/tspublicRestV2AdminSyncprincipalRequest'; -import { boolean } from '../schema'; -import { BaseController } from './baseController'; - -export class AdminController extends BaseController { - /** - * To update the Thoughtspot cluster configuration, use this endpoint. - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateClusterConfig( - body: TspublicRestV2AdminConfigurationUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/admin/configuration/update' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2AdminConfigurationUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To reset the password of a ThoughtSpot user account, use this endpoint. - * - * It is mandatory to use Authorization header with token of a user with admin access to successfully - * run this endpoint. - * - * At least one of User Id or username is mandatory. When both are given, then user id will be - * considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2ResetUserPassword( - body: TspublicRestV2AdminResetpasswordRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/admin/resetpassword' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2AdminResetpasswordRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, - * use this endpoint. - * - * The payload takes principals containing all users and groups present in the external system. - * - * The users and user groups in Thoughtspot get updated for any matching inputs. - * - * Any user and user group present in the input, but not present in the cluster, gets created in - * cluster. - * n You can optionally choose to delete the user and groups from the cluster, that are not present in - * the input. - * - * @param body - * @return Response from the API call - */ - async restapiV2SyncPrincipal( - body: TspublicRestV2AdminSyncprincipalRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/admin/syncprincipal' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2AdminSyncprincipalRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(adminsyncPrincipalResponseSchema, requestOptions); - } - - /** - * To programmatically change the owner of one or several objects from one user account to another, use - * this endpoint. - * - * You might want to transfer ownership of objects owned by a user to another active user, when the - * account is removed from the ThoughtSpot application. - * - * @param body - * @return Response from the API call - */ - async restapiV2ChangeAuthorOfObjects( - body: TspublicRestV2AdminChangeauthorRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/admin/changeauthor' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2AdminChangeauthorRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically assign an author to one or several objects, use this endpoint. - * - * Provide either user name or id as input. When both are given user id will be considered. - * - * Requires administration privilege. - * - * @param body - * @return Response from the API call - */ - async restapiV2AssignAuthorToObjects( - body: TspublicRestV2AdminAssignauthorRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/admin/assignauthor' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2AdminAssignauthorRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To logout one or more users from logged in session, use this endpoint. If no input is provided then - * all logged in users are force logged out. - * - * Requires administration privilege - * - * @param body - * @return Response from the API call - */ - async restapiV2ForceLogoutUsers( - body: TspublicRestV2AdminForcelogoutRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/admin/forcelogout' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2AdminForcelogoutRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } -} diff --git a/Typescript/src/controllers/baseController.ts b/Typescript/src/controllers/baseController.ts deleted file mode 100644 index 034ade0de..000000000 --- a/Typescript/src/controllers/baseController.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ClientInterface, SdkRequestBuilderFactory } from '../clientInterface'; - -/** Base class for all controllers */ -export class BaseController { - /** Create a request builder */ - protected createRequest: SdkRequestBuilderFactory; - - constructor(client: ClientInterface) { - this.createRequest = client.getRequestBuilderFactory(); - } -} diff --git a/Typescript/src/controllers/connectionController.ts b/Typescript/src/controllers/connectionController.ts deleted file mode 100644 index b452130a6..000000000 --- a/Typescript/src/controllers/connectionController.ts +++ /dev/null @@ -1,296 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - ConnectionResponse, - connectionResponseSchema, -} from '../models/connectionResponse'; -import { - ConnectionTableColumnsResponse, - connectionTableColumnsResponseSchema, -} from '../models/connectionTableColumnsResponse'; -import { - ConnectionTableResponse, - connectionTableResponseSchema, -} from '../models/connectionTableResponse'; -import { - CreateConnectionResponse, - createConnectionResponseSchema, -} from '../models/createConnectionResponse'; -import { - TspublicRestV2ConnectionAddtableRequest, - tspublicRestV2ConnectionAddtableRequestSchema, -} from '../models/tspublicRestV2ConnectionAddtableRequest'; -import { - TspublicRestV2ConnectionCreateRequest, - tspublicRestV2ConnectionCreateRequestSchema, -} from '../models/tspublicRestV2ConnectionCreateRequest'; -import { - TspublicRestV2ConnectionRemovetableRequest, - tspublicRestV2ConnectionRemovetableRequestSchema, -} from '../models/tspublicRestV2ConnectionRemovetableRequest'; -import { - TspublicRestV2ConnectionSearchRequest, - tspublicRestV2ConnectionSearchRequestSchema, -} from '../models/tspublicRestV2ConnectionSearchRequest'; -import { - TspublicRestV2ConnectionTablecoloumnRequest, - tspublicRestV2ConnectionTablecoloumnRequestSchema, -} from '../models/tspublicRestV2ConnectionTablecoloumnRequest'; -import { - TspublicRestV2ConnectionTableRequest, - tspublicRestV2ConnectionTableRequestSchema, -} from '../models/tspublicRestV2ConnectionTableRequest'; -import { - TspublicRestV2ConnectionUpdateRequest, - tspublicRestV2ConnectionUpdateRequestSchema, -} from '../models/tspublicRestV2ConnectionUpdateRequest'; -import { array, boolean, string } from '../schema'; -import { BaseController } from './baseController'; - -export class ConnectionController extends BaseController { - /** - * To get the details of a specific connection use this endpoint - * - * @param id The GUID of the connection to query - * @return Response from the API call - */ - async restapiV2GetConnection( - id: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/connection'); - const mapped = req.prepareArgs({ id: [id, string()] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(connectionResponseSchema, requestOptions); - } - - /** - * To get the list of databases for a connection, use this endpoint. - * - * The response will include databases from the data platform corresponding to the connection id - * provided. - * - * @param id The GUID of the connection - * @return Response from the API call - */ - async restapiV2GetConnectionDatabase( - id: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/connection/database' - ); - const mapped = req.prepareArgs({ id: [id, string()] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(string()), requestOptions); - } - - /** - * To programmatically create a connection in the ThoughtSpot system use this API endpoint. - * Using this API, you can create a connection and assign groups. - * To create a connection, you require admin connection privileges. - * All connections created in the ThoughtSpot system are added to ALL_GROUP - * - * @param body - * @return Response from the API call - */ - async restapiV2CreateConnection( - body: TspublicRestV2ConnectionCreateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/connection/create' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2ConnectionCreateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(createConnectionResponseSchema, requestOptions); - } - - /** - * You can use this endpoint to programmatically modify an existing connection - * To modify a connection, you require admin connection privileges. - * At least one of Connection Id or connectionname is mandatory. When both are given, then connection - * id will be considered and connectionname will be updated - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateConnection( - body: TspublicRestV2ConnectionUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/connection/update' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2ConnectionUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To remove a connection from the ThoughtSpot system, use this endpoint. - * - * @param id A JSON array of GUIDs of the connection - * @return Response from the API call - */ - async restapiV2DeleteConnection( - id: string[], - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'DELETE', - '/tspublic/rest/v2/connection/delete' - ); - const mapped = req.prepareArgs({ id: [id, array(string())] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically add table to an existing connection use this endpoint. - * When you assign groups to a connection, the connection inherits the privileges assigned to those - * groups. - * At least one of Connection Id or connectionname is mandatory. When both are given, then connection - * id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AddTableToConnection( - body: TspublicRestV2ConnectionAddtableRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/connection/addtable' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2ConnectionAddtableRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically remove a table from a connection use API endpoint. - * The API removes only the connection association. It does not delete the connection or group from the - * Thoughtspot system. - * At least one of id or name of connection is required. When both are given connection id will be - * considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2RemoveTableFromConnection( - body: TspublicRestV2ConnectionRemovetableRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/connection/removetable' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2ConnectionRemovetableRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To get the details of a specific connection or all connections in the ThoughtSpot system use this - * end point. - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchConnection( - body: TspublicRestV2ConnectionSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/connection/search' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2ConnectionSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(connectionResponseSchema), requestOptions); - } - - /** - * To get the details of tables from a connection, use this endpoint. - * - * You can get the details of tables in the data platform for the connection id provided. - * - * @param body - * @return Response from the API call - */ - async restapiV2GetConnectionTables( - body: TspublicRestV2ConnectionTableRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/connection/table' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2ConnectionTableRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(connectionTableResponseSchema, requestOptions); - } - - /** - * To get the details of columns in a table associated to a connection, use this endpoint. - * - * You can get the columns of any table available in the data platform for the connection id provided. - * - * @param body - * @return Response from the API call - */ - async restapiV2GetConnectionTableColumns( - body: TspublicRestV2ConnectionTablecoloumnRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/connection/tablecoloumn' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2ConnectionTablecoloumnRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(connectionTableColumnsResponseSchema, requestOptions); - } -} diff --git a/Typescript/src/controllers/customActionsController.ts b/Typescript/src/controllers/customActionsController.ts deleted file mode 100644 index a97c9c236..000000000 --- a/Typescript/src/controllers/customActionsController.ts +++ /dev/null @@ -1,212 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - TspublicRestV2CustomactionAssociationUpdateRequest, - tspublicRestV2CustomactionAssociationUpdateRequestSchema, -} from '../models/tspublicRestV2CustomactionAssociationUpdateRequest'; -import { - TspublicRestV2CustomactionCreateRequest, - tspublicRestV2CustomactionCreateRequestSchema, -} from '../models/tspublicRestV2CustomactionCreateRequest'; -import { - TspublicRestV2CustomactionSearchRequest, - tspublicRestV2CustomactionSearchRequestSchema, -} from '../models/tspublicRestV2CustomactionSearchRequest'; -import { - TspublicRestV2CustomactionUpdateRequest, - tspublicRestV2CustomactionUpdateRequestSchema, -} from '../models/tspublicRestV2CustomactionUpdateRequest'; -import { string, unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class CustomActionsController extends BaseController { - /** - * To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint - * - * @param id GUID of the custom action - * @return Response from the API call - */ - async restapiV2GetCustomAction( - id: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/customaction'); - const mapped = req.prepareArgs({ id: [id, string()] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To search custom actions available on a ThoughtSpot instance, use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchCustomAction( - body: TspublicRestV2CustomactionSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/customaction/search' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2CustomactionSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the - * details of the ThoughtSpot objects associated with a custom action, use this endpoint. - * - * @param id GUID of the custom action - * @return Response from the API call - */ - async restapiV2GetCustomActionAssociation( - id: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/customaction/association' - ); - const mapped = req.prepareArgs({ id: [id, string()] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To programmatically create custom actions on ThoughtSpot clusters that support embedding - * configuration, use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2CreateCustomAction( - body: TspublicRestV2CustomactionCreateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/customaction/create' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2CustomactionCreateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To programmatically edit an existing custom action, use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateCustomAction( - body: TspublicRestV2CustomactionUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/customaction/update' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2CustomactionUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To programmatically delete a custom action, use this endpoint - * - * @param id GUID of the custom action - * @return Response from the API call - */ - async restapiV2DeleteCustomAction( - id: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'DELETE', - '/tspublic/rest/v2/customaction/delete' - ); - const mapped = req.prepareArgs({ id: [id, string()] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To programmatically associate a custom action to a ThoughtSpot object, use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateCustomActionAssociation( - body: TspublicRestV2CustomactionAssociationUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/customaction/association/update' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2CustomactionAssociationUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To remove custom action associations to ThoughtSpot objects, use this endpoint - * - * @param id GUID of the custom action - * @param association A JSON map of the attributes with association of the action to ThoughtSpot object ID - * Example: {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet - * action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function": - * "my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X- - * API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap": - * {"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context": - * "PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a- - * 8327-a30e99bcc72b"]} - * @return Response from the API call - */ - async restapiV2DeleteCustomActionAssociation( - id: string, - association: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'DELETE', - '/tspublic/rest/v2/customactions/association/delete' - ); - const mapped = req.prepareArgs({ - id: [id, string()], - association: [association, string()], - }); - req.query('id', mapped.id); - req.query('association', mapped.association); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } -} diff --git a/Typescript/src/controllers/dataController.ts b/Typescript/src/controllers/dataController.ts deleted file mode 100644 index 9e9bfd20b..000000000 --- a/Typescript/src/controllers/dataController.ts +++ /dev/null @@ -1,141 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - AnswerQueryResponse, - answerQueryResponseSchema, -} from '../models/answerQueryResponse'; -import { - LiveboardQueryResponse, - liveboardQueryResponseSchema, -} from '../models/liveboardQueryResponse'; -import { - TspublicRestV2DataAnswerRequest, - tspublicRestV2DataAnswerRequestSchema, -} from '../models/tspublicRestV2DataAnswerRequest'; -import { - TspublicRestV2DataLiveboardRequest, - tspublicRestV2DataLiveboardRequestSchema, -} from '../models/tspublicRestV2DataLiveboardRequest'; -import { - TspublicRestV2DataSearchRequest, - tspublicRestV2DataSearchRequestSchema, -} from '../models/tspublicRestV2DataSearchRequest'; -import { array, optional, string, unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class DataController extends BaseController { - /** - * To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchQueryData( - body: TspublicRestV2DataSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/data/search'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2DataSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use - * this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2LiveboardData( - body: TspublicRestV2DataLiveboardRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/data/liveboard'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2DataLiveboardRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2AnswerData( - body: TspublicRestV2DataAnswerRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/data/answer'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2DataAnswerRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To retrieve the query SQL related to an Answer that is run on the data platform, you can use this - * endpoint - * - * @param id The GUID of the Answer - * @return Response from the API call - */ - async restapiV2AnswerQuerySql( - id: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/data/answer/querysql' - ); - const mapped = req.prepareArgs({ id: [id, string()] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(answerQueryResponseSchema, requestOptions); - } - - /** - * To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, - * you can use this endpoint - * - * @param id The GUID of the Answer - * @param vizId A JSON array of GUIDs of the visualizations in the Liveboard. - * @return Response from the API call - */ - async restapiV2LiveboardQuerySql( - id: string, - vizId?: string[], - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/data/liveboard/querysql' - ); - const mapped = req.prepareArgs({ - id: [id, string()], - vizId: [vizId, optional(array(string()))], - }); - req.query('id', mapped.id); - req.query('vizId', mapped.vizId); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(liveboardQueryResponseSchema, requestOptions); - } -} diff --git a/Typescript/src/controllers/databaseController.ts b/Typescript/src/controllers/databaseController.ts deleted file mode 100644 index 3433c68b8..000000000 --- a/Typescript/src/controllers/databaseController.ts +++ /dev/null @@ -1,143 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - CreateTableResponse, - createTableResponseSchema, -} from '../models/createTableResponse'; -import { - TspublicRestV2DatabaseTableCreateRequest, - tspublicRestV2DatabaseTableCreateRequestSchema, -} from '../models/tspublicRestV2DatabaseTableCreateRequest'; -import { - TspublicRestV2DatabaseTableRunqueryRequest, - tspublicRestV2DatabaseTableRunqueryRequestSchema, -} from '../models/tspublicRestV2DatabaseTableRunqueryRequest'; -import { array, optional, string, unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class DatabaseController extends BaseController { - /** - * To list all the schemas in a database in Falcon, use this endpoint. - * - * @param database Name of the Falcon database - * @return Response from the API call - */ - async restapiV2GetSchemas( - database: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/database/schema'); - const mapped = req.prepareArgs({ database: [database, string()] }); - req.query('database', mapped.database); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(string()), requestOptions); - } - - /** - * To list all the tables in a schema of a database in Falcon, use this endpoint. - * - * @param database Name of the Falcon database - * @param schema Name of the schema in Falcon database - * @return Response from the API call - */ - async restapiV2GetTables( - database: string, - schema: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/database/table'); - const mapped = req.prepareArgs({ - database: [database, string()], - schema: [schema, string()], - }); - req.query('database', mapped.database); - req.query('schema', mapped.schema); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(string()), requestOptions); - } - - /** - * Note: This endpoint is applicable only for on-prem deployments. - * - * To provide details of a table in a schema of a database in Falcon, use this endpoint. - * - * @param database Name of the Falcon database - * @param table Name of the table in Falcon database - * @param schema Name of the schema in Falcon database - * @return Response from the API call - */ - async restapiV2GetTableDetails( - database: string, - table: string, - schema?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/database/table/detail' - ); - const mapped = req.prepareArgs({ - database: [database, string()], - table: [table, string()], - schema: [schema, optional(string())], - }); - req.query('database', mapped.database); - req.query('table', mapped.table); - req.query('schema', mapped.schema); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To create a table in Falcon, use this endpoint. - * - * @param body - * @return Response from the API call - */ - async restapiV2CreateTable( - body: TspublicRestV2DatabaseTableCreateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/database/table/create' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2DatabaseTableCreateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(createTableResponseSchema, requestOptions); - } - - /** - * To run a TQL statement in Falcon, use this endpoint. You can run only following type of statements - - * Table DDL alter and Table rows update and delete. - * - * @param body - * @return Response from the API call - */ - async restapiV2RunQuery( - body: TspublicRestV2DatabaseTableRunqueryRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/database/table/runquery' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2DatabaseTableRunqueryRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(unknown()), requestOptions); - } -} diff --git a/Typescript/src/controllers/groupController.ts b/Typescript/src/controllers/groupController.ts deleted file mode 100644 index 9c1004d59..000000000 --- a/Typescript/src/controllers/groupController.ts +++ /dev/null @@ -1,308 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { GroupResponse, groupResponseSchema } from '../models/groupResponse'; -import { - TspublicRestV2GroupAddgroupRequest, - tspublicRestV2GroupAddgroupRequestSchema, -} from '../models/tspublicRestV2GroupAddgroupRequest'; -import { - TspublicRestV2GroupAddprivilegeRequest, - tspublicRestV2GroupAddprivilegeRequestSchema, -} from '../models/tspublicRestV2GroupAddprivilegeRequest'; -import { - TspublicRestV2GroupAdduserRequest, - tspublicRestV2GroupAdduserRequestSchema, -} from '../models/tspublicRestV2GroupAdduserRequest'; -import { - TspublicRestV2GroupCreateRequest, - tspublicRestV2GroupCreateRequestSchema, -} from '../models/tspublicRestV2GroupCreateRequest'; -import { - TspublicRestV2GroupRemovegroupRequest, - tspublicRestV2GroupRemovegroupRequestSchema, -} from '../models/tspublicRestV2GroupRemovegroupRequest'; -import { - TspublicRestV2GroupRemoveprivilegeRequest, - tspublicRestV2GroupRemoveprivilegeRequestSchema, -} from '../models/tspublicRestV2GroupRemoveprivilegeRequest'; -import { - TspublicRestV2GroupRemoveuserRequest, - tspublicRestV2GroupRemoveuserRequestSchema, -} from '../models/tspublicRestV2GroupRemoveuserRequest'; -import { - TspublicRestV2GroupSearchRequest, - tspublicRestV2GroupSearchRequestSchema, -} from '../models/tspublicRestV2GroupSearchRequest'; -import { - TspublicRestV2GroupUpdateRequest, - tspublicRestV2GroupUpdateRequestSchema, -} from '../models/tspublicRestV2GroupUpdateRequest'; -import { boolean, optional, string, unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class GroupController extends BaseController { - /** - * To get the details of a specific group by name or id, use this endpoint. - * At Least one value needed. When both are given id will be considered to fetch user information. - * - * @param name Name of the group - * @param id The GUID of the group to query. - * @return Response from the API call - */ - async restapiV2GetGroup( - name?: string, - id?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/group'); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(string())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(groupResponseSchema, requestOptions); - } - - /** - * To programmatically create a group in the ThoughtSpot system, use this API endpoint. Using this API, - * you can create a group and assign privileges and users. For ease of user management and access - * control, ThoughtSpot administrators can create groups and assign privileges to these groups. The - * privileges determine the actions that the users belonging to a group are allowed to do. ThoughtSpot - * also has a default group called ALL_GROUP. When you create new group in ThoughtSpot, they are - * automatically added to ALL_GROUP. You cannot delete the ALL_GROUP or remove members from it. - * - * @param body - * @return Response from the API call - */ - async restapiV2CreateGroup( - body: TspublicRestV2GroupCreateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/group/create'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupCreateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(groupResponseSchema, requestOptions); - } - - /** - * You can use this endpoint to programmatically modify an existing user account. - * To modify a user, you require admin user privileges. - * At least one of User Id or username is mandatory. When both are given, then user id will be - * considered and username will be updated - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateGroup( - body: TspublicRestV2GroupUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/group/update'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. At Least one - * value needed. When both are given user id will be considered to fetch user information. - * - * @param name Name of the group. - * @param id The GUID of the group - * @return Response from the API call - */ - async restapiV2DeleteGroup( - name?: string, - id?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('DELETE', '/tspublic/rest/v2/group/delete'); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(string())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically add privileges to an existing group, use API endpoint. - * When you assign privileges to a group, all the users under to this group inherits the privileges - * assigned to that group. - * At least one of id or name of group is required. When both are given user id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AddPrivilegesToGroup( - body: TspublicRestV2GroupAddprivilegeRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/group/addprivilege' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupAddprivilegeRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically remove privileges from a group, use API endpoint. The API removes only the - * privilege association. It does not delete the privilege or group from the Thoughtspot system. At - * least one of id or name of group is required. When both are given user id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2RemovePrivilegesFromGroup( - body: TspublicRestV2GroupRemoveprivilegeRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/group/removeprivilege' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupRemoveprivilegeRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically add existing ThoughtSpot users to a group, use this API endpoint. When you - * assign users to a group, the users inherits the privileges assigned to that group. At least one of - * id or name of the group is required. When both are given user id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AddUsersToGroup( - body: TspublicRestV2GroupAdduserRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/group/adduser'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupAdduserRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically remove users from a group, use API endpoint.The API removes only the user - * association. It does not delete the users or group from the Thoughtspot system. At least one of id - * or name of group is required. When both are given user id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2RemoveUsersFromGroup( - body: TspublicRestV2GroupRemoveuserRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/group/removeuser'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupRemoveuserRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically add existing groups to a group, use API endpoint. When you assign groups to a - * group, the group inherits the privileges assigned to those groups. At least one of id or name of - * group is required. When both are given user id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AddGroupsToGroup( - body: TspublicRestV2GroupAddgroupRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/group/addgroup'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupAddgroupRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically remove groups from a group, use API endpoint.The API removes only the group - * association. It does not delete the group from the Thoughtspot system. At least one of id or name of - * group is required. When both are given user id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2RemoveGroupsFromGroup( - body: TspublicRestV2GroupRemovegroupRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/group/removegroup' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupRemovegroupRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To get the details of a specific group account or all groups in the ThoughtSpot system, use this end - * point. - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchGroups( - body: TspublicRestV2GroupSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/group/search'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2GroupSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } -} diff --git a/Typescript/src/controllers/logsController.ts b/Typescript/src/controllers/logsController.ts deleted file mode 100644 index 3d03aa7c2..000000000 --- a/Typescript/src/controllers/logsController.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { LogsResponse, logsResponseSchema } from '../models/logsResponse'; -import { TopicEnum, topicEnumSchema } from '../models/topicEnum'; -import { optional, string } from '../schema'; -import { BaseController } from './baseController'; - -export class LogsController extends BaseController { - /** - * Note: This endpoint is applicable only for SAAS deployments. - * - * The ThoughtSpot log streaming service API allows you to programmatically get a security audit event - * log from the ThoughtSpot system. - * - * To use this API, make sure you have admin user privileges. - * - * ThoughtSpot cloud deployments allow you to collect security audit events and send them to your - * Security information and event management (SIEM) application in real-time. - * - * These events can help your security operations personnel to detect potential security threats or - * compromised user accounts in your organization. - * - * @param topic Type of the log - * @param fromEpoch The EPOCH time in milliseconds to set the start time for streaming logs. Example: - * To set the timestamp as June 1, 2021 8 am, specify 1622534400000. - * @param toEpoch The EPOCH time in milliseconds to set the end time for streaming logs. Example: - * To set the timestamp as July 1, 2021, 8 am, specify 1625126400000. - * @return Response from the API call - */ - async restapiV2GetLogEvents( - topic: TopicEnum, - fromEpoch?: string, - toEpoch?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/logs/events'); - const mapped = req.prepareArgs({ - topic: [topic, topicEnumSchema], - fromEpoch: [fromEpoch, optional(string())], - toEpoch: [toEpoch, optional(string())], - }); - req.query('topic', mapped.topic); - req.query('fromEpoch', mapped.fromEpoch); - req.query('toEpoch', mapped.toEpoch); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(logsResponseSchema, requestOptions); - } -} diff --git a/Typescript/src/controllers/materializationController.ts b/Typescript/src/controllers/materializationController.ts deleted file mode 100644 index 3735d634c..000000000 --- a/Typescript/src/controllers/materializationController.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - TspublicRestV2MaterializationRefreshviewRequest, - tspublicRestV2MaterializationRefreshviewRequestSchema, -} from '../models/tspublicRestV2MaterializationRefreshviewRequest'; -import { unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class MaterializationController extends BaseController { - /** - * Use this endpoint to refresh data in the materialized view by running the query associated with it - * - * @param body - * @return Response from the API call - */ - async restapiV2RefreshMaterializedView( - body: TspublicRestV2MaterializationRefreshviewRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/materialization/refreshview' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MaterializationRefreshviewRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } -} diff --git a/Typescript/src/controllers/metadataController.ts b/Typescript/src/controllers/metadataController.ts deleted file mode 100644 index 5f518e7d8..000000000 --- a/Typescript/src/controllers/metadataController.ts +++ /dev/null @@ -1,569 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - HomeLiveboardResponse, - homeLiveboardResponseSchema, -} from '../models/homeLiveboardResponse'; -import { - MetadataTagResponse, - metadataTagResponseSchema, -} from '../models/metadataTagResponse'; -import { - TspublicRestV2MetadataDependencyRequest, - tspublicRestV2MetadataDependencyRequestSchema, -} from '../models/tspublicRestV2MetadataDependencyRequest'; -import { - TspublicRestV2MetadataDetailSearchRequest, - tspublicRestV2MetadataDetailSearchRequestSchema, -} from '../models/tspublicRestV2MetadataDetailSearchRequest'; -import { - TspublicRestV2MetadataFavoriteAssignRequest, - tspublicRestV2MetadataFavoriteAssignRequestSchema, -} from '../models/tspublicRestV2MetadataFavoriteAssignRequest'; -import { - TspublicRestV2MetadataFavoriteUnassignRequest, - tspublicRestV2MetadataFavoriteUnassignRequestSchema, -} from '../models/tspublicRestV2MetadataFavoriteUnassignRequest'; -import { - TspublicRestV2MetadataHeaderSearchRequest, - tspublicRestV2MetadataHeaderSearchRequestSchema, -} from '../models/tspublicRestV2MetadataHeaderSearchRequest'; -import { - TspublicRestV2MetadataHomeliveboardAssignRequest, - tspublicRestV2MetadataHomeliveboardAssignRequestSchema, -} from '../models/tspublicRestV2MetadataHomeliveboardAssignRequest'; -import { - TspublicRestV2MetadataHomeliveboardUnassignRequest, - tspublicRestV2MetadataHomeliveboardUnassignRequestSchema, -} from '../models/tspublicRestV2MetadataHomeliveboardUnassignRequest'; -import { - TspublicRestV2MetadataTagAssignRequest, - tspublicRestV2MetadataTagAssignRequestSchema, -} from '../models/tspublicRestV2MetadataTagAssignRequest'; -import { - TspublicRestV2MetadataTagCreateRequest, - tspublicRestV2MetadataTagCreateRequestSchema, -} from '../models/tspublicRestV2MetadataTagCreateRequest'; -import { - TspublicRestV2MetadataTagUnassignRequest, - tspublicRestV2MetadataTagUnassignRequestSchema, -} from '../models/tspublicRestV2MetadataTagUnassignRequest'; -import { - TspublicRestV2MetadataTagUpdateRequest, - tspublicRestV2MetadataTagUpdateRequestSchema, -} from '../models/tspublicRestV2MetadataTagUpdateRequest'; -import { - TspublicRestV2MetadataTmlExportRequest, - tspublicRestV2MetadataTmlExportRequestSchema, -} from '../models/tspublicRestV2MetadataTmlExportRequest'; -import { - TspublicRestV2MetadataTmlImportRequest, - tspublicRestV2MetadataTmlImportRequestSchema, -} from '../models/tspublicRestV2MetadataTmlImportRequest'; -import { Type4Enum, type4EnumSchema } from '../models/type4Enum'; -import { Type5Enum, type5EnumSchema } from '../models/type5Enum'; -import { array, boolean, optional, string, unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class MetadataController extends BaseController { - /** - * To get details of a specific tag, use this endpoint. At least one of id or name of tag is required. - * When both are given, then id will be considered. - * - * @param name Name of the tag - * @param id The GUID of the tag - * @return Response from the API call - */ - async restapiV2GetTag( - name?: string, - id?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/metadata/tag'); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(string())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(metadataTagResponseSchema, requestOptions); - } - - /** - * To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. - * At least one of user id or username is required. When both are given, then id will be considered. - * - * @param userName Name of the tag - * @param userId The GUID of the tag - * @return Response from the API call - */ - async restapiV2GetHomeLiveboard( - userName?: string, - userId?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/metadata/homeliveboard' - ); - const mapped = req.prepareArgs({ - userName: [userName, optional(string())], - userId: [userId, optional(string())], - }); - req.query('userName', mapped.userName); - req.query('userId', mapped.userId); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(homeLiveboardResponseSchema, requestOptions); - } - - /** - * To get header details for metadata objects, use this endpoint. You can provide as input selective - * fields to get the data for. - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchObjectHeader( - body: TspublicRestV2MetadataHeaderSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/metadata/header/search' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataHeaderSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * Use this endpoint to get header details of visualization charts for a given liveboard or answer. At - * least one of id or name of liveboard or answer is required. When both are given, then id will be - * considered. - * - * @param id The GUID of the liveboard or answer - * @return Response from the API call - */ - async restapiV2GetObjectVisualizationHeader( - id: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/metadata/vizheader' - ); - const mapped = req.prepareArgs({ id: [id, string()] }); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(unknown()), requestOptions); - } - - /** - * Use this endpoint to get full details of metadata objects - * - * @param type Type of the metadata object being searched. - * @param id A JSON array of GUIDs of the objects. - * @return Response from the API call - */ - async restapiV2GetObjectDetail( - type: Type4Enum, - id: string[], - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/metadata/detail'); - const mapped = req.prepareArgs({ - type: [type, type4EnumSchema], - id: [id, array(string())], - }); - req.query('type', mapped.type); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To get header detail of a metadata object, use this endpoint. You can provide as input selective - * fields to get the data for. - * - * @param type Type of the metadata object being searched. - * @param id GUID of the metadata object - * @param outputFields Array of header field names that need to be included in the header response - * @return Response from the API call - */ - async restapiV2GetObjectHeader( - type: Type5Enum, - id: string, - outputFields?: string[], - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/metadata/header'); - const mapped = req.prepareArgs({ - type: [type, type5EnumSchema], - id: [id, string()], - outputFields: [outputFields, optional(array(string()))], - }); - req.query('type', mapped.type); - req.query('id', mapped.id); - req.query('outputFields', mapped.outputFields); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * Use this endpoint to get full details of metadata objects - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchObjectDetail( - body: TspublicRestV2MetadataDetailSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/metadata/detail/search' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataDetailSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To programmatically create tags, use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2CreateTag( - body: TspublicRestV2MetadataTagCreateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/metadata/tag/create' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataTagCreateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(metadataTagResponseSchema, requestOptions); - } - - /** - * To programmatically update tags, use this endpoint. At least one of id or name of tag is required. - * When both are given, then id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateTag( - body: TspublicRestV2MetadataTagUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/metadata/tag/update' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataTagUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically delete tags, use this endpoint. At least one of id or name of tag is required. - * When both are given, then id will be considered. - * - * @param name Name of the tag - * @param id The GUID of the tag - * @return Response from the API call - */ - async restapiV2DeleteTag( - name?: string, - id?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'DELETE', - '/tspublic/rest/v2/metadata/tag/delete' - ); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(string())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, - * worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are - * given, then id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AssignTag( - body: TspublicRestV2MetadataTagAssignRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/metadata/tag/assign' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataTagAssignRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, - * worksheet, or view, use this endpoint. At least one of id or name of tag is required. When both are - * given, then id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2UnassignTag( - body: TspublicRestV2MetadataTagUnassignRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/metadata/tag/unassign' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataTagUnassignRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically assign objects to favorites for a given user account, use this endpoint. At - * least one of user id or username is required. When both are given, then id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AssignFavorite( - body: TspublicRestV2MetadataFavoriteAssignRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/metadata/favorite/assign' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataFavoriteAssignRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically unassign objects to favorites for a given user account, use this endpoint. At - * least one of user id or username is required. When both are given, then id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2UnassignFavorite( - body: TspublicRestV2MetadataFavoriteUnassignRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/metadata/favorite/unassign' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataFavoriteUnassignRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To assign a specific liveboard as a home liveboard for a user, use this endpoint. At least one of - * user id or username is required. When both are given, then id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AssignHomeLiveboard( - body: TspublicRestV2MetadataHomeliveboardAssignRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/metadata/homeliveboard/assign' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataHomeliveboardAssignRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To unassign the home liveboard set for a user, use this endpoint. At least one of user id or - * username is required. When both are given, then id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2UnassignHomeLiveboard( - body: TspublicRestV2MetadataHomeliveboardUnassignRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/metadata/homeliveboard/unassign' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataHomeliveboardUnassignRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2ExportObjectTML( - body: TspublicRestV2MetadataTmlExportRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/metadata/tml/export' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataTmlExportRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint - * - * @param body - * @return Response from the API call - */ - async restapiV2ImportObjectTML( - body: TspublicRestV2MetadataTmlImportRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/metadata/tml/import' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataTmlImportRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * Use this endpoint to delete the metadata objects - * - * @param type Type of the metadata object being searched - * @param id A JSON array of GUIDs of the objects - * @return Response from the API call - */ - async restapiV2DeleteObject( - type: Type4Enum, - id: string[], - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'DELETE', - '/tspublic/rest/v2/metadata/delete' - ); - const mapped = req.prepareArgs({ - type: [type, type4EnumSchema], - id: [id, array(string())], - }); - req.query('type', mapped.type); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To query the details of dependent objects and associate objects as dependents, you can use this API. - * Dependency is defined as relation between referenced and referencing objects. A referencing object - * is said to have a dependency on a referenced object, if the referenced object cannot be deleted - * without first deleting the referencing object. For example, consider a worksheet 'W1' that has a - * derived logical column 'C1' that has a reference to a base logical column 'C2'. This can be shown - * diagramatically as: W1-->C1-->C2. W1 has a dependency on C2 i.e. W1 is a referencing object and C2 - * is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion - * of C2 will be prevented by the relationship between W1's column C1 and C2. Similarly C1 is said to - * have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not - * possible to delete C2 without first deleting C1 - * - * @param body - * @return Response from the API call - */ - async restapiV2GetObjectDependency( - body: TspublicRestV2MetadataDependencyRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/metadata/dependency' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2MetadataDependencyRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } -} diff --git a/Typescript/src/controllers/orgController.ts b/Typescript/src/controllers/orgController.ts deleted file mode 100644 index e68b6ffc8..000000000 --- a/Typescript/src/controllers/orgController.ts +++ /dev/null @@ -1,152 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { OrgsResponse, orgsResponseSchema } from '../models/orgsResponse'; -import { - TspublicRestV2OrgCreateRequest, - tspublicRestV2OrgCreateRequestSchema, -} from '../models/tspublicRestV2OrgCreateRequest'; -import { - TspublicRestV2OrgSearchRequest, - tspublicRestV2OrgSearchRequestSchema, -} from '../models/tspublicRestV2OrgSearchRequest'; -import { - TspublicRestV2OrgUpdateRequest, - tspublicRestV2OrgUpdateRequestSchema, -} from '../models/tspublicRestV2OrgUpdateRequest'; -import { array, boolean, number, optional, string } from '../schema'; -import { BaseController } from './baseController'; - -export class OrgController extends BaseController { - /** - * To get the details of a specific organization by name or id, use this endpoint. - * - * At least one value needed. When both are given,then id will be considered to fetch organization - * information. - * - * Requires Administration privilege for tenant. - * - * @param name Name of the organization. - * @param id The ID of the organization. - * @return Response from the API call - */ - async restapiV2GetOrg( - name?: string, - id?: number, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/org'); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(number())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(orgsResponseSchema, requestOptions); - } - - /** - * To programmatically create an organization in the ThoughtSpot system, use this API endpoint. - * - * Requires Administration privilege for tenant. - * - * @param body - * @return Response from the API call - */ - async restapiV2CreateOrg( - body: TspublicRestV2OrgCreateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/org/create'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2OrgCreateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(orgsResponseSchema, requestOptions); - } - - /** - * You can use this endpoint to programmatically modify an existing org. - * - * Provide name or id of the organization to update the properties. When both id and name are given, - * then id will be considered and name of the organization will be updated. - * - * Requires Administration privilege for tenant. - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateOrg( - body: TspublicRestV2OrgUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/org/update'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2OrgUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(orgsResponseSchema, requestOptions); - } - - /** - * To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. - * - * At least one value is needed. When both id and name are given, then id will be considered. - * - * Requires Administration privilege for tenant. - * - * @param name Name of the organization. - * @param id The ID of the organization. - * @return Response from the API call - */ - async restapiV2DeleteOrg( - name?: string, - id?: number, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('DELETE', '/tspublic/rest/v2/org/delete'); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(number())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To get the details of a specific organization or all organizations in the ThoughtSpot system use - * this end point. - * - * If no input is provided, then all organizations are included in the response. - * - * Requires Administration privilege for tenant. - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchOrgs( - body: TspublicRestV2OrgSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/org/search'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2OrgSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(orgsResponseSchema), requestOptions); - } -} diff --git a/Typescript/src/controllers/reportController.ts b/Typescript/src/controllers/reportController.ts deleted file mode 100644 index 168202bec..000000000 --- a/Typescript/src/controllers/reportController.ts +++ /dev/null @@ -1,97 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { Type16Enum, type16EnumSchema } from '../models/type16Enum'; -import { array, optional, string, unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class ReportController extends BaseController { - /** - * To programmatically download Answer data as a file, use this endpoint. - * - * The PDF will download data in the tabular format even if Answer is saved as chart. - * - * @param id GUID of the Answer to download. - * @param type Type of file to be generated. - * @return Response from the API call - */ - async restapiV2AnswerReport( - id: string, - type: Type16Enum, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/report/answer'); - const mapped = req.prepareArgs({ - id: [id, string()], - type: [type, type16EnumSchema], - }); - req.query('id', mapped.id); - req.query('type', mapped.type); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, - * use this endpoint - * - * @param type Type of file to be generated. Valid values: CSV/XLSX/PDF/PNG. - * @param id GUID of the Liveboard to download. This field is considered only when no - * input is provided for transientContent field. - * @param vizId JSON Array of GUIDs of the visualizations in the Liveboard to be included - * in the downloaded file. For CSV, XLSX and PNG file download, visualization - * id is mandatory. CSV and XLSX is valid only for visualization of type table - * and PNG is valid for charts. Only one value will be accepted for these - * formats. If multiple values are provided then first value in the array will - * be considered. - * @param transientContent If you have embedded ThoughtSpot in your host application, and you want to - * download Liveboards with unsaved changes as a file, pass the transient - * content from the browser fetch request, using the - * getExportRequestForCurrentPinboard method. For more information, see https: - * //developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient- - * pinboard. - * @param runtimeFilter If you have embedded ThoughtSpot in your host application, and you want to - * download Liveboards with unsaved changes as a file, pass the transient - * content from the browser fetch request, using the - * getExportRequestForCurrentPinboard method. For more information, see https: - * //developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient- - * pinboard . - * @param runtimeSort JSON object which provides columns to sort the data at the time of data - * retrieval. Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"} - * For more information, see https://developers.thoughtspot.com/docs/? - * pageid=runtime-filters - * @return Response from the API call - */ - async restapiV2LiveboardReport( - type: Type16Enum, - id?: string, - vizId?: string[], - transientContent?: string, - runtimeFilter?: string, - runtimeSort?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/report/liveboard'); - const mapped = req.prepareArgs({ - type: [type, type16EnumSchema], - id: [id, optional(string())], - vizId: [vizId, optional(array(string()))], - transientContent: [transientContent, optional(string())], - runtimeFilter: [runtimeFilter, optional(string())], - runtimeSort: [runtimeSort, optional(string())], - }); - req.query('type', mapped.type); - req.query('id', mapped.id); - req.query('vizId', mapped.vizId); - req.query('transientContent', mapped.transientContent); - req.query('runtimeFilter', mapped.runtimeFilter); - req.query('runtimeSort', mapped.runtimeSort); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } -} diff --git a/Typescript/src/controllers/securityController.ts b/Typescript/src/controllers/securityController.ts deleted file mode 100644 index 5932d8b24..000000000 --- a/Typescript/src/controllers/securityController.ts +++ /dev/null @@ -1,228 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - PrincipalSearchResponse, - principalSearchResponseSchema, -} from '../models/principalSearchResponse'; -import { - SecurityPermissionResponse, - securityPermissionResponseSchema, -} from '../models/securityPermissionResponse'; -import { - TspublicRestV2SecurityPermissionPrincipalSearchRequest, - tspublicRestV2SecurityPermissionPrincipalSearchRequestSchema, -} from '../models/tspublicRestV2SecurityPermissionPrincipalSearchRequest'; -import { - TspublicRestV2SecurityPermissionTsobjectSearchRequest, - tspublicRestV2SecurityPermissionTsobjectSearchRequestSchema, -} from '../models/tspublicRestV2SecurityPermissionTsobjectSearchRequest'; -import { - TspublicRestV2SecurityShareTsobjectRequest, - tspublicRestV2SecurityShareTsobjectRequestSchema, -} from '../models/tspublicRestV2SecurityShareTsobjectRequest'; -import { - TspublicRestV2SecurityShareVisualizationRequest, - tspublicRestV2SecurityShareVisualizationRequestSchema, -} from '../models/tspublicRestV2SecurityShareVisualizationRequest'; -import { Type7Enum, type7EnumSchema } from '../models/type7Enum'; -import { array, boolean, optional, string } from '../schema'; -import { BaseController } from './baseController'; - -export class SecurityController extends BaseController { - /** - * To list the permissions for user and user groups on an object, use this endpoint. The response will - * include only those users and groups with have either VIEW OR MODIFY permission. - * - * You can optionally see the permission on the dependent objects as well by enabling includeDependent - * field. - * - * @param id GUID of the metadata object for which the permission needs to be obtained. - * @param type Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column - * @param includeDependent When this field is set to true, the API returns the permission details for - * the dependent objects for the the object included in the request - * @return Response from the API call - */ - async restapiV2GetPermissionOnObject( - id: string, - type: Type7Enum, - includeDependent?: boolean, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/security/permission/tsobject' - ); - const mapped = req.prepareArgs({ - id: [id, string()], - type: [type, type7EnumSchema], - includeDependent: [includeDependent, optional(boolean())], - }); - req.query('id', mapped.id); - req.query('type', mapped.type); - req.query('includeDependent', mapped.includeDependent); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(securityPermissionResponseSchema, requestOptions); - } - - /** - * Use this endpoint to list the objects on which a user or user group has permission. The response - * will include only those objects on which the user or user group has either VIEW OR MODIFY permission. - * - * - * Requires administration privilege - * - * @param id GUID of the user or user group for which the object permission needs to be obtained - * @param name Name of the ser or user group for which the object permission needs to be obtained - * @return Response from the API call - */ - async restapiV2GetPermissionForPrincipal( - id?: string, - name?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'GET', - '/tspublic/rest/v2/security/permission/principal' - ); - const mapped = req.prepareArgs({ - id: [id, optional(string())], - name: [name, optional(string())], - }); - req.query('id', mapped.id); - req.query('name', mapped.name); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(principalSearchResponseSchema, requestOptions); - } - - /** - * To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. - * - * When you share an object like a Liveboard or visualization, a notification with a live link is sent - * to the user. When the users access this object, they can view the last saved version of the object. - * - * @param body - * @return Response from the API call - */ - async restapiV2ShareObject( - body: TspublicRestV2SecurityShareTsobjectRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/security/share/tsobject' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2SecurityShareTsobjectRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * If you want to share a specific visualization from a Liveboard with another user or user group, then - * use this endpoint. - * - * Requires privilege to share the visualization - * - * @param body - * @return Response from the API call - */ - async restapiV2ShareVisualization( - body: TspublicRestV2SecurityShareVisualizationRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/security/share/visualization' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2SecurityShareVisualizationRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To list the permissions for user and user groups on a list of objects, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * - * You can either provide list of object ids or type of objects to list the permissions for. One of - * these inputs is mandatory. If both are provided then only object ids will be considred. - * - * You can optionally provide users or user groups for which the persmission needs to be displayed. - * - * You can optionally see the permission on the dependent objects as well by enabling includeDependent - * field. - * - * Requires administration privilege - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchPermissionOnObjects( - body: TspublicRestV2SecurityPermissionTsobjectSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/security/permission/tsobject/search' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2SecurityPermissionTsobjectSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson( - array(securityPermissionResponseSchema), - requestOptions - ); - } - - /** - * To list the permissions for user and user groups on a list of objects, use this endpoint. The - * response will include only those users and groups with have either VIEW OR MODIFY permission. - * - * You can either provide list of object ids or type of objects to list the permissions for. One of - * these inputs is mandatory. If both are provided then only object ids will be considred. - * - * You can optionally provide users or user groups for which the persmission needs to be displayed. - * - * You can optionally see the permission on the dependent objects as well by enabling includeDependent - * field. - * - * Requires administration privilege - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchPermissionForPrincipals( - body: TspublicRestV2SecurityPermissionPrincipalSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'POST', - '/tspublic/rest/v2/security/permission/principal/search' - ); - const mapped = req.prepareArgs({ - body: [ - body, - tspublicRestV2SecurityPermissionPrincipalSearchRequestSchema, - ], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(array(principalSearchResponseSchema), requestOptions); - } -} diff --git a/Typescript/src/controllers/sessionController.ts b/Typescript/src/controllers/sessionController.ts deleted file mode 100644 index ea855576d..000000000 --- a/Typescript/src/controllers/sessionController.ts +++ /dev/null @@ -1,131 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { - AccessLevelEnum, - accessLevelEnumSchema, -} from '../models/accessLevelEnum'; -import { - SessionLoginResponse, - sessionLoginResponseSchema, -} from '../models/sessionLoginResponse'; -import { boolean, optional, string } from '../schema'; -import { BaseController } from './baseController'; - -export class SessionController extends BaseController { - /** - * You can programmatically create login session for a user in ThoughtSpot using this endpoint. - * - * You can create session by either providing userName and password as inputs in this request body or - * by including "Authorization" header with the token generated through the endpoint - * /tspublic/rest/v2/session/gettoken. - * - * userName and password input is given precedence over "Authorization" header, when both are included - * in the request. - * - * @param userName Username of the user account - * @param password The password of the user account - * @param rememberMe A flag to remember the user session. When set to true, sets a session cookie that - * persists in subsequent API calls. - * @return Response from the API call - */ - async restapiV2Login( - userName?: string, - password?: string, - rememberMe?: boolean, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/session/login'); - const mapped = req.prepareArgs({ - userName: [userName, optional(string())], - password: [password, optional(string())], - rememberMe: [rememberMe, optional(boolean())], - }); - req.query('userName', mapped.userName); - req.query('password', mapped.password); - req.query('rememberMe', mapped.rememberMe); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(sessionLoginResponseSchema, requestOptions); - } - - /** - * To programmatically create session token for a user in ThoughtSpot, use this endpoint. - * - * You can generate the token for a user by providing password or secret key from the cluster. - * - * You need to enable trusted authentication to generate secret key. To generate secret key, follow - * below steps. - * - * - * 1. Click the Develop tab. - * - * - * 2. Under Customizations, click Settings. - * - * - * 3. To enable trusted authentication, turn on the toggle. - * - * - * 4. A secret_key for trusted authentication is generated. - * - * - * 5. Click the clipboard icon to copy the token. - * - * - * - * - * Password is given precedence over secretKey input, when both are included in the request. - * - * @param userName Username of the user account - * @param password The password of the user account - * @param secretKey The secret key string provided by the ThoughtSpot application - * server. ThoughtSpot generates this secret key when you enable - * trusted authentication. - * @param accessLevel User access privilege. FULL - Creates a session with full access. - * REPORT_BOOK_VIEW - Allow view access to the specified - * visualizations. - * @param tsObjectId GUID of the ThoughtSpot object. If you have set the accessLevel - * attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or - * visualization object. - * @param tokenExpiryDuration Duration in seconds after which the token expires - * @param orgId Id of the organization to be associated with the user login. If no - * input is provided then last logged in organization will be - * considered - * @return Response from the API call - */ - async restapiV2GetToken( - userName: string, - password?: string, - secretKey?: string, - accessLevel?: AccessLevelEnum, - tsObjectId?: string, - tokenExpiryDuration?: string, - orgId?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/session/gettoken'); - const mapped = req.prepareArgs({ - userName: [userName, string()], - password: [password, optional(string())], - secretKey: [secretKey, optional(string())], - accessLevel: [accessLevel, optional(accessLevelEnumSchema)], - tsObjectId: [tsObjectId, optional(string())], - tokenExpiryDuration: [tokenExpiryDuration, optional(string())], - orgId: [orgId, optional(string())], - }); - req.query('userName', mapped.userName); - req.query('password', mapped.password); - req.query('secretKey', mapped.secretKey); - req.query('accessLevel', mapped.accessLevel); - req.query('tsObjectId', mapped.tsObjectId); - req.query('tokenExpiryDuration', mapped.tokenExpiryDuration); - req.query('orgId', mapped.orgId); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(sessionLoginResponseSchema, requestOptions); - } -} diff --git a/Typescript/src/controllers/userController.ts b/Typescript/src/controllers/userController.ts deleted file mode 100644 index 2bae5f361..000000000 --- a/Typescript/src/controllers/userController.ts +++ /dev/null @@ -1,312 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiResponse, RequestOptions } from '../core'; -import { ErrorResponseError } from '../errors/errorResponseError'; -import { StateEnum, stateEnumSchema } from '../models/stateEnum'; -import { - TspublicRestV2UserAddgroupRequest, - tspublicRestV2UserAddgroupRequestSchema, -} from '../models/tspublicRestV2UserAddgroupRequest'; -import { - TspublicRestV2UserAddorgRequest, - tspublicRestV2UserAddorgRequestSchema, -} from '../models/tspublicRestV2UserAddorgRequest'; -import { - TspublicRestV2UserChangepasswordRequest, - tspublicRestV2UserChangepasswordRequestSchema, -} from '../models/tspublicRestV2UserChangepasswordRequest'; -import { - TspublicRestV2UserRemovegroupRequest, - tspublicRestV2UserRemovegroupRequestSchema, -} from '../models/tspublicRestV2UserRemovegroupRequest'; -import { - TspublicRestV2UserSearchRequest, - tspublicRestV2UserSearchRequestSchema, -} from '../models/tspublicRestV2UserSearchRequest'; -import { - TspublicRestV2UserUpdateRequest, - tspublicRestV2UserUpdateRequestSchema, -} from '../models/tspublicRestV2UserUpdateRequest'; -import { Type8Enum, type8EnumSchema } from '../models/type8Enum'; -import { UserResponse, userResponseSchema } from '../models/userResponse'; -import { VisibilityEnum, visibilityEnumSchema } from '../models/visibilityEnum'; -import { array, boolean, number, optional, string, unknown } from '../schema'; -import { BaseController } from './baseController'; - -export class UserController extends BaseController { - /** - * To get the details of a specific user account by username or user id, use this endpoint. At Least - * one value is needed. When both are given, user id will be considered to fetch user information - * - * @param name Username of the user that you want to query. - * @param id The GUID of the user account to query - * @return Response from the API call - */ - async restapiV2GetUser( - name?: string, - id?: string, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/user'); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(string())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(userResponseSchema, requestOptions); - } - - /** - * To programmatically create a user account in the ThoughtSpot system use this API endpoint. Using - * this API, you can create a user and assign groups. - * To create a user, you require admin user privileges. - * All users created in the ThoughtSpot system are added to ALL_GROUP - * - * @param name Name of the user. The username string must be unique. - * @param displayName A unique display name string for the user account, usually - * their first and last name - * @param password Password for the user account. - * @param visibility Visibility of the user. The visibility attribute is set to - * DEFAULT when creating a user. The DEFAULT attribute makes a - * user visible to other users and user groups, and this allows - * them to share objects - * @param mail Email of the user account - * @param orgIds Array of org identifiers. If no value is provided then user - * will be created in the organization associated with the login - * session. - * @param state Status of user account. acitve or inactive. - * @param notifyOnShare User preference for receiving email notifications when another - * ThoughtSpot user shares answers or pinboards. - * @param showWalkMe The user preference for revisiting the onboarding experience. - * @param analystOnboardingComplete ThoughtSpot provides an interactive guided walkthrough to - * onboard new users. The onboarding experience leads users - * through a set of actions to help users get started and - * accomplish their tasks quickly. The users can turn off the - * Onboarding experience and access it again when they need - * assistance with the ThoughtSpot UI. - * @param type Type of user. LOCAL_USER indicates that the user is created - * locally in the ThoughtSpot system. - * @return Response from the API call - */ - async restapiV2CreateUser( - name: string, - displayName: string, - password: string, - visibility?: VisibilityEnum, - mail?: string, - orgIds?: number[], - state?: StateEnum, - notifyOnShare?: boolean, - showWalkMe?: boolean, - analystOnboardingComplete?: boolean, - type?: Type8Enum, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('GET', '/tspublic/rest/v2/user/create'); - const mapped = req.prepareArgs({ - name: [name, string()], - displayName: [displayName, string()], - password: [password, string()], - visibility: [visibility, optional(visibilityEnumSchema)], - mail: [mail, optional(string())], - orgIds: [orgIds, optional(array(number()))], - state: [state, optional(stateEnumSchema)], - notifyOnShare: [notifyOnShare, optional(boolean())], - showWalkMe: [showWalkMe, optional(boolean())], - analystOnboardingComplete: [ - analystOnboardingComplete, - optional(boolean()), - ], - type: [type, optional(type8EnumSchema)], - }); - req.query('name', mapped.name); - req.query('displayName', mapped.displayName); - req.query('password', mapped.password); - req.query('visibility', mapped.visibility); - req.query('mail', mapped.mail); - req.query('orgIds', mapped.orgIds); - req.query('state', mapped.state); - req.query('notifyOnShare', mapped.notifyOnShare); - req.query('showWalkMe', mapped.showWalkMe); - req.query('analystOnboardingComplete', mapped.analystOnboardingComplete); - req.query('type', mapped.type); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(userResponseSchema, requestOptions); - } - - /** - * You can use this endpoint to programmatically modify an existing user account. To modify a user, - * you require admin user privileges. - * At least one of User Id or username is mandatory. When both are given, then user id will be - * considered and username will be updated - * - * @param body - * @return Response from the API call - */ - async restapiV2UpdateUser( - body: TspublicRestV2UserUpdateRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/user/update'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2UserUpdateRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To remove a user from the ThoughtSpot system, use this endpoint. - * At Least one value needed. When both are given user id will be considered to delete user. - * - * @param name Username of the user that you want to query. - * @param id The GUID of the user account to query - * @param orgId Unique identifier of the organization from which the user would be deleted. If no value is - * provided then user will be deleted from the organization associated with the login session. - * @return Response from the API call - */ - async restapiV2DeleteUser( - name?: string, - id?: string, - orgId?: number, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('DELETE', '/tspublic/rest/v2/user/delete'); - const mapped = req.prepareArgs({ - name: [name, optional(string())], - id: [id, optional(string())], - orgId: [orgId, optional(number())], - }); - req.query('name', mapped.name); - req.query('id', mapped.id); - req.query('orgId', mapped.orgId); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically add groups to an existing ThoughtSpot user use this endpoint. - * When you assign groups to a user, the user inherits the privileges assigned to those groups. - * At least one of User Id or username is mandatory. When both are given, then user id will be - * considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2AddUserToGroups( - body: TspublicRestV2UserAddgroupRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/user/addgroup'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2UserAddgroupRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. - * The API removes only the user association. It does not delete the user or group from the Thoughtspot - * system - * At least one of User Id or username is mandatory. When both are given, then user id will be - * considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2RemoveUserFromGroups( - body: TspublicRestV2UserRemovegroupRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/user/removegroup'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2UserRemovegroupRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To get the details of a specific user account or all users in the ThoughtSpot system use this end - * point. - * - * @param body - * @return Response from the API call - */ - async restapiV2SearchUsers( - body: TspublicRestV2UserSearchRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('POST', '/tspublic/rest/v2/user/search'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2UserSearchRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(unknown(), requestOptions); - } - - /** - * To change the password of a ThoughtSpot user account, use this endpoint. - * - * At least one of id or name of user is required. When both are given user id will be considered. - * - * @param body - * @return Response from the API call - */ - async restapiV2ChangePasswordOfUser( - body: TspublicRestV2UserChangepasswordRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest( - 'PUT', - '/tspublic/rest/v2/user/changepassword' - ); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2UserChangepasswordRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } - - /** - * To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. - * - * At least one of id or name of the organization is required. When both are given, then organization - * id will be considered. - * - * Requires Administration access for the organization to which users need to be added. - * - * @param body - * @return Response from the API call - */ - async restapiV2AddUserToOrgs( - body: TspublicRestV2UserAddorgRequest, - requestOptions?: RequestOptions - ): Promise> { - const req = this.createRequest('PUT', '/tspublic/rest/v2/user/addorg'); - const mapped = req.prepareArgs({ - body: [body, tspublicRestV2UserAddorgRequestSchema], - }); - req.header('Content-Type', 'application/json'); - req.json(mapped.body); - req.throwOn(500, ErrorResponseError, 'Operation failed'); - return req.callAsJson(boolean(), requestOptions); - } -} diff --git a/Typescript/src/core.ts b/Typescript/src/core.ts deleted file mode 100644 index 76772d7a9..000000000 --- a/Typescript/src/core.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -export * from '@apimatic/core'; diff --git a/Typescript/src/defaultConfiguration.ts b/Typescript/src/defaultConfiguration.ts deleted file mode 100644 index cf29d5a07..000000000 --- a/Typescript/src/defaultConfiguration.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Configuration, Environment } from './configuration'; -import { RetryConfiguration } from './core'; - -/** Default values for the configuration parameters of the client. */ -export const DEFAULT_CONFIGURATION: Configuration = { - timeout: 0, - environment: Environment.Production, - baseUrl: 'https://localhost:443', - accessToken: '', -}; - -/** Default values for retry configuration parameters. */ -export const DEFAULT_RETRY_CONFIG: RetryConfiguration = { - maxNumberOfRetries: 0, - retryOnTimeout: true, - retryInterval: 1, - maximumRetryWaitTime: 0, - backoffFactor: 2, - httpStatusCodesToRetry: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524], - httpMethodsToRetry: ['GET', 'PUT', 'GET', 'PUT'], -}; diff --git a/Typescript/src/errors/errorResponseError.ts b/Typescript/src/errors/errorResponseError.ts deleted file mode 100644 index 444a24c71..000000000 --- a/Typescript/src/errors/errorResponseError.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { ApiError } from '../core'; - -/** - * Creates an instance of ErrorResponse - */ -interface ErrorResponse { - error?: unknown; -} - -export class ErrorResponseError extends ApiError {} diff --git a/Typescript/src/http/xmlSerialization.ts b/Typescript/src/http/xmlSerialization.ts deleted file mode 100644 index 6c6b9a9b0..000000000 --- a/Typescript/src/http/xmlSerialization.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -export class XmlSerialization { - public xmlSerialize(_rootName: string, _value: unknown): string { - throw new Error('XML serialization is not available.'); - } - - public xmlDeserialize(_rootName: string, _xmlString: string): Promise { - throw new Error('XML deserialization is not available.'); - } -} diff --git a/Typescript/src/index.ts b/Typescript/src/index.ts deleted file mode 100644 index 2216be4d1..000000000 --- a/Typescript/src/index.ts +++ /dev/null @@ -1,177 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -export * from './client'; -export * from './configuration'; -export { - AbortError, - ApiResponse, - ArgumentsValidationError, - cloneFileWrapper, - FileWrapper, - isFileWrapper, - ResponseValidationError, -} from './core'; -export * from './defaultConfiguration'; -export * from './controllers/adminController'; -export * from './controllers/connectionController'; -export * from './controllers/customActionsController'; -export * from './controllers/dataController'; -export * from './controllers/databaseController'; -export * from './controllers/groupController'; -export * from './controllers/logsController'; -export * from './controllers/materializationController'; -export * from './controllers/metadataController'; -export * from './controllers/orgController'; -export * from './controllers/reportController'; -export * from './controllers/securityController'; -export * from './controllers/sessionController'; -export * from './controllers/userController'; -export { ApiError } from './core'; -export * from './errors/errorResponseError'; -export { AccessEnum } from './models/accessEnum'; -export { AccessLevelEnum } from './models/accessLevelEnum'; -export { AccessLevelInput } from './models/accessLevelInput'; -export { AddTableInput } from './models/addTableInput'; -export { AdminsyncPrincipalResponse } from './models/adminsyncPrincipalResponse'; -export { AnswerQueryResponse } from './models/answerQueryResponse'; -export { ClientState } from './models/clientState'; -export { ColumnsInput } from './models/columnsInput'; -export { ConnectionColumn } from './models/connectionColumn'; -export { ConnectionColumnsShema } from './models/connectionColumnsShema'; -export { ConnectionDatabaseType } from './models/connectionDatabaseType'; -export { ConnectionResponse } from './models/connectionResponse'; -export { ConnectionTableColumnsInput } from './models/connectionTableColumnsInput'; -export { ConnectionTableColumnsResponse } from './models/connectionTableColumnsResponse'; -export { ConnectionTableResponse } from './models/connectionTableResponse'; -export { ConnectionTableSchema } from './models/connectionTableSchema'; -export { CreateConnectionResponse } from './models/createConnectionResponse'; -export { CreateTableResponse } from './models/createTableResponse'; -export { DependentPermission } from './models/dependentPermission'; -export { FormatType3Enum } from './models/formatType3Enum'; -export { FormatTypeEnum } from './models/formatTypeEnum'; -export { FromUserNameAndIDInput } from './models/fromUserNameAndIDInput'; -export { GroupNameAndID } from './models/groupNameAndID'; -export { GroupNameAndIDInput } from './models/groupNameAndIDInput'; -export { GroupPermission } from './models/groupPermission'; -export { GroupResponse } from './models/groupResponse'; -export { HomeLiveboardResponse } from './models/homeLiveboardResponse'; -export { ImportPolicyEnum } from './models/importPolicyEnum'; -export { LiveboardNameAndID } from './models/liveboardNameAndID'; -export { LiveboardQueryResponse } from './models/liveboardQueryResponse'; -export { LogicalTableHeader } from './models/logicalTableHeader'; -export { LogsResponse } from './models/logsResponse'; -export { MetadataTagResponse } from './models/metadataTagResponse'; -export { NameAndIdInput } from './models/nameAndIdInput'; -export { OrgsResponse } from './models/orgsResponse'; -export { OrgType } from './models/orgType'; -export { OrientationEnum } from './models/orientationEnum'; -export { PdfOptionsInput } from './models/pdfOptionsInput'; -export { PermissionsTypeSearch } from './models/permissionsTypeSearch'; -export { PinboardDetails } from './models/pinboardDetails'; -export { PrincipalSearchResponse } from './models/principalSearchResponse'; -export { PrivilegeEnum } from './models/privilegeEnum'; -export { SecuirityDependents } from './models/secuirityDependents'; -export { SecurityPermission } from './models/securityPermission'; -export { SecurityPermissionResponse } from './models/securityPermissionResponse'; -export { SessionLoginResponse } from './models/sessionLoginResponse'; -export { SortBy1Enum } from './models/sortBy1Enum'; -export { SortByEnum } from './models/sortByEnum'; -export { SortOrder1Enum } from './models/sortOrder1Enum'; -export { SortOrderEnum } from './models/sortOrderEnum'; -export { State1Enum } from './models/state1Enum'; -export { StateEnum } from './models/stateEnum'; -export { TableColumns } from './models/tableColumns'; -export { TableInput } from './models/tableInput'; -export { TableList } from './models/tableList'; -export { TagNameAndID } from './models/tagNameAndID'; -export { TagNameAndIdInput } from './models/tagNameAndIdInput'; -export { TopicEnum } from './models/topicEnum'; -export { ToUserNameAndIDInput } from './models/toUserNameAndIDInput'; -export { TsObjectInput } from './models/tsObjectInput'; -export { TsObjectSearchInput } from './models/tsObjectSearchInput'; -export { TsObjectTypeSerach } from './models/tsObjectTypeSerach'; -export { TspublicRestV2AdminAssignauthorRequest } from './models/tspublicRestV2AdminAssignauthorRequest'; -export { TspublicRestV2AdminChangeauthorRequest } from './models/tspublicRestV2AdminChangeauthorRequest'; -export { TspublicRestV2AdminConfigurationUpdateRequest } from './models/tspublicRestV2AdminConfigurationUpdateRequest'; -export { TspublicRestV2AdminForcelogoutRequest } from './models/tspublicRestV2AdminForcelogoutRequest'; -export { TspublicRestV2AdminResetpasswordRequest } from './models/tspublicRestV2AdminResetpasswordRequest'; -export { TspublicRestV2AdminSyncprincipalRequest } from './models/tspublicRestV2AdminSyncprincipalRequest'; -export { TspublicRestV2ConnectionAddtableRequest } from './models/tspublicRestV2ConnectionAddtableRequest'; -export { TspublicRestV2ConnectionCreateRequest } from './models/tspublicRestV2ConnectionCreateRequest'; -export { TspublicRestV2ConnectionRemovetableRequest } from './models/tspublicRestV2ConnectionRemovetableRequest'; -export { TspublicRestV2ConnectionSearchRequest } from './models/tspublicRestV2ConnectionSearchRequest'; -export { TspublicRestV2ConnectionTablecoloumnRequest } from './models/tspublicRestV2ConnectionTablecoloumnRequest'; -export { TspublicRestV2ConnectionTableRequest } from './models/tspublicRestV2ConnectionTableRequest'; -export { TspublicRestV2ConnectionUpdateRequest } from './models/tspublicRestV2ConnectionUpdateRequest'; -export { TspublicRestV2CustomactionAssociationUpdateRequest } from './models/tspublicRestV2CustomactionAssociationUpdateRequest'; -export { TspublicRestV2CustomactionCreateRequest } from './models/tspublicRestV2CustomactionCreateRequest'; -export { TspublicRestV2CustomactionSearchRequest } from './models/tspublicRestV2CustomactionSearchRequest'; -export { TspublicRestV2CustomactionUpdateRequest } from './models/tspublicRestV2CustomactionUpdateRequest'; -export { TspublicRestV2DataAnswerRequest } from './models/tspublicRestV2DataAnswerRequest'; -export { TspublicRestV2DatabaseTableCreateRequest } from './models/tspublicRestV2DatabaseTableCreateRequest'; -export { TspublicRestV2DatabaseTableRunqueryRequest } from './models/tspublicRestV2DatabaseTableRunqueryRequest'; -export { TspublicRestV2DataLiveboardRequest } from './models/tspublicRestV2DataLiveboardRequest'; -export { TspublicRestV2DataSearchRequest } from './models/tspublicRestV2DataSearchRequest'; -export { TspublicRestV2GroupAddgroupRequest } from './models/tspublicRestV2GroupAddgroupRequest'; -export { TspublicRestV2GroupAddprivilegeRequest } from './models/tspublicRestV2GroupAddprivilegeRequest'; -export { TspublicRestV2GroupAdduserRequest } from './models/tspublicRestV2GroupAdduserRequest'; -export { TspublicRestV2GroupCreateRequest } from './models/tspublicRestV2GroupCreateRequest'; -export { TspublicRestV2GroupRemovegroupRequest } from './models/tspublicRestV2GroupRemovegroupRequest'; -export { TspublicRestV2GroupRemoveprivilegeRequest } from './models/tspublicRestV2GroupRemoveprivilegeRequest'; -export { TspublicRestV2GroupRemoveuserRequest } from './models/tspublicRestV2GroupRemoveuserRequest'; -export { TspublicRestV2GroupSearchRequest } from './models/tspublicRestV2GroupSearchRequest'; -export { TspublicRestV2GroupUpdateRequest } from './models/tspublicRestV2GroupUpdateRequest'; -export { TspublicRestV2MaterializationRefreshviewRequest } from './models/tspublicRestV2MaterializationRefreshviewRequest'; -export { TspublicRestV2MetadataDependencyRequest } from './models/tspublicRestV2MetadataDependencyRequest'; -export { TspublicRestV2MetadataDetailSearchRequest } from './models/tspublicRestV2MetadataDetailSearchRequest'; -export { TspublicRestV2MetadataFavoriteAssignRequest } from './models/tspublicRestV2MetadataFavoriteAssignRequest'; -export { TspublicRestV2MetadataFavoriteUnassignRequest } from './models/tspublicRestV2MetadataFavoriteUnassignRequest'; -export { TspublicRestV2MetadataHeaderSearchRequest } from './models/tspublicRestV2MetadataHeaderSearchRequest'; -export { TspublicRestV2MetadataHomeliveboardAssignRequest } from './models/tspublicRestV2MetadataHomeliveboardAssignRequest'; -export { TspublicRestV2MetadataHomeliveboardUnassignRequest } from './models/tspublicRestV2MetadataHomeliveboardUnassignRequest'; -export { TspublicRestV2MetadataTagAssignRequest } from './models/tspublicRestV2MetadataTagAssignRequest'; -export { TspublicRestV2MetadataTagCreateRequest } from './models/tspublicRestV2MetadataTagCreateRequest'; -export { TspublicRestV2MetadataTagUnassignRequest } from './models/tspublicRestV2MetadataTagUnassignRequest'; -export { TspublicRestV2MetadataTagUpdateRequest } from './models/tspublicRestV2MetadataTagUpdateRequest'; -export { TspublicRestV2MetadataTmlExportRequest } from './models/tspublicRestV2MetadataTmlExportRequest'; -export { TspublicRestV2MetadataTmlImportRequest } from './models/tspublicRestV2MetadataTmlImportRequest'; -export { TspublicRestV2OrgCreateRequest } from './models/tspublicRestV2OrgCreateRequest'; -export { TspublicRestV2OrgSearchRequest } from './models/tspublicRestV2OrgSearchRequest'; -export { TspublicRestV2OrgUpdateRequest } from './models/tspublicRestV2OrgUpdateRequest'; -export { TspublicRestV2SecurityPermissionPrincipalSearchRequest } from './models/tspublicRestV2SecurityPermissionPrincipalSearchRequest'; -export { TspublicRestV2SecurityPermissionTsobjectSearchRequest } from './models/tspublicRestV2SecurityPermissionTsobjectSearchRequest'; -export { TspublicRestV2SecurityShareTsobjectRequest } from './models/tspublicRestV2SecurityShareTsobjectRequest'; -export { TspublicRestV2SecurityShareVisualizationRequest } from './models/tspublicRestV2SecurityShareVisualizationRequest'; -export { TspublicRestV2UserAddgroupRequest } from './models/tspublicRestV2UserAddgroupRequest'; -export { TspublicRestV2UserAddorgRequest } from './models/tspublicRestV2UserAddorgRequest'; -export { TspublicRestV2UserChangepasswordRequest } from './models/tspublicRestV2UserChangepasswordRequest'; -export { TspublicRestV2UserRemovegroupRequest } from './models/tspublicRestV2UserRemovegroupRequest'; -export { TspublicRestV2UserSearchRequest } from './models/tspublicRestV2UserSearchRequest'; -export { TspublicRestV2UserUpdateRequest } from './models/tspublicRestV2UserUpdateRequest'; -export { Type10Enum } from './models/type10Enum'; -export { Type13Enum } from './models/type13Enum'; -export { Type14Enum } from './models/type14Enum'; -export { Type15Enum } from './models/type15Enum'; -export { Type16Enum } from './models/type16Enum'; -export { Type18Enum } from './models/type18Enum'; -export { Type1Enum } from './models/type1Enum'; -export { Type2Enum } from './models/type2Enum'; -export { Type3Enum } from './models/type3Enum'; -export { Type4Enum } from './models/type4Enum'; -export { Type5Enum } from './models/type5Enum'; -export { Type6Enum } from './models/type6Enum'; -export { Type7Enum } from './models/type7Enum'; -export { Type8Enum } from './models/type8Enum'; -export { Type9Enum } from './models/type9Enum'; -export { TypeEnum } from './models/typeEnum'; -export { UserNameAndID } from './models/userNameAndID'; -export { UserNameAndIDInput } from './models/userNameAndIDInput'; -export { UserResponse } from './models/userResponse'; -export { Visibility1Enum } from './models/visibility1Enum'; -export { Visibility2Enum } from './models/visibility2Enum'; -export { VisibilityEnum } from './models/visibilityEnum'; -export { VizType } from './models/vizType'; diff --git a/Typescript/src/models/accessEnum.ts b/Typescript/src/models/accessEnum.ts deleted file mode 100644 index d0f289307..000000000 --- a/Typescript/src/models/accessEnum.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for AccessEnum - */ -export enum AccessEnum { - READONLY = 'READ_ONLY', - MODIFY = 'MODIFY', -} - -/** - * Schema for AccessEnum - */ -export const accessEnumSchema: Schema = stringEnum(AccessEnum); diff --git a/Typescript/src/models/accessLevelEnum.ts b/Typescript/src/models/accessLevelEnum.ts deleted file mode 100644 index e170b911a..000000000 --- a/Typescript/src/models/accessLevelEnum.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for AccessLevelEnum - */ -export enum AccessLevelEnum { - FULL = 'FULL', - REPORTBOOKVIEW = 'REPORT_BOOK_VIEW', -} - -/** - * Schema for AccessLevelEnum - */ -export const accessLevelEnumSchema: Schema = stringEnum(AccessLevelEnum); diff --git a/Typescript/src/models/accessLevelInput.ts b/Typescript/src/models/accessLevelInput.ts deleted file mode 100644 index d8d15d3cb..000000000 --- a/Typescript/src/models/accessLevelInput.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; -import { AccessEnum, accessEnumSchema } from './accessEnum'; -import { Type1Enum, type1EnumSchema } from './type1Enum'; - -export interface AccessLevelInput { - /** Username or name of the user group */ - name?: string; - /** GUID of the user or user group */ - id?: string; - /** Type of access detail provided */ - type?: Type1Enum; - /** Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered. */ - access?: AccessEnum; -} - -export const accessLevelInputSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], - type: ['type', optional(type1EnumSchema)], - access: ['access', optional(accessEnumSchema)], -}); diff --git a/Typescript/src/models/addTableInput.ts b/Typescript/src/models/addTableInput.ts deleted file mode 100644 index 3250bc819..000000000 --- a/Typescript/src/models/addTableInput.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, Schema, string } from '../schema'; -import { ColumnsInput, columnsInputSchema } from './columnsInput'; - -export interface AddTableInput { - /** Name of the table */ - name: string; - /** Name of the database in the data platform */ - dbName: string; - /** Name of the schema in the database */ - schemaName: string; - /** A JSON array of column details */ - columns: ColumnsInput[]; -} - -export const addTableInputSchema: Schema = object({ - name: ['name', string()], - dbName: ['dbName', string()], - schemaName: ['schemaName', string()], - columns: ['columns', array(lazy(() => columnsInputSchema))], -}); diff --git a/Typescript/src/models/adminsyncPrincipalResponse.ts b/Typescript/src/models/adminsyncPrincipalResponse.ts deleted file mode 100644 index 410439bd4..000000000 --- a/Typescript/src/models/adminsyncPrincipalResponse.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, object, optional, Schema, string } from '../schema'; - -export interface AdminsyncPrincipalResponse { - /** Username of list of users added */ - usersAdded?: string[]; - /** Username of list of users deleted */ - usersDeleted?: string[]; - /** Username of list of users updated */ - usersUpdated?: string[]; - /** Group name of list of groups added */ - groupsAdded?: string[]; - /** Group name of list of groups deleted */ - groupsDeleted?: string[]; - /** Group name of list of groups updated */ - groupsUpdated?: string[]; -} - -export const adminsyncPrincipalResponseSchema: Schema = object( - { - usersAdded: ['usersAdded', optional(array(string()))], - usersDeleted: ['usersDeleted', optional(array(string()))], - usersUpdated: ['usersUpdated', optional(array(string()))], - groupsAdded: ['groupsAdded', optional(array(string()))], - groupsDeleted: ['groupsDeleted', optional(array(string()))], - groupsUpdated: ['groupsUpdated', optional(array(string()))], - } -); diff --git a/Typescript/src/models/answerQueryResponse.ts b/Typescript/src/models/answerQueryResponse.ts deleted file mode 100644 index 4f4317879..000000000 --- a/Typescript/src/models/answerQueryResponse.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface AnswerQueryResponse { - /** The name of the saved Answer */ - name?: string; - /** The GUID of the saved Answer */ - id?: string; - /** SQL query associated with the saved Answer */ - querySql?: string; -} - -export const answerQueryResponseSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], - querySql: ['querySql', optional(string())], -}); diff --git a/Typescript/src/models/clientState.ts b/Typescript/src/models/clientState.ts deleted file mode 100644 index 7912f153f..000000000 --- a/Typescript/src/models/clientState.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface ClientState { - /** Color assigned to the tag */ - color?: string; -} - -export const clientStateSchema: Schema = object({ - color: ['color', optional(string())], -}); diff --git a/Typescript/src/models/columnsInput.ts b/Typescript/src/models/columnsInput.ts deleted file mode 100644 index 31c11fbc7..000000000 --- a/Typescript/src/models/columnsInput.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, Schema, string } from '../schema'; - -export interface ColumnsInput { - /** Name of the column */ - name: string; - /** Datatype of the column */ - dataType: string; -} - -export const columnsInputSchema: Schema = object({ - name: ['name', string()], - dataType: ['dataType', string()], -}); diff --git a/Typescript/src/models/connectionColumn.ts b/Typescript/src/models/connectionColumn.ts deleted file mode 100644 index 8966459e1..000000000 --- a/Typescript/src/models/connectionColumn.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { TableColumns, tableColumnsSchema } from './tableColumns'; - -export interface ConnectionColumn { - /** Name of the table */ - name?: string; - /** Type of the Table */ - type?: string; - /** List of columns in the table */ - column?: TableColumns[]; -} - -export const connectionColumnSchema: Schema = object({ - name: ['name', optional(string())], - type: ['type', optional(string())], - column: ['column', optional(array(lazy(() => tableColumnsSchema)))], -}); diff --git a/Typescript/src/models/connectionColumnsShema.ts b/Typescript/src/models/connectionColumnsShema.ts deleted file mode 100644 index c191cb9d8..000000000 --- a/Typescript/src/models/connectionColumnsShema.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { TableColumns, tableColumnsSchema } from './tableColumns'; - -export interface ConnectionColumnsShema { - /** Name of the table */ - name?: string; - /** Name of the database */ - dbName?: string; - /** Name of the schema */ - schemaName?: string; - /** List of columns in the table */ - columns?: TableColumns[]; -} - -export const connectionColumnsShemaSchema: Schema = object( - { - name: ['name', optional(string())], - dbName: ['dbName', optional(string())], - schemaName: ['schemaName', optional(string())], - columns: ['columns', optional(array(lazy(() => tableColumnsSchema)))], - } -); diff --git a/Typescript/src/models/connectionDatabaseType.ts b/Typescript/src/models/connectionDatabaseType.ts deleted file mode 100644 index fcbe6b826..000000000 --- a/Typescript/src/models/connectionDatabaseType.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - ConnectionTableSchema, - connectionTableSchemaSchema, -} from './connectionTableSchema'; - -export interface ConnectionDatabaseType { - /** Name of the database */ - name?: string; - /** List of schemas */ - schema?: ConnectionTableSchema[]; -} - -export const connectionDatabaseTypeSchema: Schema = object( - { - name: ['name', optional(string())], - schema: [ - 'schema', - optional(array(lazy(() => connectionTableSchemaSchema))), - ], - } -); diff --git a/Typescript/src/models/connectionResponse.ts b/Typescript/src/models/connectionResponse.ts deleted file mode 100644 index e8263059e..000000000 --- a/Typescript/src/models/connectionResponse.ts +++ /dev/null @@ -1,80 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { TableList, tableListSchema } from './tableList'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface ConnectionResponse { - /** Name of the connection */ - name?: string; - /** Description associated with the connection */ - description?: string; - /** Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. */ - type?: string; - /** GUID of the connection */ - id?: string; - /** Indicates if the data sync is scheduled for this connection */ - scheduled?: boolean; - connectionType?: string; - /** Configuration properties of the connection */ - configuration?: string; - isExternal?: boolean; - /** Indicates if the connection is deprecated */ - isDeprecated?: boolean; - /** Indicates if the connection is deleted */ - isDeleted?: boolean; - /** Indicates if the connection is hideen */ - isHidden?: boolean; - /** Indicates if the all the properties of connection is provided */ - complete?: boolean; - indexVersion?: number; - generationNum?: number; - /** Date and time when the connection was created */ - created?: string; - /** Date and time of last modification of the connection */ - modified?: string; - author?: UserNameAndID; - modifiedBy?: UserNameAndID; - owner?: UserNameAndID; - /** List of tags assigned to the connection */ - tags?: string[]; - /** List of tables linked to this connection */ - tables?: TableList[]; -} - -export const connectionResponseSchema: Schema = object({ - name: ['name', optional(string())], - description: ['description', optional(string())], - type: ['type', optional(string())], - id: ['id', optional(string())], - scheduled: ['scheduled', optional(boolean())], - connectionType: ['connectionType', optional(string())], - configuration: ['configuration', optional(string())], - isExternal: ['isExternal', optional(boolean())], - isDeprecated: ['isDeprecated', optional(boolean())], - isDeleted: ['isDeleted', optional(boolean())], - isHidden: ['isHidden', optional(boolean())], - complete: ['complete', optional(boolean())], - indexVersion: ['indexVersion', optional(number())], - generationNum: ['generationNum', optional(number())], - created: ['created', optional(string())], - modified: ['modified', optional(string())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - modifiedBy: ['modifiedBy', optional(lazy(() => userNameAndIDSchema))], - owner: ['owner', optional(lazy(() => userNameAndIDSchema))], - tags: ['tags', optional(array(string()))], - tables: ['tables', optional(array(lazy(() => tableListSchema)))], -}); diff --git a/Typescript/src/models/connectionTableColumnsInput.ts b/Typescript/src/models/connectionTableColumnsInput.ts deleted file mode 100644 index 52a724e8e..000000000 --- a/Typescript/src/models/connectionTableColumnsInput.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, Schema, string } from '../schema'; - -export interface ConnectionTableColumnsInput { - /** Name of the database */ - dbName: string; - /** Name of the schema */ - schemaName: string; - /** Name of the table */ - name: string; -} - -export const connectionTableColumnsInputSchema: Schema = object( - { - dbName: ['dbName', string()], - schemaName: ['schemaName', string()], - name: ['name', string()], - } -); diff --git a/Typescript/src/models/connectionTableColumnsResponse.ts b/Typescript/src/models/connectionTableColumnsResponse.ts deleted file mode 100644 index cfe3fd962..000000000 --- a/Typescript/src/models/connectionTableColumnsResponse.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - ConnectionColumnsShema, - connectionColumnsShemaSchema, -} from './connectionColumnsShema'; - -export interface ConnectionTableColumnsResponse { - /** Connection id */ - id?: string; - /** List of table details */ - table?: ConnectionColumnsShema[]; -} - -export const connectionTableColumnsResponseSchema: Schema = object( - { - id: ['id', optional(string())], - table: ['table', optional(array(lazy(() => connectionColumnsShemaSchema)))], - } -); diff --git a/Typescript/src/models/connectionTableResponse.ts b/Typescript/src/models/connectionTableResponse.ts deleted file mode 100644 index f8eee52ea..000000000 --- a/Typescript/src/models/connectionTableResponse.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - ConnectionDatabaseType, - connectionDatabaseTypeSchema, -} from './connectionDatabaseType'; - -export interface ConnectionTableResponse { - /** Connection id */ - id?: string; - /** List of databases */ - database?: ConnectionDatabaseType[]; -} - -export const connectionTableResponseSchema: Schema = object( - { - id: ['id', optional(string())], - database: [ - 'database', - optional(array(lazy(() => connectionDatabaseTypeSchema))), - ], - } -); diff --git a/Typescript/src/models/connectionTableSchema.ts b/Typescript/src/models/connectionTableSchema.ts deleted file mode 100644 index 6ffb711e2..000000000 --- a/Typescript/src/models/connectionTableSchema.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { ConnectionColumn, connectionColumnSchema } from './connectionColumn'; - -export interface ConnectionTableSchema { - /** Name of the schema */ - name?: string; - /** List of table details */ - table?: ConnectionColumn[]; -} - -export const connectionTableSchemaSchema: Schema = object( - { - name: ['name', optional(string())], - table: ['table', optional(array(lazy(() => connectionColumnSchema)))], - } -); diff --git a/Typescript/src/models/createConnectionResponse.ts b/Typescript/src/models/createConnectionResponse.ts deleted file mode 100644 index 0a531aaf3..000000000 --- a/Typescript/src/models/createConnectionResponse.ts +++ /dev/null @@ -1,81 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface CreateConnectionResponse { - /** Name of the connection */ - name?: string; - /** Description associated with the connection */ - description?: string; - /** Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint. */ - type?: string; - /** GUID of the connection */ - id?: string; - /** Indicates if the data sync is scheduled for this connection */ - scheduled?: boolean; - connectionType?: string; - /** Configuration properties of the connection */ - configuration?: string; - isExternal?: boolean; - /** Indicates if the connection is deprecated */ - isDeprecated?: boolean; - /** Indicates if the connection is deleted */ - isDeleted?: boolean; - /** Indicates if the connection is hideen */ - isHidden?: boolean; - /** Indicates if the all the properties of connection is provided */ - complete?: boolean; - indexVersion?: number; - generationNum?: number; - /** Date and time when user account was created */ - created?: string; - /** Date and time of last modification of user account */ - modified?: string; - author?: UserNameAndID; - modifiedBy?: UserNameAndID; - owner?: UserNameAndID; - /** List of tags assigned to the connection */ - tags?: string[]; - /** List of tables linked to this connection and details of the columns in the table */ - tables?: string[]; -} - -export const createConnectionResponseSchema: Schema = object( - { - name: ['name', optional(string())], - description: ['description', optional(string())], - type: ['type', optional(string())], - id: ['id', optional(string())], - scheduled: ['scheduled', optional(boolean())], - connectionType: ['connectionType', optional(string())], - configuration: ['configuration', optional(string())], - isExternal: ['isExternal', optional(boolean())], - isDeprecated: ['isDeprecated', optional(boolean())], - isDeleted: ['isDeleted', optional(boolean())], - isHidden: ['isHidden', optional(boolean())], - complete: ['complete', optional(boolean())], - indexVersion: ['indexVersion', optional(number())], - generationNum: ['generationNum', optional(number())], - created: ['created', optional(string())], - modified: ['modified', optional(string())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - modifiedBy: ['modifiedBy', optional(lazy(() => userNameAndIDSchema))], - owner: ['owner', optional(lazy(() => userNameAndIDSchema))], - tags: ['tags', optional(array(string()))], - tables: ['tables', optional(array(string()))], - } -); diff --git a/Typescript/src/models/createTableResponse.ts b/Typescript/src/models/createTableResponse.ts deleted file mode 100644 index 75a48faf1..000000000 --- a/Typescript/src/models/createTableResponse.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { lazy, object, optional, Schema, string } from '../schema'; -import { - LogicalTableHeader, - logicalTableHeaderSchema, -} from './logicalTableHeader'; - -export interface CreateTableResponse { - logicalTableHeader?: LogicalTableHeader; - physicalTableId?: string; -} - -export const createTableResponseSchema: Schema = object({ - logicalTableHeader: [ - 'logicalTableHeader', - optional(lazy(() => logicalTableHeaderSchema)), - ], - physicalTableId: ['physicalTableId', optional(string())], -}); diff --git a/Typescript/src/models/dependentPermission.ts b/Typescript/src/models/dependentPermission.ts deleted file mode 100644 index ed8f401e6..000000000 --- a/Typescript/src/models/dependentPermission.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { GroupPermission, groupPermissionSchema } from './groupPermission'; - -export interface DependentPermission { - /** GUID of the object */ - id?: string; - /** Name of the object */ - name?: string; - /** Indicates the type of the object */ - type?: string; - /** Indicates the permission which user or user group has on the object */ - permission?: string; - /** Indicates the permission which user or user group has on the object through sharing of the object with this user or user group */ - sharedPermission?: string; - /** An array of object with details of permission on the user groups to which the user or user group belongs */ - groupPermission?: GroupPermission[]; -} - -export const dependentPermissionSchema: Schema = object({ - id: ['id', optional(string())], - name: ['name', optional(string())], - type: ['type', optional(string())], - permission: ['permission', optional(string())], - sharedPermission: ['sharedPermission', optional(string())], - groupPermission: [ - 'groupPermission', - optional(array(lazy(() => groupPermissionSchema))), - ], -}); diff --git a/Typescript/src/models/formatType3Enum.ts b/Typescript/src/models/formatType3Enum.ts deleted file mode 100644 index 6475fb9c2..000000000 --- a/Typescript/src/models/formatType3Enum.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for FormatType3Enum - */ -export enum FormatType3Enum { - YAML = 'YAML', - JSON = 'JSON', -} - -/** - * Schema for FormatType3Enum - */ -export const formatType3EnumSchema: Schema = stringEnum(FormatType3Enum); diff --git a/Typescript/src/models/formatTypeEnum.ts b/Typescript/src/models/formatTypeEnum.ts deleted file mode 100644 index 2851b21d1..000000000 --- a/Typescript/src/models/formatTypeEnum.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for FormatTypeEnum - */ -export enum FormatTypeEnum { - COMPACT = 'COMPACT', - FULL = 'FULL', -} - -/** - * Schema for FormatTypeEnum - */ -export const formatTypeEnumSchema: Schema = stringEnum(FormatTypeEnum); diff --git a/Typescript/src/models/fromUserNameAndIDInput.ts b/Typescript/src/models/fromUserNameAndIDInput.ts deleted file mode 100644 index c844f25c3..000000000 --- a/Typescript/src/models/fromUserNameAndIDInput.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -/** - * A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. - * If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. - * Provide either name or id as input. When both are given user id will be considered. - */ -export interface FromUserNameAndIDInput { - /** Username of the user */ - name?: string; - /** GUID of the user */ - id?: string; -} - -export const fromUserNameAndIDInputSchema: Schema = object( - { name: ['name', optional(string())], id: ['id', optional(string())] } -); diff --git a/Typescript/src/models/groupNameAndID.ts b/Typescript/src/models/groupNameAndID.ts deleted file mode 100644 index 09ba514cf..000000000 --- a/Typescript/src/models/groupNameAndID.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface GroupNameAndID { - /** Name of the group */ - name?: string; - /** GUID of the group */ - id?: string; -} - -export const groupNameAndIDSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/groupNameAndIDInput.ts b/Typescript/src/models/groupNameAndIDInput.ts deleted file mode 100644 index 4bf42f6f9..000000000 --- a/Typescript/src/models/groupNameAndIDInput.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface GroupNameAndIDInput { - /** Name of the group */ - name?: string; - /** GUID of the group */ - id?: string; -} - -export const groupNameAndIDInputSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/groupPermission.ts b/Typescript/src/models/groupPermission.ts deleted file mode 100644 index f5e081838..000000000 --- a/Typescript/src/models/groupPermission.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface GroupPermission { - /** GUID of the user group */ - id?: string; - /** Name of the user group */ - name?: string; - /** Indicates the permission which user group has on the object */ - permission?: string; -} - -export const groupPermissionSchema: Schema = object({ - id: ['id', optional(string())], - name: ['name', optional(string())], - permission: ['permission', optional(string())], -}); diff --git a/Typescript/src/models/groupResponse.ts b/Typescript/src/models/groupResponse.ts deleted file mode 100644 index eee4eadd3..000000000 --- a/Typescript/src/models/groupResponse.ts +++ /dev/null @@ -1,114 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - number, - object, - optional, - Schema, - string, - unknown, -} from '../schema'; -import { GroupNameAndID, groupNameAndIDSchema } from './groupNameAndID'; -import { - LiveboardNameAndID, - liveboardNameAndIDSchema, -} from './liveboardNameAndID'; -import { OrgType, orgTypeSchema } from './orgType'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface GroupResponse { - /** Name of the group */ - name?: string; - /** A unique display name string for the user group */ - displayName?: string; - /** GUID of the group */ - id?: string; - /** Visibility of the group */ - visibility?: string; - /** Description of the group */ - description?: string; - /** Privileges assigned to the group */ - privileges?: string[]; - /** The organizations that user belongs to */ - orgs?: OrgType[]; - /** Name of the group to which is added */ - groups?: GroupNameAndID[]; - /** User Group Information by Id or Name. */ - users?: UserNameAndID[]; - /** Liveboards assigned to the group */ - assignedLiveboards?: LiveboardNameAndID[]; - userGroupContent?: unknown; - /** Tags assigned to the group */ - tags?: string[]; - /** Indicates if the group is deleted */ - isDeleted?: boolean; - /** Indicates if the group is hidden */ - isHidden?: boolean; - /** Indicates if the group is from external system */ - isExternal?: boolean; - isDeprecated?: boolean; - /** Indicates if the all the properties of group is provided */ - complete?: boolean; - /** Indicates if the group is system principal */ - isSystemPrincipal?: boolean; - /** Indicates the type of group */ - type?: string; - /** Indicates the type of parent object */ - parenttype?: string; - groupIdx?: number; - metadataVersion?: number; - /** Tenant id associated with the group */ - tenantId?: string; - indexVersion?: number; - generationNum?: number; - /** Date and time when group was created */ - created?: number; - /** Date and time of last modification of the group */ - modified?: number; - author?: UserNameAndID; - modifiedBy?: UserNameAndID; - owner?: UserNameAndID; -} - -export const groupResponseSchema: Schema = object({ - name: ['name', optional(string())], - displayName: ['displayName', optional(string())], - id: ['id', optional(string())], - visibility: ['visibility', optional(string())], - description: ['description', optional(string())], - privileges: ['privileges', optional(array(string()))], - orgs: ['orgs', optional(array(lazy(() => orgTypeSchema)))], - groups: ['groups', optional(array(lazy(() => groupNameAndIDSchema)))], - users: ['users', optional(array(lazy(() => userNameAndIDSchema)))], - assignedLiveboards: [ - 'assignedLiveboards', - optional(array(lazy(() => liveboardNameAndIDSchema))), - ], - userGroupContent: ['userGroupContent', optional(unknown())], - tags: ['tags', optional(array(string()))], - isDeleted: ['isDeleted', optional(boolean())], - isHidden: ['isHidden', optional(boolean())], - isExternal: ['isExternal', optional(boolean())], - isDeprecated: ['isDeprecated', optional(boolean())], - complete: ['complete', optional(boolean())], - isSystemPrincipal: ['isSystemPrincipal', optional(boolean())], - type: ['type', optional(string())], - parenttype: ['parenttype', optional(string())], - groupIdx: ['groupIdx', optional(number())], - metadataVersion: ['metadataVersion', optional(number())], - tenantId: ['tenantId', optional(string())], - indexVersion: ['indexVersion', optional(number())], - generationNum: ['generationNum', optional(number())], - created: ['created', optional(number())], - modified: ['modified', optional(number())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - modifiedBy: ['modifiedBy', optional(lazy(() => userNameAndIDSchema))], - owner: ['owner', optional(lazy(() => userNameAndIDSchema))], -}); diff --git a/Typescript/src/models/homeLiveboardResponse.ts b/Typescript/src/models/homeLiveboardResponse.ts deleted file mode 100644 index 51e67a0f3..000000000 --- a/Typescript/src/models/homeLiveboardResponse.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface HomeLiveboardResponse { - /** Name of the user */ - userName?: string; - /** The GUID of the user */ - userId?: string; - /** Name of the liveboard */ - liveboardName?: string; - /** The GUID of the liveboard */ - liveboardId?: string; -} - -export const homeLiveboardResponseSchema: Schema = object( - { - userName: ['userName', optional(string())], - userId: ['userId', optional(string())], - liveboardName: ['liveboardName', optional(string())], - liveboardId: ['liveboardId', optional(string())], - } -); diff --git a/Typescript/src/models/importPolicyEnum.ts b/Typescript/src/models/importPolicyEnum.ts deleted file mode 100644 index 2b0226a90..000000000 --- a/Typescript/src/models/importPolicyEnum.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for ImportPolicyEnum - */ -export enum ImportPolicyEnum { - PARTIAL = 'PARTIAL', - ALLORNONE = 'ALL_OR_NONE', - VALIDATEONLY = 'VALIDATE_ONLY', -} - -/** - * Schema for ImportPolicyEnum - */ -export const importPolicyEnumSchema: Schema = stringEnum(ImportPolicyEnum); diff --git a/Typescript/src/models/liveboardNameAndID.ts b/Typescript/src/models/liveboardNameAndID.ts deleted file mode 100644 index bd5f18d65..000000000 --- a/Typescript/src/models/liveboardNameAndID.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface LiveboardNameAndID { - /** Name of the liveboard */ - name?: string; - /** GUID of the liveboard */ - id?: string; -} - -export const liveboardNameAndIDSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/liveboardQueryResponse.ts b/Typescript/src/models/liveboardQueryResponse.ts deleted file mode 100644 index 2d07918d1..000000000 --- a/Typescript/src/models/liveboardQueryResponse.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { VizType, vizTypeSchema } from './vizType'; - -export interface LiveboardQueryResponse { - /** The name of the Liveboard */ - name?: string; - /** The GUID of the Liveboard */ - id?: string; - /** SQL query associated with the saved Answer */ - viz?: VizType[]; -} - -export const liveboardQueryResponseSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - viz: ['viz', optional(array(lazy(() => vizTypeSchema)))], - } -); diff --git a/Typescript/src/models/logicalTableHeader.ts b/Typescript/src/models/logicalTableHeader.ts deleted file mode 100644 index c9586a30b..000000000 --- a/Typescript/src/models/logicalTableHeader.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { boolean, number, object, optional, Schema, string } from '../schema'; - -export interface LogicalTableHeader { - id?: string; - name?: string; - author?: string; - authorName?: string; - authorDisplayName?: string; - created?: number; - modified?: number; - modifiedBy?: string; - generationNum?: number; - owner?: string; - deleted?: boolean; - hidden?: boolean; - database?: string; - schema?: string; - type?: string; - subType?: string; -} - -export const logicalTableHeaderSchema: Schema = object({ - id: ['id', optional(string())], - name: ['name', optional(string())], - author: ['author', optional(string())], - authorName: ['authorName', optional(string())], - authorDisplayName: ['authorDisplayName', optional(string())], - created: ['created', optional(number())], - modified: ['modified', optional(number())], - modifiedBy: ['modifiedBy', optional(string())], - generationNum: ['generationNum', optional(number())], - owner: ['owner', optional(string())], - deleted: ['deleted', optional(boolean())], - hidden: ['hidden', optional(boolean())], - database: ['database', optional(string())], - schema: ['schema', optional(string())], - type: ['type', optional(string())], - subType: ['subType', optional(string())], -}); diff --git a/Typescript/src/models/logsResponse.ts b/Typescript/src/models/logsResponse.ts deleted file mode 100644 index 877b996ed..000000000 --- a/Typescript/src/models/logsResponse.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface LogsResponse { - /** Date and time for the event in the log */ - date?: string; - /** Logged event at the time specified in JSON format. This includes, Event ID, A unique description of the event, for example, User login failed, Timestamp, User ID of the person initiating the event and IP address of the ThoughtSpot instance. */ - log?: string; -} - -export const logsResponseSchema: Schema = object({ - date: ['date', optional(string())], - log: ['log', optional(string())], -}); diff --git a/Typescript/src/models/metadataTagResponse.ts b/Typescript/src/models/metadataTagResponse.ts deleted file mode 100644 index 5221d3cce..000000000 --- a/Typescript/src/models/metadataTagResponse.ts +++ /dev/null @@ -1,58 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - boolean, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { ClientState, clientStateSchema } from './clientState'; -import { TagNameAndID, tagNameAndIDSchema } from './tagNameAndID'; - -export interface MetadataTagResponse { - /** Name of the tag */ - name?: string; - /** GUID of the tag */ - id?: string; - clientState?: ClientState; - indexVersion?: number; - generationNum?: number; - /** Indicates if the tag is deleted */ - isDeleted?: boolean; - /** Indicates if the tag is hidden */ - isHidden?: boolean; - /** Indicates if the tag is from external system */ - isExternal?: boolean; - isDeprecated?: boolean; - /** Date and time when group was created */ - created?: number; - /** Date and time of last modification of the group */ - modified?: number; - modifiedBy?: TagNameAndID; - author?: TagNameAndID; - owner?: TagNameAndID; -} - -export const metadataTagResponseSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], - clientState: ['clientState', optional(lazy(() => clientStateSchema))], - indexVersion: ['indexVersion', optional(number())], - generationNum: ['generationNum', optional(number())], - isDeleted: ['isDeleted', optional(boolean())], - isHidden: ['isHidden', optional(boolean())], - isExternal: ['isExternal', optional(boolean())], - isDeprecated: ['isDeprecated', optional(boolean())], - created: ['created', optional(number())], - modified: ['modified', optional(number())], - modifiedBy: ['modifiedBy', optional(lazy(() => tagNameAndIDSchema))], - author: ['author', optional(lazy(() => tagNameAndIDSchema))], - owner: ['owner', optional(lazy(() => tagNameAndIDSchema))], -}); diff --git a/Typescript/src/models/nameAndIdInput.ts b/Typescript/src/models/nameAndIdInput.ts deleted file mode 100644 index 43fe352ff..000000000 --- a/Typescript/src/models/nameAndIdInput.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface NameAndIdInput { - /** Name of the user */ - name?: string; - /** GUID of the user */ - id?: string; -} - -export const nameAndIdInputSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/orgType.ts b/Typescript/src/models/orgType.ts deleted file mode 100644 index 41be41077..000000000 --- a/Typescript/src/models/orgType.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { number, object, optional, Schema, string } from '../schema'; - -export interface OrgType { - /** Name of the organization */ - name?: string; - /** Id of the organization */ - id?: number; -} - -export const orgTypeSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(number())], -}); diff --git a/Typescript/src/models/orgsResponse.ts b/Typescript/src/models/orgsResponse.ts deleted file mode 100644 index 7403502d1..000000000 --- a/Typescript/src/models/orgsResponse.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { boolean, number, object, optional, Schema, string } from '../schema'; - -export interface OrgsResponse { - /** ID of the organization searched for */ - orgId?: number; - /** Name of the organization searched for */ - orgName?: string; - /** Description associated with the organization */ - description?: string; - /** GUID of the ALL group in the organization */ - allGroupUserId?: string; - /** GUID of the admin group in the organization */ - defaultAdminUserGroupId?: string; - /** Indicates if the organization is active or not */ - active?: boolean; -} - -export const orgsResponseSchema: Schema = object({ - orgId: ['orgId', optional(number())], - orgName: ['orgName', optional(string())], - description: ['description', optional(string())], - allGroupUserId: ['allGroupUserId', optional(string())], - defaultAdminUserGroupId: ['defaultAdminUserGroupId', optional(string())], - active: ['active', optional(boolean())], -}); diff --git a/Typescript/src/models/orientationEnum.ts b/Typescript/src/models/orientationEnum.ts deleted file mode 100644 index b1fbf12c2..000000000 --- a/Typescript/src/models/orientationEnum.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for OrientationEnum - */ -export enum OrientationEnum { - PORTRAIT = 'PORTRAIT', - LANDSCAPE = 'LANDSCAPE', -} - -/** - * Schema for OrientationEnum - */ -export const orientationEnumSchema: Schema = stringEnum(OrientationEnum); diff --git a/Typescript/src/models/pdfOptionsInput.ts b/Typescript/src/models/pdfOptionsInput.ts deleted file mode 100644 index d3ff42084..000000000 --- a/Typescript/src/models/pdfOptionsInput.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { boolean, object, optional, Schema, string } from '../schema'; -import { OrientationEnum, orientationEnumSchema } from './orientationEnum'; - -export interface PdfOptionsInput { - /** Page orientation for the PDF. Default: PORTRAIT */ - orientation?: OrientationEnum; - /** - * When set to true, only the first page of the tables is displayed in the file. - * This setting is applicable only when generating report for specific visualization ids. Default: false - */ - truncateTables?: boolean; - /** Include customized wide logo if available in the footer. Default: true */ - includeLogo?: boolean; - /** Footer text to include in the footer of each page of the PDF. */ - footerText?: string; - /** When set to true, the page number is included in the footer of each page. Default: true */ - includePageNumber?: boolean; - /** When set to true, a cover page with the Liveboard title is added in the PDF. Default: true */ - includeCoverPage?: boolean; - /** When set to true, a second page with a list of all applied filters is added in the PDF. Default: true */ - includeFilterPage?: boolean; -} - -export const pdfOptionsInputSchema: Schema = object({ - orientation: ['orientation', optional(orientationEnumSchema)], - truncateTables: ['truncateTables', optional(boolean())], - includeLogo: ['includeLogo', optional(boolean())], - footerText: ['footerText', optional(string())], - includePageNumber: ['includePageNumber', optional(boolean())], - includeCoverPage: ['includeCoverPage', optional(boolean())], - includeFilterPage: ['includeFilterPage', optional(boolean())], -}); diff --git a/Typescript/src/models/permissionsTypeSearch.ts b/Typescript/src/models/permissionsTypeSearch.ts deleted file mode 100644 index ec5186b28..000000000 --- a/Typescript/src/models/permissionsTypeSearch.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - TsObjectTypeSerach, - tsObjectTypeSerachSchema, -} from './tsObjectTypeSerach'; - -export interface PermissionsTypeSearch { - /** Indicates the type of the object */ - type?: string; - /** An array of objects of type mentioned in type field */ - tsObject?: TsObjectTypeSerach[]; -} - -export const permissionsTypeSearchSchema: Schema = object( - { - type: ['type', optional(string())], - tsObject: [ - 'tsObject', - optional(array(lazy(() => tsObjectTypeSerachSchema))), - ], - } -); diff --git a/Typescript/src/models/pinboardDetails.ts b/Typescript/src/models/pinboardDetails.ts deleted file mode 100644 index f0bb1082c..000000000 --- a/Typescript/src/models/pinboardDetails.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface PinboardDetails { - /** pinboard id of recently pinned pinboard */ - pinboardId?: string; - /** pinboard name of recently pinned pinboard */ - pinboardName?: string; - /** tab id of recently pinned tab */ - tabId?: string; - /** tab name of recently pinned tab */ - tabName?: string; -} - -export const pinboardDetailsSchema: Schema = object({ - pinboardId: ['pinboardId', optional(string())], - pinboardName: ['pinboardName', optional(string())], - tabId: ['tabId', optional(string())], - tabName: ['tabName', optional(string())], -}); diff --git a/Typescript/src/models/principalSearchResponse.ts b/Typescript/src/models/principalSearchResponse.ts deleted file mode 100644 index 116fee583..000000000 --- a/Typescript/src/models/principalSearchResponse.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - PermissionsTypeSearch, - permissionsTypeSearchSchema, -} from './permissionsTypeSearch'; - -export interface PrincipalSearchResponse { - /** GUID of the user or user group */ - id?: string; - /** Name of the user or user group */ - name?: string; - /** Indicates the type of principal */ - type?: string; - /** Indicates the permission which user or user group has on the object */ - permissions?: PermissionsTypeSearch[]; -} - -export const principalSearchResponseSchema: Schema = object( - { - id: ['id', optional(string())], - name: ['name', optional(string())], - type: ['type', optional(string())], - permissions: [ - 'permissions', - optional(array(lazy(() => permissionsTypeSearchSchema))), - ], - } -); diff --git a/Typescript/src/models/privilegeEnum.ts b/Typescript/src/models/privilegeEnum.ts deleted file mode 100644 index 232d9f270..000000000 --- a/Typescript/src/models/privilegeEnum.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for PrivilegeEnum - */ -export enum PrivilegeEnum { - RANALYSIS = 'RANALYSIS', - DATAMANAGEMENT = 'DATAMANAGEMENT', - APPLICATIONADMINISTRATION = 'APPLICATION_ADMINISTRATION', - USERADMINISTRATION = 'USER_ADMINISTRATION', - SYSTEMMANAGEMENT = 'SYSTEMMANAGEMENT', - SYSTEMINFOADMINISTRATION = 'SYSTEM_INFO_ADMINISTRATION', - AUTHORING = 'AUTHORING', - BACKUPADMINISTRATION = 'BACKUP_ADMINISTRATION', - SHAREWITHALL = 'SHAREWITHALL', - DEVELOPER = 'DEVELOPER', - JOBSCHEDULING = 'JOBSCHEDULING', - GROUPADMINISTRATION = 'GROUP_ADMINISTRATION', - BYPASSRLS = 'BYPASSRLS', - EXPERIMENTALFEATUREPRIVILEGE = 'EXPERIMENTALFEATUREPRIVILEGE', - A3ANALYSIS = 'A3ANALYSIS', - USERDATAUPLOADING = 'USERDATAUPLOADING', - DATADOWNLOADING = 'DATADOWNLOADING', - DISABLEPINBOARDCREATION = 'DISABLE_PINBOARD_CREATION', - ADMINISTRATION = 'ADMINISTRATION', -} - -/** - * Schema for PrivilegeEnum - */ -export const privilegeEnumSchema: Schema = stringEnum(PrivilegeEnum); diff --git a/Typescript/src/models/secuirityDependents.ts b/Typescript/src/models/secuirityDependents.ts deleted file mode 100644 index 0db1680f0..000000000 --- a/Typescript/src/models/secuirityDependents.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - DependentPermission, - dependentPermissionSchema, -} from './dependentPermission'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface SecuirityDependents { - /** GUID of the object */ - id?: string; - /** Name of the object */ - name?: string; - /** Indicates the type of the object */ - type?: string; - /** Owner of the object */ - owner?: string; - author?: UserNameAndID; - permissions?: DependentPermission[]; -} - -export const secuirityDependentsSchema: Schema = object({ - id: ['id', optional(string())], - name: ['name', optional(string())], - type: ['type', optional(string())], - owner: ['owner', optional(string())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - permissions: [ - 'permissions', - optional(array(lazy(() => dependentPermissionSchema))), - ], -}); diff --git a/Typescript/src/models/securityPermission.ts b/Typescript/src/models/securityPermission.ts deleted file mode 100644 index 4477f374e..000000000 --- a/Typescript/src/models/securityPermission.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { GroupPermission, groupPermissionSchema } from './groupPermission'; - -export interface SecurityPermission { - /** GUID of the user or user group */ - id?: string; - /** Name of the user or user group */ - name?: string; - /** Indicates the type of principal */ - type?: string; - /** Indicates the permission which user or user group has on the object */ - permission?: string; - /** Indicates the permission which user or user group has on the object through sharing of the object with this user or user group */ - sharedPermission?: string; - /** An array of object with details of permission on the user groups to which the user or user group belongs */ - groupPermission?: GroupPermission[]; -} - -export const securityPermissionSchema: Schema = object({ - id: ['id', optional(string())], - name: ['name', optional(string())], - type: ['type', optional(string())], - permission: ['permission', optional(string())], - sharedPermission: ['sharedPermission', optional(string())], - groupPermission: [ - 'groupPermission', - optional(array(lazy(() => groupPermissionSchema))), - ], -}); diff --git a/Typescript/src/models/securityPermissionResponse.ts b/Typescript/src/models/securityPermissionResponse.ts deleted file mode 100644 index 70649da5b..000000000 --- a/Typescript/src/models/securityPermissionResponse.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - SecuirityDependents, - secuirityDependentsSchema, -} from './secuirityDependents'; -import { - SecurityPermission, - securityPermissionSchema, -} from './securityPermission'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface SecurityPermissionResponse { - /** GUID of the object */ - id?: string; - /** Name of the object */ - name?: string; - /** Indicates the type of the object */ - type?: string; - /** GUID of the owner of the object */ - owner?: string; - author?: UserNameAndID; - /** An array of object with details of permission on users and user groups */ - permissions?: SecurityPermission[]; - /** The objects on which the primary object is dependent on */ - dependents?: SecuirityDependents[]; -} - -export const securityPermissionResponseSchema: Schema = object( - { - id: ['id', optional(string())], - name: ['name', optional(string())], - type: ['type', optional(string())], - owner: ['owner', optional(string())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - permissions: [ - 'permissions', - optional(array(lazy(() => securityPermissionSchema))), - ], - dependents: [ - 'dependents', - optional(array(lazy(() => secuirityDependentsSchema))), - ], - } -); diff --git a/Typescript/src/models/sessionLoginResponse.ts b/Typescript/src/models/sessionLoginResponse.ts deleted file mode 100644 index c4609bb95..000000000 --- a/Typescript/src/models/sessionLoginResponse.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -/** Login response */ -export interface SessionLoginResponse { - /** Username of the user account for which token is generated */ - userName?: string; - /** Bearer token generated. This will be blank when token type is Cookie */ - token?: string; - /** Date and time at which the token is generated */ - tokenCreatedTime?: string; - /** Duration in seconds after which the token expires */ - tokenExpiryDuration?: string; - /** Type of token generated */ - tokenType?: string; -} - -export const sessionLoginResponseSchema: Schema = object({ - userName: ['userName', optional(string())], - token: ['token', optional(string())], - tokenCreatedTime: ['tokenCreatedTime', optional(string())], - tokenExpiryDuration: ['tokenExpiryDuration', optional(string())], - tokenType: ['tokenType', optional(string())], -}); diff --git a/Typescript/src/models/sortBy1Enum.ts b/Typescript/src/models/sortBy1Enum.ts deleted file mode 100644 index 683b842ce..000000000 --- a/Typescript/src/models/sortBy1Enum.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for SortBy1Enum - */ -export enum SortBy1Enum { - DEFAULT = 'DEFAULT', - NAME = 'NAME', - DISPLAYNAME = 'DISPLAY_NAME', - AUTHOR = 'AUTHOR', - CREATED = 'CREATED', - MODIFIED = 'MODIFIED', - LASTACCESSED = 'LAST_ACCESSED', - SYNCED = 'SYNCED', - VIEWS = 'VIEWS', - NONE = 'NONE', - USERSTATE = 'USER_STATE', - ROWCOUNT = 'ROW_COUNT', -} - -/** - * Schema for SortBy1Enum - */ -export const sortBy1EnumSchema: Schema = stringEnum(SortBy1Enum); diff --git a/Typescript/src/models/sortByEnum.ts b/Typescript/src/models/sortByEnum.ts deleted file mode 100644 index 94f6a008a..000000000 --- a/Typescript/src/models/sortByEnum.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for SortByEnum - */ -export enum SortByEnum { - DEFAULT = 'DEFAULT', - NAME = 'NAME', - DISPLAYNAME = 'DISPLAY_NAME', - AUTHOR = 'AUTHOR', - CREATED = 'CREATED', - MODIFIED = 'MODIFIED', - LASTACCESSED = 'LAST_ACCESSED', - SYNCED = 'SYNCED', - VIEWS = 'VIEWS', - NONE = 'NONE', - USERSTATE = 'USER_STATE', - ROWCOUNT = 'ROW_COUNT', -} - -/** - * Schema for SortByEnum - */ -export const sortByEnumSchema: Schema = stringEnum(SortByEnum); diff --git a/Typescript/src/models/sortOrder1Enum.ts b/Typescript/src/models/sortOrder1Enum.ts deleted file mode 100644 index 233b73b0f..000000000 --- a/Typescript/src/models/sortOrder1Enum.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for SortOrder1Enum - */ -export enum SortOrder1Enum { - DEFAULT = 'DEFAULT', - ASC = 'ASC', - DESC = 'DESC', -} - -/** - * Schema for SortOrder1Enum - */ -export const sortOrder1EnumSchema: Schema = stringEnum(SortOrder1Enum); diff --git a/Typescript/src/models/sortOrderEnum.ts b/Typescript/src/models/sortOrderEnum.ts deleted file mode 100644 index 7adaa68dd..000000000 --- a/Typescript/src/models/sortOrderEnum.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for SortOrderEnum - */ -export enum SortOrderEnum { - DEFAULT = 'DEFAULT', - ASC = 'ASC', - DESC = 'DESC', -} - -/** - * Schema for SortOrderEnum - */ -export const sortOrderEnumSchema: Schema = stringEnum(SortOrderEnum); diff --git a/Typescript/src/models/state1Enum.ts b/Typescript/src/models/state1Enum.ts deleted file mode 100644 index 15be18ef0..000000000 --- a/Typescript/src/models/state1Enum.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for State1Enum - */ -export enum State1Enum { - ACTIVE = 'ACTIVE', - INACTIVE = 'INACTIVE', - EXPIRED = 'EXPIRED', - LOCKED = 'LOCKED', - PENDING = 'PENDING', -} - -/** - * Schema for State1Enum - */ -export const state1EnumSchema: Schema = stringEnum(State1Enum); diff --git a/Typescript/src/models/stateEnum.ts b/Typescript/src/models/stateEnum.ts deleted file mode 100644 index f7aa123f6..000000000 --- a/Typescript/src/models/stateEnum.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for StateEnum - */ -export enum StateEnum { - ACTIVE = 'ACTIVE', - INACTIVE = 'INACTIVE', - EXPIRED = 'EXPIRED', - LOCKED = 'LOCKED', - PENDING = 'PENDING', -} - -/** - * Schema for StateEnum - */ -export const stateEnumSchema: Schema = stringEnum(StateEnum); diff --git a/Typescript/src/models/tableColumns.ts b/Typescript/src/models/tableColumns.ts deleted file mode 100644 index 61b0da0fb..000000000 --- a/Typescript/src/models/tableColumns.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TableColumns { - /** Name of the column */ - name?: string; - /** Datatype of the column */ - dataType?: string; -} - -export const tableColumnsSchema: Schema = object({ - name: ['name', optional(string())], - dataType: ['dataType', optional(string())], -}); diff --git a/Typescript/src/models/tableInput.ts b/Typescript/src/models/tableInput.ts deleted file mode 100644 index a5e970033..000000000 --- a/Typescript/src/models/tableInput.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TableInput { - /** Name of the table */ - name?: string; - /** GUID of the Table */ - id?: string; -} - -export const tableInputSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/tableList.ts b/Typescript/src/models/tableList.ts deleted file mode 100644 index b89e41fa0..000000000 --- a/Typescript/src/models/tableList.ts +++ /dev/null @@ -1,68 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface TableList { - /** Name of the table */ - name?: string; - /** Type of the table */ - type?: string; - /** GUID of the table */ - id?: string; - /** Name of the database to which the table belongs */ - databaseStripe?: string; - /** Name of the schema to which the table belongs */ - schemaStripe?: string; - isExternal?: boolean; - /** Indicates if the table is deprecated */ - isDeprecated?: boolean; - /** Indicates if the table is deleted */ - isDeleted?: boolean; - /** Indicates if the table is hideen */ - isHidden?: boolean; - indexVersion?: number; - generationNum?: number; - /** Date and time when the table was created */ - created?: string; - /** Date and time of last modification of the table */ - modified?: string; - author?: UserNameAndID; - modifiedBy?: UserNameAndID; - owner?: UserNameAndID; - /** List of tags assigned to the table */ - tags?: string[]; -} - -export const tableListSchema: Schema = object({ - name: ['name', optional(string())], - type: ['type', optional(string())], - id: ['id', optional(string())], - databaseStripe: ['databaseStripe', optional(string())], - schemaStripe: ['schemaStripe', optional(string())], - isExternal: ['isExternal', optional(boolean())], - isDeprecated: ['isDeprecated', optional(boolean())], - isDeleted: ['isDeleted', optional(boolean())], - isHidden: ['isHidden', optional(boolean())], - indexVersion: ['indexVersion', optional(number())], - generationNum: ['generationNum', optional(number())], - created: ['created', optional(string())], - modified: ['modified', optional(string())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - modifiedBy: ['modifiedBy', optional(lazy(() => userNameAndIDSchema))], - owner: ['owner', optional(lazy(() => userNameAndIDSchema))], - tags: ['tags', optional(array(string()))], -}); diff --git a/Typescript/src/models/tagNameAndID.ts b/Typescript/src/models/tagNameAndID.ts deleted file mode 100644 index e84aa9e25..000000000 --- a/Typescript/src/models/tagNameAndID.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TagNameAndID { - /** Name of the group to which group is added */ - name?: string; - /** GUID of the group to which group is added */ - id?: string; -} - -export const tagNameAndIDSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/tagNameAndIdInput.ts b/Typescript/src/models/tagNameAndIdInput.ts deleted file mode 100644 index c1adb97fe..000000000 --- a/Typescript/src/models/tagNameAndIdInput.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TagNameAndIdInput { - /** Name of the tags */ - name?: string; - /** GUID of the tags */ - id?: string; -} - -export const tagNameAndIdInputSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/toUserNameAndIDInput.ts b/Typescript/src/models/toUserNameAndIDInput.ts deleted file mode 100644 index 0aef43148..000000000 --- a/Typescript/src/models/toUserNameAndIDInput.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -/** A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. */ -export interface ToUserNameAndIDInput { - /** Username of the user */ - name?: string; - /** GUID of the user */ - id?: string; -} - -export const toUserNameAndIDInputSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/topicEnum.ts b/Typescript/src/models/topicEnum.ts deleted file mode 100644 index 3ff30b096..000000000 --- a/Typescript/src/models/topicEnum.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for TopicEnum - */ -export enum TopicEnum { - SecurityLogs = 'security_logs', -} - -/** - * Schema for TopicEnum - */ -export const topicEnumSchema: Schema = stringEnum(TopicEnum); diff --git a/Typescript/src/models/tsObjectInput.ts b/Typescript/src/models/tsObjectInput.ts deleted file mode 100644 index 2df1a07c1..000000000 --- a/Typescript/src/models/tsObjectInput.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, Schema, string } from '../schema'; -import { TypeEnum, typeEnumSchema } from './typeEnum'; - -export interface TsObjectInput { - /** GUID of the metadata object */ - id: string; - /** Type of the metadata object */ - type: TypeEnum; -} - -export const tsObjectInputSchema: Schema = object({ - id: ['id', string()], - type: ['type', typeEnumSchema], -}); diff --git a/Typescript/src/models/tsObjectSearchInput.ts b/Typescript/src/models/tsObjectSearchInput.ts deleted file mode 100644 index 56b21dfbe..000000000 --- a/Typescript/src/models/tsObjectSearchInput.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, object, Schema, string } from '../schema'; -import { Type2Enum, type2EnumSchema } from './type2Enum'; - -export interface TsObjectSearchInput { - /** Type of the metadata objec */ - type: Type2Enum; - /** A JSON Array of GUIDs of the metadata object */ - id: string[]; -} - -export const tsObjectSearchInputSchema: Schema = object({ - type: ['type', type2EnumSchema], - id: ['id', array(string())], -}); diff --git a/Typescript/src/models/tsObjectTypeSerach.ts b/Typescript/src/models/tsObjectTypeSerach.ts deleted file mode 100644 index f9cb16b7d..000000000 --- a/Typescript/src/models/tsObjectTypeSerach.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { GroupPermission, groupPermissionSchema } from './groupPermission'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface TsObjectTypeSerach { - /** GUID of the object */ - id?: string; - /** Name of the object */ - name?: string; - /** Owner of the object */ - owner?: string; - author?: UserNameAndID; - /** Indicates the permission which user or user group has on the object */ - permission?: string; - /** Indicates the permission which user or user group has on the object through sharing of the object with the user or user group */ - sharedPermission?: string; - /** An array of object with details of permission on the user groups to which the user or user group belongs */ - groupPermission?: GroupPermission[]; -} - -export const tsObjectTypeSerachSchema: Schema = object({ - id: ['id', optional(string())], - name: ['name', optional(string())], - owner: ['owner', optional(string())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - permission: ['permission', optional(string())], - sharedPermission: ['sharedPermission', optional(string())], - groupPermission: [ - 'groupPermission', - optional(array(lazy(() => groupPermissionSchema))), - ], -}); diff --git a/Typescript/src/models/tspublicRestV2AdminAssignauthorRequest.ts b/Typescript/src/models/tspublicRestV2AdminAssignauthorRequest.ts deleted file mode 100644 index 83871cd0e..000000000 --- a/Typescript/src/models/tspublicRestV2AdminAssignauthorRequest.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2AdminAssignauthorRequest { - /** A JSON array of GUIDs of the metadata objects. */ - tsObjectId: string[]; - /** User name of the user account */ - name?: string; - /** The GUID of the user account */ - id?: string; -} - -export const tspublicRestV2AdminAssignauthorRequestSchema: Schema = object( - { - tsObjectId: ['tsObjectId', array(string())], - name: ['name', optional(string())], - id: ['id', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2AdminChangeauthorRequest.ts b/Typescript/src/models/tspublicRestV2AdminChangeauthorRequest.ts deleted file mode 100644 index bd4ebf0ad..000000000 --- a/Typescript/src/models/tspublicRestV2AdminChangeauthorRequest.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, Schema, string } from '../schema'; -import { - FromUserNameAndIDInput, - fromUserNameAndIDInputSchema, -} from './fromUserNameAndIDInput'; -import { - ToUserNameAndIDInput, - toUserNameAndIDInputSchema, -} from './toUserNameAndIDInput'; - -export interface TspublicRestV2AdminChangeauthorRequest { - /** - * A JSON array of GUIDs of the metadata objects. - * To change owner of all the objects owned by a user, provide single input as ALL. - * If multiple object ids along with ALL is provided as input, then ALL will be considered. - */ - tsObjectId: string[]; - /** - * A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. - * If a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. - * Provide either name or id as input. When both are given user id will be considered. - */ - fromUser: FromUserNameAndIDInput; - /** A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered. */ - toUser: ToUserNameAndIDInput; -} - -export const tspublicRestV2AdminChangeauthorRequestSchema: Schema = object( - { - tsObjectId: ['tsObjectId', array(string())], - fromUser: ['fromUser', lazy(() => fromUserNameAndIDInputSchema)], - toUser: ['toUser', lazy(() => toUserNameAndIDInputSchema)], - } -); diff --git a/Typescript/src/models/tspublicRestV2AdminConfigurationUpdateRequest.ts b/Typescript/src/models/tspublicRestV2AdminConfigurationUpdateRequest.ts deleted file mode 100644 index 148abb9cc..000000000 --- a/Typescript/src/models/tspublicRestV2AdminConfigurationUpdateRequest.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2AdminConfigurationUpdateRequest { - /** - * A JSON file with the key-value pair of configuration attributes to be updated. - * Example: {"defaultChartDataSize": 5000} - */ - configuration?: string; -} - -export const tspublicRestV2AdminConfigurationUpdateRequestSchema: Schema = object( - { configuration: ['configuration', optional(string())] } -); diff --git a/Typescript/src/models/tspublicRestV2AdminForcelogoutRequest.ts b/Typescript/src/models/tspublicRestV2AdminForcelogoutRequest.ts deleted file mode 100644 index 706fb5103..000000000 --- a/Typescript/src/models/tspublicRestV2AdminForcelogoutRequest.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema } from '../schema'; -import { NameAndIdInput, nameAndIdInputSchema } from './nameAndIdInput'; - -export interface TspublicRestV2AdminForcelogoutRequest { - /** A JSON array of name of users or GUIDs of groups or both. When both are given then id is considered. */ - user?: NameAndIdInput[]; -} - -export const tspublicRestV2AdminForcelogoutRequestSchema: Schema = object( - { user: ['user', optional(array(lazy(() => nameAndIdInputSchema)))] } -); diff --git a/Typescript/src/models/tspublicRestV2AdminResetpasswordRequest.ts b/Typescript/src/models/tspublicRestV2AdminResetpasswordRequest.ts deleted file mode 100644 index feb910670..000000000 --- a/Typescript/src/models/tspublicRestV2AdminResetpasswordRequest.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2AdminResetpasswordRequest { - /** User name of the user account */ - name?: string; - /** The GUID of the user account to query. */ - id?: string; - /** A new password for the user. */ - newPassword: string; -} - -export const tspublicRestV2AdminResetpasswordRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - newPassword: ['newPassword', string()], - } -); diff --git a/Typescript/src/models/tspublicRestV2AdminSyncprincipalRequest.ts b/Typescript/src/models/tspublicRestV2AdminSyncprincipalRequest.ts deleted file mode 100644 index 18fe7bdeb..000000000 --- a/Typescript/src/models/tspublicRestV2AdminSyncprincipalRequest.ts +++ /dev/null @@ -1,64 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - object, - optional, - Schema, - string, - unknown, -} from '../schema'; - -export interface TspublicRestV2AdminSyncprincipalRequest { - /** - * A JSON array of principal objects containing all users and groups present in the external system. - * Example: - * { - * "name": "Customer Success", - * "displayName": "Customer Success", - * "description": "CS", - * "created": 1568926267025, - * "modified": 1568926982242, - * "principalTypeEnum": "LOCAL_GROUP", - * "groupNames": [], - * "visibility": "DEFAULT" - * }, - * { - * "name": "test", - * "displayName": "test one", - * "created": 1587573621279, - * "modified": 1587573621674, - * "mail": "test2@test.com", - * "principalTypeEnum": "LOCAL_USER", - * "groupNames": [ "Administrator", "All" ], - * "visibility": "DEFAULT" - * } - * You can leave the created and modified dates blank for new users. - * You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum keyword. - * Set visibility to NON_SHARABLE, if you do not want the user to be able to share ThoughtSpot objects with other users in this group. - */ - principalObject: unknown[]; - /** Specifies whether to apply the changes to users and groups already in the cluster based on the principal object list input. */ - updateModified?: boolean; - /** Specifies whether to delete the users and groups already in the cluster if not present in the principal object list input. */ - deleteRemoved?: boolean; - /** - * Assign a password for new users added during the sync operation. - * All new users added will have this password. It is mandatory to provide value for this field if new users are included in the input list. - */ - newUserPassword?: string; -} - -export const tspublicRestV2AdminSyncprincipalRequestSchema: Schema = object( - { - principalObject: ['principalObject', array(unknown())], - updateModified: ['updateModified', optional(boolean())], - deleteRemoved: ['deleteRemoved', optional(boolean())], - newUserPassword: ['newUserPassword', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2ConnectionAddtableRequest.ts b/Typescript/src/models/tspublicRestV2ConnectionAddtableRequest.ts deleted file mode 100644 index 34b931dbf..000000000 --- a/Typescript/src/models/tspublicRestV2ConnectionAddtableRequest.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, Schema, string } from '../schema'; -import { AddTableInput, addTableInputSchema } from './addTableInput'; - -export interface TspublicRestV2ConnectionAddtableRequest { - /** GUID of the connection */ - id: string; - /** A JSON array of table details */ - table: AddTableInput[]; -} - -export const tspublicRestV2ConnectionAddtableRequestSchema: Schema = object( - { - id: ['id', string()], - table: ['table', array(lazy(() => addTableInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2ConnectionCreateRequest.ts b/Typescript/src/models/tspublicRestV2ConnectionCreateRequest.ts deleted file mode 100644 index 4115ee3e7..000000000 --- a/Typescript/src/models/tspublicRestV2ConnectionCreateRequest.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; -import { Type14Enum, type14EnumSchema } from './type14Enum'; - -export interface TspublicRestV2ConnectionCreateRequest { - /** Type of the data connection. */ - type: Type14Enum; - /** Name of the connection */ - name: string; - /** A short description of the connection. */ - description?: string; - /** A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. */ - configuration: string; -} - -export const tspublicRestV2ConnectionCreateRequestSchema: Schema = object( - { - type: ['type', type14EnumSchema], - name: ['name', string()], - description: ['description', optional(string())], - configuration: ['configuration', string()], - } -); diff --git a/Typescript/src/models/tspublicRestV2ConnectionRemovetableRequest.ts b/Typescript/src/models/tspublicRestV2ConnectionRemovetableRequest.ts deleted file mode 100644 index 1cbffcaf4..000000000 --- a/Typescript/src/models/tspublicRestV2ConnectionRemovetableRequest.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, Schema, string } from '../schema'; -import { TableInput, tableInputSchema } from './tableInput'; - -export interface TspublicRestV2ConnectionRemovetableRequest { - /** GUID of the connection */ - id: string; - /** A JSON array of name or GUIDs of the table or both. At least one input is required. Provide either table name or id. When both are given then id is considered */ - table: TableInput[]; -} - -export const tspublicRestV2ConnectionRemovetableRequestSchema: Schema = object( - { - id: ['id', string()], - table: ['table', array(lazy(() => tableInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2ConnectionSearchRequest.ts b/Typescript/src/models/tspublicRestV2ConnectionSearchRequest.ts deleted file mode 100644 index 1e794ca12..000000000 --- a/Typescript/src/models/tspublicRestV2ConnectionSearchRequest.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { SortBy1Enum, sortBy1EnumSchema } from './sortBy1Enum'; -import { SortOrder1Enum, sortOrder1EnumSchema } from './sortOrder1Enum'; -import { - TagNameAndIdInput, - tagNameAndIdInputSchema, -} from './tagNameAndIdInput'; -import { Type15Enum, type15EnumSchema } from './type15Enum'; - -export interface TspublicRestV2ConnectionSearchRequest { - /** The offset point, starting from where the records should be included in the response. If no input is provided then offset starts from 0 */ - offset?: number; - /** An alternate way to set offset for the starting point of the response. Offset field should be kept blank to use the value from this field. Offset value will be calculated as (batchNumber - 1) * batchSize. It is mandatory to provide a value for batchSize with batchNumber. Example: Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. */ - batchNumber?: number; - /** The number of records that should be included in the response starting from offset position. If no input is provided, then all records starting from the value provided in offset is included in the response. */ - batchSize?: number; - /** Field based on which the re.sponse needs to be ordered. Valid values */ - sortBy?: SortBy1Enum; - /** Order in which sortBy should be applied. Valid values */ - sortOrder?: SortOrder1Enum; - /** Type of the connect being searched. Valid values: SNOWFLAKE|AMAZON_REDSHIFT|GOOGLE_BIGQUERY|AZURE_SYNAPSE|TERADATA|STARBURST|SAP_HANA|ORACLE_ADW|DATABRICKS|DENODO */ - type: Type15Enum; - /** A pattern to match the name of the connection. This parameter supports matching case-insensitive strings. For a wildcard match, use %. */ - namePattern?: string; - /** A JSON array containing the GUIDs of the connections that you want to fetch. */ - fetchId?: string[]; - /** A JSON array containing the GUIDs of the connections that you want to skip. */ - skipId?: string[]; - /** A JSON array of name or GUID of tags or both. When both are given then id is considered */ - tag?: TagNameAndIdInput[]; -} - -export const tspublicRestV2ConnectionSearchRequestSchema: Schema = object( - { - offset: ['offset', optional(number())], - batchNumber: ['batchNumber', optional(number())], - batchSize: ['batchSize', optional(number())], - sortBy: ['sortBy', optional(sortBy1EnumSchema)], - sortOrder: ['sortOrder', optional(sortOrder1EnumSchema)], - type: ['type', type15EnumSchema], - namePattern: ['namePattern', optional(string())], - fetchId: ['fetchId', optional(array(string()))], - skipId: ['skipId', optional(array(string()))], - tag: ['tag', optional(array(lazy(() => tagNameAndIdInputSchema)))], - } -); diff --git a/Typescript/src/models/tspublicRestV2ConnectionTableRequest.ts b/Typescript/src/models/tspublicRestV2ConnectionTableRequest.ts deleted file mode 100644 index bfdefda5f..000000000 --- a/Typescript/src/models/tspublicRestV2ConnectionTableRequest.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { boolean, object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2ConnectionTableRequest { - /** The GUID of the connection */ - id: string; - /** - * A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered. - * To get the tables based on a different configuration, include required attributes in the connection configuration JSON. - * Example: - * Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"} - * Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} - */ - configuration?: string; - /** When set to true, the response will include column level details as well */ - includeColumn?: boolean; -} - -export const tspublicRestV2ConnectionTableRequestSchema: Schema = object( - { - id: ['id', string()], - configuration: ['configuration', optional(string())], - includeColumn: ['includeColumn', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2ConnectionTablecoloumnRequest.ts b/Typescript/src/models/tspublicRestV2ConnectionTablecoloumnRequest.ts deleted file mode 100644 index 3608a51bf..000000000 --- a/Typescript/src/models/tspublicRestV2ConnectionTablecoloumnRequest.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - ConnectionTableColumnsInput, - connectionTableColumnsInputSchema, -} from './connectionTableColumnsInput'; - -export interface TspublicRestV2ConnectionTablecoloumnRequest { - /** The GUID of the connection */ - id: string; - /** - * A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered. - * To get the tables based on a different configuration, include required attributes in the connection configuration JSON. - * Example: - * Get tables from Snowflake with a different user account than specified in the connection: {"user":"test_user","password":"test_pwd","role":"test_role"} - * Get tables from Redshift for different database than specified in the connection: {"database":"test_db"} - */ - configuration?: string; - /** List of table details */ - table: ConnectionTableColumnsInput[]; -} - -export const tspublicRestV2ConnectionTablecoloumnRequestSchema: Schema = object( - { - id: ['id', string()], - configuration: ['configuration', optional(string())], - table: ['table', array(lazy(() => connectionTableColumnsInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2ConnectionUpdateRequest.ts b/Typescript/src/models/tspublicRestV2ConnectionUpdateRequest.ts deleted file mode 100644 index b9f8f1f02..000000000 --- a/Typescript/src/models/tspublicRestV2ConnectionUpdateRequest.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2ConnectionUpdateRequest { - /** GUID of the connection */ - id: string; - /** The text to update the name of the connection. */ - name?: string; - /** The text to update the description of the connection. */ - description?: string; - /** A JSON object of the connection metadata. Include all the configuration attributes with original value along with the changes required to any attribute. */ - configuration: string; -} - -export const tspublicRestV2ConnectionUpdateRequestSchema: Schema = object( - { - id: ['id', string()], - name: ['name', optional(string())], - description: ['description', optional(string())], - configuration: ['configuration', string()], - } -); diff --git a/Typescript/src/models/tspublicRestV2CustomactionAssociationUpdateRequest.ts b/Typescript/src/models/tspublicRestV2CustomactionAssociationUpdateRequest.ts deleted file mode 100644 index cf3e53c4c..000000000 --- a/Typescript/src/models/tspublicRestV2CustomactionAssociationUpdateRequest.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, Schema, string } from '../schema'; - -export interface TspublicRestV2CustomactionAssociationUpdateRequest { - /** GUID of the custom action */ - id: string; - /** - * A JSON map of the attributes with association of the action to ThoughtSpot object ID - * Example: - * {"id":"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf","name":"My worksheet action","version":"v2","type":"URL","detail":{"link":"https://unpkg.com","function":"my-worksheet-action","authSelect":"NONE","authToken":"","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{}"},"actionAssociationMap":{"WORKSHEET":{"2b9d083a-275c-4984-9cfe-90b036affa17":{"enabled":"true","context":"PRIMARY"}}},"context":"NONE","availability":[ ],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - */ - association: string; -} - -export const tspublicRestV2CustomactionAssociationUpdateRequestSchema: Schema = object( - { id: ['id', string()], association: ['association', string()] } -); diff --git a/Typescript/src/models/tspublicRestV2CustomactionCreateRequest.ts b/Typescript/src/models/tspublicRestV2CustomactionCreateRequest.ts deleted file mode 100644 index ef4ab8669..000000000 --- a/Typescript/src/models/tspublicRestV2CustomactionCreateRequest.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, Schema, string } from '../schema'; - -export interface TspublicRestV2CustomactionCreateRequest { - /** - * A JSON object with the key-value pair of configuration attributes - * Example: - * {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - */ - configuration: string; -} - -export const tspublicRestV2CustomactionCreateRequestSchema: Schema = object( - { configuration: ['configuration', string()] } -); diff --git a/Typescript/src/models/tspublicRestV2CustomactionSearchRequest.ts b/Typescript/src/models/tspublicRestV2CustomactionSearchRequest.ts deleted file mode 100644 index 98f300088..000000000 --- a/Typescript/src/models/tspublicRestV2CustomactionSearchRequest.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2CustomactionSearchRequest { - /** - * A JSON array of tag GUIDs. - * If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags. - */ - tag?: string[]; -} - -export const tspublicRestV2CustomactionSearchRequestSchema: Schema = object( - { tag: ['tag', optional(array(string()))] } -); diff --git a/Typescript/src/models/tspublicRestV2CustomactionUpdateRequest.ts b/Typescript/src/models/tspublicRestV2CustomactionUpdateRequest.ts deleted file mode 100644 index b82c2d114..000000000 --- a/Typescript/src/models/tspublicRestV2CustomactionUpdateRequest.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, Schema, string } from '../schema'; - -export interface TspublicRestV2CustomactionUpdateRequest { - /** GUID of the custom action */ - id: string; - /** - * A JSON object with the key-value pair of configuration attributes - * Example: - * {"id":"3f7eac93-cce1-4ffc-b7a8-429353edbc6b","name":"unpkg test","version":"v2","type":"URL","detail":{"link":"https://unpkg.com ","function":"unpkg-test","authSelect":"BEARER","authToken":"asdfasadf3q4534534","encodeUser":"","apiKey":"X-API-KEY","apiValue":"","additionalUrlHeaders":"{\\"url_header1\\":{\\"id\\":\\"6a82908c-9328-40ff-b347-65adeda12f57\\",\\"key\\":\\"key1\\",\\"value\\":\\"value1\\"}}"},"actionAssociationMap":{"ANSWER":{"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5":{"enabled":"true","context":"MENU"}}},"context":"NONE","availability":["GLOBAL"],"userGroupList":["d0326b56-ef23-4c8a-8327-a30e99bcc72b"]} - */ - configuration: string; -} - -export const tspublicRestV2CustomactionUpdateRequestSchema: Schema = object( - { id: ['id', string()], configuration: ['configuration', string()] } -); diff --git a/Typescript/src/models/tspublicRestV2DataAnswerRequest.ts b/Typescript/src/models/tspublicRestV2DataAnswerRequest.ts deleted file mode 100644 index 1f1cb9ffc..000000000 --- a/Typescript/src/models/tspublicRestV2DataAnswerRequest.ts +++ /dev/null @@ -1,48 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { number, object, optional, Schema, string } from '../schema'; -import { FormatTypeEnum, formatTypeEnumSchema } from './formatTypeEnum'; - -export interface TspublicRestV2DataAnswerRequest { - /** - * The offset point, starting from where the records should be included in the response. - * If no input is provided then offset starts from 0. - */ - offset?: number; - /** - * An alternate way to set offset for the starting point of the response. - * The value in offset field will not be considered if batchNumber field has value greater than 0. - * Offset value will be calculated as (batchNumber - 1) * batchSize. - * It is mandatory to provide a value for batchSize with batchNumber. - * Example: - * Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - */ - batchNumber?: number; - /** - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is included in the response - */ - batchSize?: number; - /** The GUID of the Answer */ - id: string; - /** - * The format of the data in the response. - * FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - */ - formatType?: FormatTypeEnum; -} - -export const tspublicRestV2DataAnswerRequestSchema: Schema = object( - { - offset: ['offset', optional(number())], - batchNumber: ['batchNumber', optional(number())], - batchSize: ['batchSize', optional(number())], - id: ['id', string()], - formatType: ['formatType', optional(formatTypeEnumSchema)], - } -); diff --git a/Typescript/src/models/tspublicRestV2DataLiveboardRequest.ts b/Typescript/src/models/tspublicRestV2DataLiveboardRequest.ts deleted file mode 100644 index 69d4ac50c..000000000 --- a/Typescript/src/models/tspublicRestV2DataLiveboardRequest.ts +++ /dev/null @@ -1,68 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, number, object, optional, Schema, string } from '../schema'; -import { FormatTypeEnum, formatTypeEnumSchema } from './formatTypeEnum'; - -export interface TspublicRestV2DataLiveboardRequest { - /** - * The offset point, starting from where the records should be included in the response. - * If no input is provided then offset starts from 0. - */ - offset?: number; - /** - * An alternate way to set offset for the starting point of the response. - * The value in offset field will not be considered if batchNumber field has value greater than 0. - * Offset value will be calculated as (batchNumber - 1) * batchSize. - * It is mandatory to provide a value for batchSize with batchNumber. - * Example: - * Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - */ - batchNumber?: number; - /** - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is included in the response - */ - batchSize?: number; - /** The GUID of the Liveboard */ - id?: string; - /** If you have embedded ThoughtSpot in your host application, and you want to download Liveboard data with unsaved changes then, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If value for this field is provided, then id will not be considered. */ - transientContent?: string; - /** A JSON array of GUIDs of the visualizations in the Liveboard. */ - vizId?: string[]; - /** - * JSON object which contains filter condition to filter the data at the time of data retrieval. - * Example: {"col1":"region","op1":"EQ","val1":"northeast","col2":"date","op2":"BET","val2":["1625126400000","1625126400000"]} - * For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters - */ - runtimeFilter?: string; - /** - * JSON object which provides columns to sort the data at the time of data retrieval. - * Example: {"sortCol1":"region","asc1":true,"sortCol2":"date"} - * For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters. - */ - runtimeSort?: string; - /** - * The format of the data in the response. - * FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - */ - formatType?: FormatTypeEnum; -} - -export const tspublicRestV2DataLiveboardRequestSchema: Schema = object( - { - offset: ['offset', optional(number())], - batchNumber: ['batchNumber', optional(number())], - batchSize: ['batchSize', optional(number())], - id: ['id', optional(string())], - transientContent: ['transientContent', optional(string())], - vizId: ['vizId', optional(array(string()))], - runtimeFilter: ['runtimeFilter', optional(string())], - runtimeSort: ['runtimeSort', optional(string())], - formatType: ['formatType', optional(formatTypeEnumSchema)], - } -); diff --git a/Typescript/src/models/tspublicRestV2DataSearchRequest.ts b/Typescript/src/models/tspublicRestV2DataSearchRequest.ts deleted file mode 100644 index 424c56343..000000000 --- a/Typescript/src/models/tspublicRestV2DataSearchRequest.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { number, object, optional, Schema, string } from '../schema'; -import { FormatTypeEnum, formatTypeEnumSchema } from './formatTypeEnum'; - -export interface TspublicRestV2DataSearchRequest { - /** - * The offset point, starting from where the records should be included in the response. - * If no input is provided then offset starts from 0. - */ - offset?: number; - /** - * An alternate way to set offset for the starting point of the response. - * The value in offset field will not be considered if batchNumber field has value greater than 0. - * Offset value will be calculated as (batchNumber - 1) * batchSize. - * It is mandatory to provide a value for batchSize with batchNumber. - * Example: - * Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - */ - batchNumber?: number; - /** - * The number of records that should be included in the response starting from offset position. - * If no input is provided, then all records starting from the value provided in offset is included in the response - */ - batchSize?: number; - /** The data search query string. Example: [revenue] > 1000 [ship mode] = 'air' */ - queryString: string; - /** The GUID of the data object, either a worksheet, a view, or a table. */ - dataObjectId: string; - /** - * The format of the data in the response. - * FULL: The response comes in "column":"value" format. - * COMPACT: The response includes only the value of the columns. - */ - formatType?: FormatTypeEnum; -} - -export const tspublicRestV2DataSearchRequestSchema: Schema = object( - { - offset: ['offset', optional(number())], - batchNumber: ['batchNumber', optional(number())], - batchSize: ['batchSize', optional(number())], - queryString: ['queryString', string()], - dataObjectId: ['dataObjectId', string()], - formatType: ['formatType', optional(formatTypeEnumSchema)], - } -); diff --git a/Typescript/src/models/tspublicRestV2DatabaseTableCreateRequest.ts b/Typescript/src/models/tspublicRestV2DatabaseTableCreateRequest.ts deleted file mode 100644 index ff3c66cea..000000000 --- a/Typescript/src/models/tspublicRestV2DatabaseTableCreateRequest.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { boolean, object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2DatabaseTableCreateRequest { - /** Flag to indicate if the database and schema should be created if they do not exist in Falcon. (Valid values: True/False) */ - createDatabase?: boolean; - /** DDL of the table to be created. Example: {"database":{"name":"test_db"},"schema":{"name":"test_schema"},"table":{"id":{"name":"test_table"},"primary_key":[{"name":"test_pk"}],"column":[{"id":{"name":"test_pk"},"size":0,"data_type":"TYPE_INT32"},{"id":{"name":"test_col1"},"size":0,"data_type":"TYPE_FLOAT"},{"id":{"name":"test_col2"},"data_type":"TYPE_INT64","datetime":"TYPE_DATE"}{"id":{"name":"test_col3"},"size":10,"data_type":"TYPE_VAR_CHAR"}]}} */ - schema?: string; -} - -export const tspublicRestV2DatabaseTableCreateRequestSchema: Schema = object( - { - createDatabase: ['createDatabase', optional(boolean())], - schema: ['schema', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2DatabaseTableRunqueryRequest.ts b/Typescript/src/models/tspublicRestV2DatabaseTableRunqueryRequest.ts deleted file mode 100644 index 71b882469..000000000 --- a/Typescript/src/models/tspublicRestV2DatabaseTableRunqueryRequest.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, object, Schema, string } from '../schema'; - -export interface TspublicRestV2DatabaseTableRunqueryRequest { - /** A JSON array of TQL statements separated by semi-colon (;). Each TQL statement should end with semi-colon (;). The TQL operations that can be run through this API are restricted to create database and schema, alter table, delete and update table rows. If a TQL statement fails, then the subsequent statements in the array are not run. Example: ["alter table test_db.test_schema.test_table drop contraint primary key;";"alter table test_db.test_schema.test_table add column test_col4 varchar(10) DEFAULT '';"] */ - statement: string[]; -} - -export const tspublicRestV2DatabaseTableRunqueryRequestSchema: Schema = object( - { statement: ['statement', array(string())] } -); diff --git a/Typescript/src/models/tspublicRestV2GroupAddgroupRequest.ts b/Typescript/src/models/tspublicRestV2GroupAddgroupRequest.ts deleted file mode 100644 index 81a1b07e7..000000000 --- a/Typescript/src/models/tspublicRestV2GroupAddgroupRequest.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; - -export interface TspublicRestV2GroupAddgroupRequest { - /** Name of the group */ - name?: string; - /** The GUID of the group to query. */ - id?: string; - /** Array of objects of groups that the user belong to. */ - groups: GroupNameAndIDInput[]; -} - -export const tspublicRestV2GroupAddgroupRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - groups: ['groups', array(lazy(() => groupNameAndIDInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupAddprivilegeRequest.ts b/Typescript/src/models/tspublicRestV2GroupAddprivilegeRequest.ts deleted file mode 100644 index 05cdf053d..000000000 --- a/Typescript/src/models/tspublicRestV2GroupAddprivilegeRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, object, optional, Schema, string } from '../schema'; -import { PrivilegeEnum, privilegeEnumSchema } from './privilegeEnum'; - -export interface TspublicRestV2GroupAddprivilegeRequest { - /** Name of the group */ - name?: string; - /** The GUID of the group to query. */ - id?: string; - /** A JSON array of name of users or GUIDs of users or both. When both are given then id is considered */ - privileges?: PrivilegeEnum[]; -} - -export const tspublicRestV2GroupAddprivilegeRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - privileges: ['privileges', optional(array(privilegeEnumSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupAdduserRequest.ts b/Typescript/src/models/tspublicRestV2GroupAdduserRequest.ts deleted file mode 100644 index 4fb91fb88..000000000 --- a/Typescript/src/models/tspublicRestV2GroupAdduserRequest.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; - -export interface TspublicRestV2GroupAdduserRequest { - /** Name of the group */ - name?: string; - /** The GUID of the group to query. */ - id?: string; - /** Array of user name that you want to update in user group. */ - users: UserNameAndIDInput[]; -} - -export const tspublicRestV2GroupAdduserRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - users: ['users', array(lazy(() => userNameAndIDInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupCreateRequest.ts b/Typescript/src/models/tspublicRestV2GroupCreateRequest.ts deleted file mode 100644 index 0521d989c..000000000 --- a/Typescript/src/models/tspublicRestV2GroupCreateRequest.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; -import { PrivilegeEnum, privilegeEnumSchema } from './privilegeEnum'; -import { Type10Enum, type10EnumSchema } from './type10Enum'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; -import { Visibility2Enum, visibility2EnumSchema } from './visibility2Enum'; - -export interface TspublicRestV2GroupCreateRequest { - /** Name of the user group. The group name string must be unique. */ - name: string; - /** A unique display name string for the user group, for example, Developer group. */ - displayName: string; - /** Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. */ - visibility?: Visibility2Enum; - /** Description text for the group. */ - description?: string; - /** A JSON array of privileges assigned to the group */ - privileges?: PrivilegeEnum[]; - /** Unique identifier of the organization. If no value is provided then group will be created in the organization associated with the login session. */ - orgId?: number; - /** Array of objects of groups that the group belong to. */ - groups?: GroupNameAndIDInput[]; - /** Array of names of user names that the group belong to. */ - users?: UserNameAndIDInput[]; - /** Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. */ - type?: Type10Enum; -} - -export const tspublicRestV2GroupCreateRequestSchema: Schema = object( - { - name: ['name', string()], - displayName: ['displayName', string()], - visibility: ['visibility', optional(visibility2EnumSchema)], - description: ['description', optional(string())], - privileges: ['privileges', optional(array(privilegeEnumSchema))], - orgId: ['orgId', optional(number())], - groups: ['groups', optional(array(lazy(() => groupNameAndIDInputSchema)))], - users: ['users', optional(array(lazy(() => userNameAndIDInputSchema)))], - type: ['type', optional(type10EnumSchema)], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupRemovegroupRequest.ts b/Typescript/src/models/tspublicRestV2GroupRemovegroupRequest.ts deleted file mode 100644 index 38eb027fe..000000000 --- a/Typescript/src/models/tspublicRestV2GroupRemovegroupRequest.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; - -export interface TspublicRestV2GroupRemovegroupRequest { - /** Name of the group */ - name?: string; - /** The GUID of the group to query. */ - id?: string; - /** Array of objects of groups that the user belong to. */ - groups: GroupNameAndIDInput[]; -} - -export const tspublicRestV2GroupRemovegroupRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - groups: ['groups', array(lazy(() => groupNameAndIDInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupRemoveprivilegeRequest.ts b/Typescript/src/models/tspublicRestV2GroupRemoveprivilegeRequest.ts deleted file mode 100644 index deca1ba84..000000000 --- a/Typescript/src/models/tspublicRestV2GroupRemoveprivilegeRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, object, optional, Schema, string } from '../schema'; -import { PrivilegeEnum, privilegeEnumSchema } from './privilegeEnum'; - -export interface TspublicRestV2GroupRemoveprivilegeRequest { - /** Name of the group */ - name?: string; - /** The GUID of the group to query. */ - id?: string; - /** A JSON array of name of users or GUIDs of users or both. When both are given then id is considered */ - privileges?: PrivilegeEnum[]; -} - -export const tspublicRestV2GroupRemoveprivilegeRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - privileges: ['privileges', optional(array(privilegeEnumSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupRemoveuserRequest.ts b/Typescript/src/models/tspublicRestV2GroupRemoveuserRequest.ts deleted file mode 100644 index 051a172d0..000000000 --- a/Typescript/src/models/tspublicRestV2GroupRemoveuserRequest.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; - -export interface TspublicRestV2GroupRemoveuserRequest { - /** Name of the group */ - name?: string; - /** The GUID of the group to query. */ - id?: string; - /** Array of user name that you want to delete from user group. */ - users: UserNameAndIDInput[]; -} - -export const tspublicRestV2GroupRemoveuserRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - users: ['users', array(lazy(() => userNameAndIDInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupSearchRequest.ts b/Typescript/src/models/tspublicRestV2GroupSearchRequest.ts deleted file mode 100644 index c5fb183f9..000000000 --- a/Typescript/src/models/tspublicRestV2GroupSearchRequest.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; -import { PrivilegeEnum, privilegeEnumSchema } from './privilegeEnum'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; - -export interface TspublicRestV2GroupSearchRequest { - /** Array of field names that need to be included in the response */ - outputFields?: string[]; - /** Name of the user group */ - name?: string; - /** GUID of the group to update */ - id?: string; - /** A unique display name string for the user group, for example, Developer group. */ - displayName?: string; - /** Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. */ - visibility?: string; - /** Description text for the group. */ - description?: string; - /** A JSON array of privileges assigned to the group */ - privileges?: PrivilegeEnum[]; - /** Array of objects of groups that the user belong to. */ - groups?: GroupNameAndIDInput[]; - /** Array of user name that associated with group. */ - users?: UserNameAndIDInput[]; - /** Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. */ - type?: string; -} - -export const tspublicRestV2GroupSearchRequestSchema: Schema = object( - { - outputFields: ['outputFields', optional(array(string()))], - name: ['name', optional(string())], - id: ['id', optional(string())], - displayName: ['displayName', optional(string())], - visibility: ['visibility', optional(string())], - description: ['description', optional(string())], - privileges: ['privileges', optional(array(privilegeEnumSchema))], - groups: ['groups', optional(array(lazy(() => groupNameAndIDInputSchema)))], - users: ['users', optional(array(lazy(() => userNameAndIDInputSchema)))], - type: ['type', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2GroupUpdateRequest.ts b/Typescript/src/models/tspublicRestV2GroupUpdateRequest.ts deleted file mode 100644 index e922c6180..000000000 --- a/Typescript/src/models/tspublicRestV2GroupUpdateRequest.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; -import { PrivilegeEnum, privilegeEnumSchema } from './privilegeEnum'; -import { Type10Enum, type10EnumSchema } from './type10Enum'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; -import { Visibility2Enum, visibility2EnumSchema } from './visibility2Enum'; - -export interface TspublicRestV2GroupUpdateRequest { - /** Name of the user group. The group name string must be unique. */ - name?: string; - /** he GUID of the user account to query. */ - id?: string; - /** A unique display name string for the user group, for example, Developer group. */ - displayName?: string; - /** Visibility of the user group. The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. */ - visibility?: Visibility2Enum; - /** Description text for the group. */ - description?: string; - /** A JSON array of privileges assigned to the group */ - privileges?: PrivilegeEnum[]; - /** Array of objects of groups that the user belong to. */ - groups?: GroupNameAndIDInput[]; - /** Array of object, A JSON array of name of users of users. */ - users?: UserNameAndIDInput[]; - /** Array of string. An array of liveboard ids to be assigned to the group. */ - assignedLiveboards?: string[]; - /** Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. */ - type?: Type10Enum; -} - -export const tspublicRestV2GroupUpdateRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - displayName: ['displayName', optional(string())], - visibility: ['visibility', optional(visibility2EnumSchema)], - description: ['description', optional(string())], - privileges: ['privileges', optional(array(privilegeEnumSchema))], - groups: ['groups', optional(array(lazy(() => groupNameAndIDInputSchema)))], - users: ['users', optional(array(lazy(() => userNameAndIDInputSchema)))], - assignedLiveboards: ['assignedLiveboards', optional(array(string()))], - type: ['type', optional(type10EnumSchema)], - } -); diff --git a/Typescript/src/models/tspublicRestV2MaterializationRefreshviewRequest.ts b/Typescript/src/models/tspublicRestV2MaterializationRefreshviewRequest.ts deleted file mode 100644 index f8fc8aea1..000000000 --- a/Typescript/src/models/tspublicRestV2MaterializationRefreshviewRequest.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, Schema, string } from '../schema'; - -export interface TspublicRestV2MaterializationRefreshviewRequest { - /** GUID of metadata object */ - id: string; -} - -export const tspublicRestV2MaterializationRefreshviewRequestSchema: Schema = object( - { id: ['id', string()] } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataDependencyRequest.ts b/Typescript/src/models/tspublicRestV2MetadataDependencyRequest.ts deleted file mode 100644 index 7d8a0d2ca..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataDependencyRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, number, object, optional, Schema, string } from '../schema'; -import { Type13Enum, type13EnumSchema } from './type13Enum'; - -export interface TspublicRestV2MetadataDependencyRequest { - /** Type of the data object */ - type: Type13Enum; - /** A JSON array of GUIDs of the objects */ - id: string[]; - /** The maximum number of batches to fetch in a query. If this attribute is not defined, the value specified in the cluster configuration is used. To get the list of all dependent objects in a single query, define the batch size attribute as -1 */ - batchSize?: number; -} - -export const tspublicRestV2MetadataDependencyRequestSchema: Schema = object( - { - type: ['type', type13EnumSchema], - id: ['id', array(string())], - batchSize: ['batchSize', optional(number())], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataDetailSearchRequest.ts b/Typescript/src/models/tspublicRestV2MetadataDetailSearchRequest.ts deleted file mode 100644 index 35cd00064..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataDetailSearchRequest.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, boolean, object, optional, Schema, string } from '../schema'; -import { Type6Enum, type6EnumSchema } from './type6Enum'; - -export interface TspublicRestV2MetadataDetailSearchRequest { - /** Type of the metadata object being searched. */ - type: Type6Enum; - /** A JSON array of GUIDs of the objects. */ - id: string[]; - /** When set to true, returns details of the hidden objects, such as a column in a worksheet or a table. */ - showHidden?: boolean; - /** When set to true, the search assist data associated with a worksheet is not included in the API response. This attribute is applicable only for DATAOBJECT data type. */ - dropQuestionDetails?: boolean; - /** Specify the version to retrieve the objects from. By default, the API returns metadata for all versions of the object. */ - version?: string; -} - -export const tspublicRestV2MetadataDetailSearchRequestSchema: Schema = object( - { - type: ['type', type6EnumSchema], - id: ['id', array(string())], - showHidden: ['showHidden', optional(boolean())], - dropQuestionDetails: ['dropQuestionDetails', optional(boolean())], - version: ['version', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataFavoriteAssignRequest.ts b/Typescript/src/models/tspublicRestV2MetadataFavoriteAssignRequest.ts deleted file mode 100644 index ee6694c48..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataFavoriteAssignRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { TsObjectInput, tsObjectInputSchema } from './tsObjectInput'; - -export interface TspublicRestV2MetadataFavoriteAssignRequest { - /** Name of the user */ - userName?: string; - /** The GUID of the user */ - userId?: string; - /** A JSON Array of GUIDs and type of metadata object. */ - tsObject: TsObjectInput[]; -} - -export const tspublicRestV2MetadataFavoriteAssignRequestSchema: Schema = object( - { - userName: ['userName', optional(string())], - userId: ['userId', optional(string())], - tsObject: ['tsObject', array(lazy(() => tsObjectInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataFavoriteUnassignRequest.ts b/Typescript/src/models/tspublicRestV2MetadataFavoriteUnassignRequest.ts deleted file mode 100644 index 4e7daa5f9..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataFavoriteUnassignRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { TsObjectInput, tsObjectInputSchema } from './tsObjectInput'; - -export interface TspublicRestV2MetadataFavoriteUnassignRequest { - /** Name of the user */ - userName?: string; - /** The GUID of the user */ - userId?: string; - /** A JSON Array of GUIDs and type of metadata object. */ - tsObject: TsObjectInput[]; -} - -export const tspublicRestV2MetadataFavoriteUnassignRequestSchema: Schema = object( - { - userName: ['userName', optional(string())], - userId: ['userId', optional(string())], - tsObject: ['tsObject', array(lazy(() => tsObjectInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataHeaderSearchRequest.ts b/Typescript/src/models/tspublicRestV2MetadataHeaderSearchRequest.ts deleted file mode 100644 index 121f35c90..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataHeaderSearchRequest.ts +++ /dev/null @@ -1,107 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { AccessLevelInput, accessLevelInputSchema } from './accessLevelInput'; -import { NameAndIdInput, nameAndIdInputSchema } from './nameAndIdInput'; -import { SortByEnum, sortByEnumSchema } from './sortByEnum'; -import { SortOrderEnum, sortOrderEnumSchema } from './sortOrderEnum'; -import { - TagNameAndIdInput, - tagNameAndIdInputSchema, -} from './tagNameAndIdInput'; -import { Type3Enum, type3EnumSchema } from './type3Enum'; - -export interface TspublicRestV2MetadataHeaderSearchRequest { - /** Array of header field names that need to be included in the header response */ - outputFields?: string[]; - /** The batch offset, starting from where the records should be included in the response. If no input is provided then offset starts from 0. Default: 0 */ - offset?: number; - /** - * An alternate way to set offset for the starting point of the response. - * The value in offset field will not be considered if batchNumber field has value greater than 0. - * Offset value will be calculated as (batchNumber - 1) * batchSize. - * It is mandatory to provide a value for batchSize with batchNumber. - * Example: - * Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered. - */ - batchNumber?: number; - /** The number of records that should be included in the response starting from offset position. If no input is provided then first page is included in the response. */ - batchSize?: number; - /** Field based on which the response needs to be ordered. */ - sortBy?: SortByEnum; - /** Order in which sortBy should be applied. */ - sortOrder?: SortOrderEnum; - /** Type of the metadata object being searched. */ - type: Type3Enum; - /** A pattern to match the name of the metadata object. This parameter supports matching case-insensitive strings. For a wildcard match, use %. */ - namePattern?: string; - /** A JSON array containing the GUIDs of the metadata objects that you want to fetch. */ - fetchId?: string[]; - /** A JSON array containing the GUIDs of the metadata objects that you want to skip. */ - skipId?: string[]; - /** When set to true, returns details of the hidden objects, such as a column in a worksheet or a table. */ - showHidden?: boolean; - /** A flag to indicate whether to list only the auto created objects. When no value is provided as input then all objects are returned. */ - autoCreated?: boolean; - /** - * A JSON array of objects with user details for which the metadata objects should be considered from the repository - * If you specify ID or name of user and set the type parameter to USER, the API returns metadata objects associated with the user - * If you specify ID or name of user group and set the type parameter to USER_GROUP, the API returns metadata objects for all the users mapped to the specified user group. - * If the id or name parameter is not defined, but the type attribute is set to USER or USER_GROUP, then the API will not return and response. - * If no input is provided for any field for this object, then the API returns headers for all users. - * If both name and id is provided, then id will be considered. - */ - accessLevel?: AccessLevelInput[]; - /** A JSON array of name or GUID of tags or both. When both are given then id is considered. */ - tag?: TagNameAndIdInput[]; - /** A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. When both are given then id is considered. */ - favoriteFor?: NameAndIdInput[]; - /** A JSON array of name or GUID of the user or both who created the object. When both are given then id is considered */ - author?: NameAndIdInput[]; - /** A JSON array of name or GUID of the user or both who last modified the object. When both are given then id is considered. */ - lastModifiedBy?: NameAndIdInput[]; -} - -export const tspublicRestV2MetadataHeaderSearchRequestSchema: Schema = object( - { - outputFields: ['outputFields', optional(array(string()))], - offset: ['offset', optional(number())], - batchNumber: ['batchNumber', optional(number())], - batchSize: ['batchSize', optional(number())], - sortBy: ['sortBy', optional(sortByEnumSchema)], - sortOrder: ['sortOrder', optional(sortOrderEnumSchema)], - type: ['type', type3EnumSchema], - namePattern: ['namePattern', optional(string())], - fetchId: ['fetchId', optional(array(string()))], - skipId: ['skipId', optional(array(string()))], - showHidden: ['showHidden', optional(boolean())], - autoCreated: ['autoCreated', optional(boolean())], - accessLevel: [ - 'accessLevel', - optional(array(lazy(() => accessLevelInputSchema))), - ], - tag: ['tag', optional(array(lazy(() => tagNameAndIdInputSchema)))], - favoriteFor: [ - 'favoriteFor', - optional(array(lazy(() => nameAndIdInputSchema))), - ], - author: ['author', optional(array(lazy(() => nameAndIdInputSchema)))], - lastModifiedBy: [ - 'lastModifiedBy', - optional(array(lazy(() => nameAndIdInputSchema))), - ], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataHomeliveboardAssignRequest.ts b/Typescript/src/models/tspublicRestV2MetadataHomeliveboardAssignRequest.ts deleted file mode 100644 index 5e70c8c6d..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataHomeliveboardAssignRequest.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2MetadataHomeliveboardAssignRequest { - /** Name of the user */ - userName?: string; - /** The GUID of the user */ - userId?: string; - /** The GUID of the liveboard */ - liveboardId?: string; -} - -export const tspublicRestV2MetadataHomeliveboardAssignRequestSchema: Schema = object( - { - userName: ['userName', optional(string())], - userId: ['userId', optional(string())], - liveboardId: ['liveboardId', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataHomeliveboardUnassignRequest.ts b/Typescript/src/models/tspublicRestV2MetadataHomeliveboardUnassignRequest.ts deleted file mode 100644 index dc6f93c9c..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataHomeliveboardUnassignRequest.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2MetadataHomeliveboardUnassignRequest { - /** Name of the user */ - userName?: string; - /** The GUID of the user */ - userId?: string; -} - -export const tspublicRestV2MetadataHomeliveboardUnassignRequestSchema: Schema = object( - { - userName: ['userName', optional(string())], - userId: ['userId', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataTagAssignRequest.ts b/Typescript/src/models/tspublicRestV2MetadataTagAssignRequest.ts deleted file mode 100644 index d8feaa0dc..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataTagAssignRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { TsObjectInput, tsObjectInputSchema } from './tsObjectInput'; - -export interface TspublicRestV2MetadataTagAssignRequest { - /** Name of the tag */ - name?: string; - /** The GUID of the tag */ - id?: string; - /** A JSON Array of GUIDs and type of metadata object. */ - tsObject: TsObjectInput[]; -} - -export const tspublicRestV2MetadataTagAssignRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - tsObject: ['tsObject', array(lazy(() => tsObjectInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataTagCreateRequest.ts b/Typescript/src/models/tspublicRestV2MetadataTagCreateRequest.ts deleted file mode 100644 index 0bdf49f7a..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataTagCreateRequest.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2MetadataTagCreateRequest { - /** Name of the tag */ - name: string; - /** Hex color code to be assigned to the tag */ - color?: string; -} - -export const tspublicRestV2MetadataTagCreateRequestSchema: Schema = object( - { name: ['name', string()], color: ['color', optional(string())] } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataTagUnassignRequest.ts b/Typescript/src/models/tspublicRestV2MetadataTagUnassignRequest.ts deleted file mode 100644 index fa845724c..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataTagUnassignRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { TsObjectInput, tsObjectInputSchema } from './tsObjectInput'; - -export interface TspublicRestV2MetadataTagUnassignRequest { - /** Name of the tag */ - name?: string; - /** The GUID of the tag */ - id?: string; - /** A JSON Array of GUIDs and type of metadata object. */ - tsObject: TsObjectInput[]; -} - -export const tspublicRestV2MetadataTagUnassignRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - tsObject: ['tsObject', array(lazy(() => tsObjectInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataTagUpdateRequest.ts b/Typescript/src/models/tspublicRestV2MetadataTagUpdateRequest.ts deleted file mode 100644 index 95fd18912..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataTagUpdateRequest.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2MetadataTagUpdateRequest { - /** Name of the tag */ - name?: string; - /** The GUID of the tag */ - id?: string; - /** Hex color code to be assigned to the tag */ - color?: string; -} - -export const tspublicRestV2MetadataTagUpdateRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - color: ['color', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataTmlExportRequest.ts b/Typescript/src/models/tspublicRestV2MetadataTmlExportRequest.ts deleted file mode 100644 index 151234036..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataTmlExportRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, boolean, object, optional, Schema, string } from '../schema'; -import { FormatType3Enum, formatType3EnumSchema } from './formatType3Enum'; - -export interface TspublicRestV2MetadataTmlExportRequest { - /** A JSON array of GUIDs of the objects. */ - id: string[]; - /** The format in which to export the objects */ - formatType?: FormatType3Enum; - /** Specifies if you would like to export the associated objects. To export the objects associated with the objects specified in id, set the value to true. When set to true, the API exports any underlying worksheets, tables, or views for a given object. By default, the API does not export these underlying objects */ - exportAssociated?: boolean; -} - -export const tspublicRestV2MetadataTmlExportRequestSchema: Schema = object( - { - id: ['id', array(string())], - formatType: ['formatType', optional(formatType3EnumSchema)], - exportAssociated: ['exportAssociated', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2MetadataTmlImportRequest.ts b/Typescript/src/models/tspublicRestV2MetadataTmlImportRequest.ts deleted file mode 100644 index a2288fc5c..000000000 --- a/Typescript/src/models/tspublicRestV2MetadataTmlImportRequest.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, boolean, object, optional, Schema, string } from '../schema'; -import { ImportPolicyEnum, importPolicyEnumSchema } from './importPolicyEnum'; - -export interface TspublicRestV2MetadataTmlImportRequest { - /** - * A string array of TML objects to upload, in YAML or JSON format. - * If TML is in YAML format, then use escape characters for quotes and new line characters. - * Example TML: - * guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\ntable:\n name: TESTINT\n db: SUPPLYCHAIN_MAIN\n schema: PUBLIC\n db_table: TESTINT\n connection:\n name: SnowflakeConnection\n columns:\n - name: C1\n db_column_name: C1\n properties:\n column_type: MEASURE\n aggregation: SUM\n index_type: DONT_INDEX\n db_column_properties:\n data_type: INT64\n - * If TML is in JSON format, then use escape characters for quotes. - * Example TML: - * {\\"guid\\": \\"6d2c1c9b-a407-409c-8c0c-819aeb51350f\\", \\"table\\": { \\"name\\": \\"TESTINT\\", \\"db\\": \\"SUPPLYCHAIN_MAIN\\", \\"schema\\": \\"PUBLIC\\", \\"db_table\\": \\"TESTINT\\", \\"connection\\": { \\"name\\": \\"SnowflakeConnection\\" }, \\"columns\\": [ { \\"name\\": \\"C1\\", \\"db_column_name\\": \\"C1\\", \\"properties\\": { \\"column_type\\": \\"MEASURE\\", \\"aggregation\\": \\"SUM\\", \\"index_type\\": \\"DONT_INDEX\\" }, \\"db_column_properties\\": { \\"data_type\\": \\"INT64\\" } } ] } }', - */ - objectTML: string[]; - /** Policy to follow during import */ - importPolicy?: ImportPolicyEnum; - /** Specifies if you are updating or creating objects. To create new objects, specify true. By default, ThoughtSpot updates existing objects that have the same GUID as the objects you are importing. When set to true, the GUID property in the imported TML is replaced on the server, and the response headers will include the id_guid property with the GUID of the new object. The new object will be assigned a new GUID, even if the imported TML file included a guid value. Thus, there is no need to include the guid in the TML file if you are using forceCreate=true. */ - forceCreate?: boolean; -} - -export const tspublicRestV2MetadataTmlImportRequestSchema: Schema = object( - { - objectTML: ['objectTML', array(string())], - importPolicy: ['importPolicy', optional(importPolicyEnumSchema)], - forceCreate: ['forceCreate', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2OrgCreateRequest.ts b/Typescript/src/models/tspublicRestV2OrgCreateRequest.ts deleted file mode 100644 index 58a61c1ad..000000000 --- a/Typescript/src/models/tspublicRestV2OrgCreateRequest.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2OrgCreateRequest { - /** Name of the organization. */ - name: string; - /** Description text for the organization. */ - description?: string; -} - -export const tspublicRestV2OrgCreateRequestSchema: Schema = object( - { name: ['name', string()], description: ['description', optional(string())] } -); diff --git a/Typescript/src/models/tspublicRestV2OrgSearchRequest.ts b/Typescript/src/models/tspublicRestV2OrgSearchRequest.ts deleted file mode 100644 index 10fb521f4..000000000 --- a/Typescript/src/models/tspublicRestV2OrgSearchRequest.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { boolean, number, object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2OrgSearchRequest { - /** Name of the organization. */ - name?: string; - /** The ID of the organization. */ - id?: number; - /** When set to true, the response will include the details of deleted organization also. */ - showDeleted?: boolean; -} - -export const tspublicRestV2OrgSearchRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(number())], - showDeleted: ['showDeleted', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2OrgUpdateRequest.ts b/Typescript/src/models/tspublicRestV2OrgUpdateRequest.ts deleted file mode 100644 index 3b15e5e9b..000000000 --- a/Typescript/src/models/tspublicRestV2OrgUpdateRequest.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { boolean, number, object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2OrgUpdateRequest { - /** Name of the organization. */ - name?: string; - /** The ID of the organization. */ - id?: number; - /** Description text for the organization. */ - description?: string; - /** Status of the organization. */ - active?: boolean; -} - -export const tspublicRestV2OrgUpdateRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(number())], - description: ['description', optional(string())], - active: ['active', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2SecurityPermissionPrincipalSearchRequest.ts b/Typescript/src/models/tspublicRestV2SecurityPermissionPrincipalSearchRequest.ts deleted file mode 100644 index e769bcd11..000000000 --- a/Typescript/src/models/tspublicRestV2SecurityPermissionPrincipalSearchRequest.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema } from '../schema'; -import { - TsObjectSearchInput, - tsObjectSearchInputSchema, -} from './tsObjectSearchInput'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; - -export interface TspublicRestV2SecurityPermissionPrincipalSearchRequest { - /** A JSON array of principal names or GUIDs to be included in the request. When both are given then id is considered. */ - principal: UserNameAndIDInput[]; - /** A JSON Array of GUIDs and type of metadata object. */ - tsObject?: TsObjectSearchInput[]; -} - -export const tspublicRestV2SecurityPermissionPrincipalSearchRequestSchema: Schema = object( - { - principal: ['principal', array(lazy(() => userNameAndIDInputSchema))], - tsObject: [ - 'tsObject', - optional(array(lazy(() => tsObjectSearchInputSchema))), - ], - } -); diff --git a/Typescript/src/models/tspublicRestV2SecurityPermissionTsobjectSearchRequest.ts b/Typescript/src/models/tspublicRestV2SecurityPermissionTsobjectSearchRequest.ts deleted file mode 100644 index 29802f50e..000000000 --- a/Typescript/src/models/tspublicRestV2SecurityPermissionTsobjectSearchRequest.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, boolean, lazy, object, optional, Schema } from '../schema'; -import { - TsObjectSearchInput, - tsObjectSearchInputSchema, -} from './tsObjectSearchInput'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; - -export interface TspublicRestV2SecurityPermissionTsobjectSearchRequest { - /** A JSON Array of GUIDs and type of metadata object. */ - tsObject: TsObjectSearchInput[]; - /** A JSON array of principal names or GUIDs. When both are given then id is considered. */ - principal?: UserNameAndIDInput[]; - /** When this field is set to true, the API response includes the permission details for the dependent objects. */ - includeDependent?: boolean; -} - -export const tspublicRestV2SecurityPermissionTsobjectSearchRequestSchema: Schema = object( - { - tsObject: ['tsObject', array(lazy(() => tsObjectSearchInputSchema))], - principal: [ - 'principal', - optional(array(lazy(() => userNameAndIDInputSchema))), - ], - includeDependent: ['includeDependent', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2SecurityShareTsobjectRequest.ts b/Typescript/src/models/tspublicRestV2SecurityShareTsobjectRequest.ts deleted file mode 100644 index 5fe175124..000000000 --- a/Typescript/src/models/tspublicRestV2SecurityShareTsobjectRequest.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, boolean, object, optional, Schema, string } from '../schema'; -import { Type18Enum, type18EnumSchema } from './type18Enum'; - -export interface TspublicRestV2SecurityShareTsobjectRequest { - /** Type of metadata object. Valid values: Liveboard|Answer|DataObject|Column */ - type: Type18Enum; - /** A JSON array of the GUIDs of the objects to be shared */ - id: string[]; - /** - * A JSON object with GUIDs of user and user group, and the type of access privilge. - * You can provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user group can view the shared object, whereas MODIFY access enables users to modify the object. - * To remove access to a shared object, you can set the shareMode in the permission string to NO_ACCESS. Example: - * {"permissions": {"e7040a64-7ff1-4ab9-a1b0-f1acac596866": {"shareMode": "READ_ONLY"}, "f7b8f511-317c-485d-8131-26cf084ef47b": {"shareMode": "MODIFY"}, "7a9a6715-e154-431b-baaf-7b58246c13dd":{"shareMode":"NO_ACCESS"}}} - */ - permission: string; - /** The email addresses that should ne notified when the objects are shared. */ - emailId?: string[]; - /** When set to true, a notification is sent to the users after an object is shared. */ - notify?: boolean; - /** The message text to send in the notification email. */ - message?: string; - /** When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance. */ - includeCustomEmbedUrl?: boolean; -} - -export const tspublicRestV2SecurityShareTsobjectRequestSchema: Schema = object( - { - type: ['type', type18EnumSchema], - id: ['id', array(string())], - permission: ['permission', string()], - emailId: ['emailId', optional(array(string()))], - notify: ['notify', optional(boolean())], - message: ['message', optional(string())], - includeCustomEmbedUrl: ['includeCustomEmbedUrl', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2SecurityShareVisualizationRequest.ts b/Typescript/src/models/tspublicRestV2SecurityShareVisualizationRequest.ts deleted file mode 100644 index 5d8711e41..000000000 --- a/Typescript/src/models/tspublicRestV2SecurityShareVisualizationRequest.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, boolean, object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2SecurityShareVisualizationRequest { - /** A JSON array of the GUIDs of the objects to be shared */ - id: string; - /** The GUID of visualization */ - vizId: string; - /** The GUID of the users and user groups with which you want to share the visualization */ - principalId: string[]; - /** The email addresses that should ne notified when the objects are shared */ - emailId?: string[]; - /** When set to true, a notification is sent to the users after an object is shared. */ - notify?: boolean; - /** The message text to send in the notification email. */ - message?: string; - /** When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance. */ - includeCustomEmbedUrl?: boolean; -} - -export const tspublicRestV2SecurityShareVisualizationRequestSchema: Schema = object( - { - id: ['id', string()], - vizId: ['vizId', string()], - principalId: ['principalId', array(string())], - emailId: ['emailId', optional(array(string()))], - notify: ['notify', optional(boolean())], - message: ['message', optional(string())], - includeCustomEmbedUrl: ['includeCustomEmbedUrl', optional(boolean())], - } -); diff --git a/Typescript/src/models/tspublicRestV2UserAddgroupRequest.ts b/Typescript/src/models/tspublicRestV2UserAddgroupRequest.ts deleted file mode 100644 index d6240c55a..000000000 --- a/Typescript/src/models/tspublicRestV2UserAddgroupRequest.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; - -export interface TspublicRestV2UserAddgroupRequest { - /** User name of the user account */ - name?: string; - /** The GUID of the user account */ - id?: string; - /** Array of objects of groups that the user belong to. */ - groups: GroupNameAndIDInput[]; -} - -export const tspublicRestV2UserAddgroupRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - groups: ['groups', array(lazy(() => groupNameAndIDInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2UserAddorgRequest.ts b/Typescript/src/models/tspublicRestV2UserAddorgRequest.ts deleted file mode 100644 index 91cb2c8f7..000000000 --- a/Typescript/src/models/tspublicRestV2UserAddorgRequest.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, number, object, optional, Schema } from '../schema'; -import { - UserNameAndIDInput, - userNameAndIDInputSchema, -} from './userNameAndIDInput'; - -export interface TspublicRestV2UserAddorgRequest { - /** The ID of the organization. */ - orgId?: number; - /** Array of objects. A JSON array of name of users or GUIDs of users or both. When both are given then id is considered */ - users: UserNameAndIDInput[]; -} - -export const tspublicRestV2UserAddorgRequestSchema: Schema = object( - { - orgId: ['orgId', optional(number())], - users: ['users', array(lazy(() => userNameAndIDInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2UserChangepasswordRequest.ts b/Typescript/src/models/tspublicRestV2UserChangepasswordRequest.ts deleted file mode 100644 index d164409fd..000000000 --- a/Typescript/src/models/tspublicRestV2UserChangepasswordRequest.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface TspublicRestV2UserChangepasswordRequest { - /** User name of the user account. */ - name?: string; - /** The GUID of the user account to query. */ - id?: string; - /** The current password of the user. */ - currentPassword: string; - /** A new password for the user. */ - newPassword: string; -} - -export const tspublicRestV2UserChangepasswordRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - currentPassword: ['currentPassword', string()], - newPassword: ['newPassword', string()], - } -); diff --git a/Typescript/src/models/tspublicRestV2UserRemovegroupRequest.ts b/Typescript/src/models/tspublicRestV2UserRemovegroupRequest.ts deleted file mode 100644 index d6b261b82..000000000 --- a/Typescript/src/models/tspublicRestV2UserRemovegroupRequest.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { array, lazy, object, optional, Schema, string } from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; - -export interface TspublicRestV2UserRemovegroupRequest { - /** User name of the user account */ - name?: string; - /** The GUID of the user account */ - id?: string; - /** Array of objects of groups that the user belong to. */ - groups: GroupNameAndIDInput[]; -} - -export const tspublicRestV2UserRemovegroupRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - groups: ['groups', array(lazy(() => groupNameAndIDInputSchema))], - } -); diff --git a/Typescript/src/models/tspublicRestV2UserSearchRequest.ts b/Typescript/src/models/tspublicRestV2UserSearchRequest.ts deleted file mode 100644 index 5a5264119..000000000 --- a/Typescript/src/models/tspublicRestV2UserSearchRequest.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - object, - optional, - Schema, - string, -} from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; -import { PrivilegeEnum, privilegeEnumSchema } from './privilegeEnum'; - -export interface TspublicRestV2UserSearchRequest { - /** Array of field names that need to be included in the response */ - outputFields?: string[]; - /** User name of the user account */ - name?: string; - /** The GUID of the user account */ - id?: string; - /** A unique display name string for the user, usually their first and last name. */ - displayName?: string; - /** Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. */ - visibility?: string; - /** email of the user. */ - mail?: string; - /** Array of objects of groups that the user belong to. */ - groups?: GroupNameAndIDInput[]; - /** Privileges assigned to user account */ - privileges?: PrivilegeEnum[]; - /** Status of user account. acitve or inactive. */ - state?: string; - /** User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. */ - notifyOnShare?: boolean; - /** The user preference for revisiting the onboarding experience. */ - showWalkMe?: boolean; - /** ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. */ - analystOnboardingComplete?: boolean; - /** Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. */ - type?: string; -} - -export const tspublicRestV2UserSearchRequestSchema: Schema = object( - { - outputFields: ['outputFields', optional(array(string()))], - name: ['name', optional(string())], - id: ['id', optional(string())], - displayName: ['displayName', optional(string())], - visibility: ['visibility', optional(string())], - mail: ['mail', optional(string())], - groups: ['groups', optional(array(lazy(() => groupNameAndIDInputSchema)))], - privileges: ['privileges', optional(array(privilegeEnumSchema))], - state: ['state', optional(string())], - notifyOnShare: ['notifyOnShare', optional(boolean())], - showWalkMe: ['showWalkMe', optional(boolean())], - analystOnboardingComplete: [ - 'analystOnboardingComplete', - optional(boolean()), - ], - type: ['type', optional(string())], - } -); diff --git a/Typescript/src/models/tspublicRestV2UserUpdateRequest.ts b/Typescript/src/models/tspublicRestV2UserUpdateRequest.ts deleted file mode 100644 index bfe47663e..000000000 --- a/Typescript/src/models/tspublicRestV2UserUpdateRequest.ts +++ /dev/null @@ -1,66 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - object, - optional, - Schema, - string, -} from '../schema'; -import { - GroupNameAndIDInput, - groupNameAndIDInputSchema, -} from './groupNameAndIDInput'; -import { State1Enum, state1EnumSchema } from './state1Enum'; -import { Type9Enum, type9EnumSchema } from './type9Enum'; -import { Visibility1Enum, visibility1EnumSchema } from './visibility1Enum'; - -export interface TspublicRestV2UserUpdateRequest { - /** Name of the user. The username string must be unique. */ - name?: string; - /** The GUID of the user account to query */ - id?: string; - /** A unique display name string for the user, usually their first and last name. */ - displayName?: string; - /** Visibility of the user account. The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. */ - visibility?: Visibility1Enum; - /** email of the user. */ - mail?: string; - /** Status of user account. acitve or inactive. */ - state?: State1Enum; - /** User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. */ - notifyOnShare?: boolean; - /** The user preference for revisiting the onboarding experience. */ - showWalkMe?: boolean; - /** ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. */ - analystOnboardingComplete?: boolean; - /** Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. */ - type?: Type9Enum; - /** Array of objects of groups that the user belong to. */ - groups?: GroupNameAndIDInput[]; -} - -export const tspublicRestV2UserUpdateRequestSchema: Schema = object( - { - name: ['name', optional(string())], - id: ['id', optional(string())], - displayName: ['displayName', optional(string())], - visibility: ['visibility', optional(visibility1EnumSchema)], - mail: ['mail', optional(string())], - state: ['state', optional(state1EnumSchema)], - notifyOnShare: ['notifyOnShare', optional(boolean())], - showWalkMe: ['showWalkMe', optional(boolean())], - analystOnboardingComplete: [ - 'analystOnboardingComplete', - optional(boolean()), - ], - type: ['type', optional(type9EnumSchema)], - groups: ['groups', optional(array(lazy(() => groupNameAndIDInputSchema)))], - } -); diff --git a/Typescript/src/models/type10Enum.ts b/Typescript/src/models/type10Enum.ts deleted file mode 100644 index 7857665cb..000000000 --- a/Typescript/src/models/type10Enum.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type10Enum - */ -export enum Type10Enum { - LOCALGROUP = 'LOCAL_GROUP', - TENANTGROUP = 'TENANT_GROUP', -} - -/** - * Schema for Type10Enum - */ -export const type10EnumSchema: Schema = stringEnum(Type10Enum); diff --git a/Typescript/src/models/type13Enum.ts b/Typescript/src/models/type13Enum.ts deleted file mode 100644 index e62a5dfa7..000000000 --- a/Typescript/src/models/type13Enum.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type13Enum - */ -export enum Type13Enum { - LIVEBOARD = 'LIVEBOARD', - DATAOBJECT = 'DATAOBJECT', - COLUMN = 'COLUMN', - JOIN = 'JOIN', -} - -/** - * Schema for Type13Enum - */ -export const type13EnumSchema: Schema = stringEnum(Type13Enum); diff --git a/Typescript/src/models/type14Enum.ts b/Typescript/src/models/type14Enum.ts deleted file mode 100644 index 9a0ef4a32..000000000 --- a/Typescript/src/models/type14Enum.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type14Enum - */ -export enum Type14Enum { - SNOWFLAKE = 'SNOWFLAKE', - AMAZONREDSHIFT = 'AMAZON_REDSHIFT', - GOOGLEBIGQUERY = 'GOOGLE_BIGQUERY', - AZURESYNAPSE = 'AZURE_SYNAPSE', - TERADATA = 'TERADATA', - STARBURST = 'STARBURST', - SAPHANA = 'SAP_HANA', - ORACLEADW = 'ORACLE_ADW', - DATABRICKS = 'DATABRICKS', - DENODO = 'DENODO', - DREMIO = 'DREMIO', -} - -/** - * Schema for Type14Enum - */ -export const type14EnumSchema: Schema = stringEnum(Type14Enum); diff --git a/Typescript/src/models/type15Enum.ts b/Typescript/src/models/type15Enum.ts deleted file mode 100644 index 01e8fa051..000000000 --- a/Typescript/src/models/type15Enum.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type15Enum - */ -export enum Type15Enum { - SNOWFLAKE = 'SNOWFLAKE', - AMAZONREDSHIFT = 'AMAZON_REDSHIFT', - GOOGLEBIGQUERY = 'GOOGLE_BIGQUERY', - AZURESYNAPSE = 'AZURE_SYNAPSE', - TERADATA = 'TERADATA', - STARBURST = 'STARBURST', - SAPHANA = 'SAP_HANA', - ORACLEADW = 'ORACLE_ADW', - DATABRICKS = 'DATABRICKS', - DENODO = 'DENODO', - DREMIO = 'DREMIO', -} - -/** - * Schema for Type15Enum - */ -export const type15EnumSchema: Schema = stringEnum(Type15Enum); diff --git a/Typescript/src/models/type16Enum.ts b/Typescript/src/models/type16Enum.ts deleted file mode 100644 index f15eef908..000000000 --- a/Typescript/src/models/type16Enum.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type16Enum - */ -export enum Type16Enum { - CSV = 'CSV', - XLSX = 'XLSX', - PDF = 'PDF', - PNG = 'PNG', -} - -/** - * Schema for Type16Enum - */ -export const type16EnumSchema: Schema = stringEnum(Type16Enum); diff --git a/Typescript/src/models/type18Enum.ts b/Typescript/src/models/type18Enum.ts deleted file mode 100644 index 555c1dcae..000000000 --- a/Typescript/src/models/type18Enum.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type18Enum - */ -export enum Type18Enum { - LIVEBOARD = 'LIVEBOARD', - ANSWER = 'ANSWER', - DATAOBJECT = 'DATAOBJECT', - COLUMN = 'COLUMN', -} - -/** - * Schema for Type18Enum - */ -export const type18EnumSchema: Schema = stringEnum(Type18Enum); diff --git a/Typescript/src/models/type1Enum.ts b/Typescript/src/models/type1Enum.ts deleted file mode 100644 index eec25168f..000000000 --- a/Typescript/src/models/type1Enum.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type1Enum - */ -export enum Type1Enum { - USER = 'USER', - USERGROUP = 'USER_GROUP', -} - -/** - * Schema for Type1Enum - */ -export const type1EnumSchema: Schema = stringEnum(Type1Enum); diff --git a/Typescript/src/models/type2Enum.ts b/Typescript/src/models/type2Enum.ts deleted file mode 100644 index a5101bba2..000000000 --- a/Typescript/src/models/type2Enum.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type2Enum - */ -export enum Type2Enum { - LIVEBOARD = 'LIVEBOARD', - ANSWER = 'ANSWER', - DATAOBJECT = 'DATAOBJECT', - COLUMN = 'COLUMN', -} - -/** - * Schema for Type2Enum - */ -export const type2EnumSchema: Schema = stringEnum(Type2Enum); diff --git a/Typescript/src/models/type3Enum.ts b/Typescript/src/models/type3Enum.ts deleted file mode 100644 index f9292e611..000000000 --- a/Typescript/src/models/type3Enum.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type3Enum - */ -export enum Type3Enum { - ANSWER = 'ANSWER', - LIVEBOARD = 'LIVEBOARD', - DATAOBJECTALL = 'DATAOBJECT_ALL', - DATAOBJECTWORKSHEET = 'DATAOBJECT_WORKSHEET', - DATAOBJECTTABLE = 'DATAOBJECT_TABLE', - DATAOBJECTUSERDEFINED = 'DATAOBJECT_USER_DEFINED', - DATAOBJECTVIEW = 'DATAOBJECT_VIEW', - DATAOBJECTCALENDARTABLE = 'DATAOBJECT_CALENDAR_TABLE', - COLUMNALL = 'COLUMN_ALL', - COLUMNWORKSHEET = 'COLUMN_WORKSHEET', - COLUMNTABLE = 'COLUMN_TABLE', - COLUMNUSERDEFINED = 'COLUMN_USER_DEFINED', - COLUMNVIEW = 'COLUMN_VIEW', - COLUMNCALENDARTABLE = 'COLUMN_CALENDAR_TABLE', - JOIN = 'JOIN', - CONNECTION = 'CONNECTION', - TAG = 'TAG', - USER = 'USER', - USERGROUP = 'USER_GROUP', -} - -/** - * Schema for Type3Enum - */ -export const type3EnumSchema: Schema = stringEnum(Type3Enum); diff --git a/Typescript/src/models/type4Enum.ts b/Typescript/src/models/type4Enum.ts deleted file mode 100644 index c938a71dc..000000000 --- a/Typescript/src/models/type4Enum.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type4Enum - */ -export enum Type4Enum { - ANSWER = 'ANSWER', - LIVEBOARD = 'LIVEBOARD', - DATAOBJECT = 'DATAOBJECT', - COLUMN = 'COLUMN', - JOIN = 'JOIN', - CONNECTION = 'CONNECTION', - TAG = 'TAG', - USER = 'USER', - USERGROUP = 'USER_GROUP', -} - -/** - * Schema for Type4Enum - */ -export const type4EnumSchema: Schema = stringEnum(Type4Enum); diff --git a/Typescript/src/models/type5Enum.ts b/Typescript/src/models/type5Enum.ts deleted file mode 100644 index c3e354c43..000000000 --- a/Typescript/src/models/type5Enum.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type5Enum - */ -export enum Type5Enum { - ANSWER = 'ANSWER', - LIVEBOARD = 'LIVEBOARD', - DATAOBJECTALL = 'DATAOBJECT_ALL', - DATAOBJECTWORKSHEET = 'DATAOBJECT_WORKSHEET', - DATAOBJECTTABLE = 'DATAOBJECT_TABLE', - DATAOBJECTUSERDEFINED = 'DATAOBJECT_USER_DEFINED', - DATAOBJECTVIEW = 'DATAOBJECT_VIEW', - DATAOBJECTCALENDARTABLE = 'DATAOBJECT_CALENDAR_TABLE', - COLUMNALL = 'COLUMN_ALL', - COLUMNWORKSHEET = 'COLUMN_WORKSHEET', - COLUMNTABLE = 'COLUMN_TABLE', - COLUMNUSERDEFINED = 'COLUMN_USER_DEFINED', - COLUMNVIEW = 'COLUMN_VIEW', - COLUMNCALENDARTABLE = 'COLUMN_CALENDAR_TABLE', - JOIN = 'JOIN', - CONNECTION = 'CONNECTION', - TAG = 'TAG', - USER = 'USER', - USERGROUP = 'USER_GROUP', -} - -/** - * Schema for Type5Enum - */ -export const type5EnumSchema: Schema = stringEnum(Type5Enum); diff --git a/Typescript/src/models/type6Enum.ts b/Typescript/src/models/type6Enum.ts deleted file mode 100644 index 13d349a66..000000000 --- a/Typescript/src/models/type6Enum.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type6Enum - */ -export enum Type6Enum { - ANSWER = 'ANSWER', - LIVEBOARD = 'LIVEBOARD', - DATAOBJECT = 'DATAOBJECT', - COLUMN = 'COLUMN', - JOIN = 'JOIN', - CONNECTION = 'CONNECTION', - TAG = 'TAG', - USER = 'USER', - USERGROUP = 'USER_GROUP', -} - -/** - * Schema for Type6Enum - */ -export const type6EnumSchema: Schema = stringEnum(Type6Enum); diff --git a/Typescript/src/models/type7Enum.ts b/Typescript/src/models/type7Enum.ts deleted file mode 100644 index 8d03d7cd5..000000000 --- a/Typescript/src/models/type7Enum.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type7Enum - */ -export enum Type7Enum { - LIVEBOARD = 'LIVEBOARD', - ANSWER = 'ANSWER', - DATAOBJECT = 'DATAOBJECT', - COLUMN = 'COLUMN', -} - -/** - * Schema for Type7Enum - */ -export const type7EnumSchema: Schema = stringEnum(Type7Enum); diff --git a/Typescript/src/models/type8Enum.ts b/Typescript/src/models/type8Enum.ts deleted file mode 100644 index f93360ba9..000000000 --- a/Typescript/src/models/type8Enum.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type8Enum - */ -export enum Type8Enum { - UNKNOWN = 'UNKNOWN', - LDAPUSER = 'LDAP_USER', - SAMLUSER = 'SAML_USER', - OIDCUSER = 'OIDC_USER', - LOCALUSER = 'LOCAL_USER', -} - -/** - * Schema for Type8Enum - */ -export const type8EnumSchema: Schema = stringEnum(Type8Enum); diff --git a/Typescript/src/models/type9Enum.ts b/Typescript/src/models/type9Enum.ts deleted file mode 100644 index 775d99e50..000000000 --- a/Typescript/src/models/type9Enum.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Type9Enum - */ -export enum Type9Enum { - UNKNOWN = 'UNKNOWN', - LDAPUSER = 'LDAP_USER', - SAMLUSER = 'SAML_USER', - OIDCUSER = 'OIDC_USER', - LOCALUSER = 'LOCAL_USER', -} - -/** - * Schema for Type9Enum - */ -export const type9EnumSchema: Schema = stringEnum(Type9Enum); diff --git a/Typescript/src/models/typeEnum.ts b/Typescript/src/models/typeEnum.ts deleted file mode 100644 index a180b46ac..000000000 --- a/Typescript/src/models/typeEnum.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for TypeEnum - */ -export enum TypeEnum { - ANSWER = 'ANSWER', - LIVEBOARD = 'LIVEBOARD', - DATAOBJECT = 'DATAOBJECT', - CONNECTION = 'CONNECTION', -} - -/** - * Schema for TypeEnum - */ -export const typeEnumSchema: Schema = stringEnum(TypeEnum); diff --git a/Typescript/src/models/userNameAndID.ts b/Typescript/src/models/userNameAndID.ts deleted file mode 100644 index d5e1834c3..000000000 --- a/Typescript/src/models/userNameAndID.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface UserNameAndID { - /** Username of the user */ - name?: string; - /** GUID of the user */ - id?: string; -} - -export const userNameAndIDSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/userNameAndIDInput.ts b/Typescript/src/models/userNameAndIDInput.ts deleted file mode 100644 index 63d4dc2e3..000000000 --- a/Typescript/src/models/userNameAndIDInput.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface UserNameAndIDInput { - /** Username of the user */ - name?: string; - /** GUID of the user */ - id?: string; -} - -export const userNameAndIDInputSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], -}); diff --git a/Typescript/src/models/userResponse.ts b/Typescript/src/models/userResponse.ts deleted file mode 100644 index 82e378232..000000000 --- a/Typescript/src/models/userResponse.ts +++ /dev/null @@ -1,118 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { - array, - boolean, - lazy, - number, - object, - optional, - Schema, - string, -} from '../schema'; -import { GroupNameAndID, groupNameAndIDSchema } from './groupNameAndID'; -import { OrgType, orgTypeSchema } from './orgType'; -import { UserNameAndID, userNameAndIDSchema } from './userNameAndID'; - -export interface UserResponse { - /** Username of the user account */ - name?: string; - /** Display name of the user account */ - displayName?: string; - /** GUID of the user account */ - id?: string; - /** Visibility of the user account */ - visibility?: string; - /** Email of the user account */ - mail?: string; - /** Name of the group to which user account is added */ - groups?: GroupNameAndID[]; - /** Privileges assigned to user account */ - privileges?: string[]; - /** The organizations that user belongs to */ - orgs?: OrgType[]; - /** Tags assigned to the user */ - tags?: string[]; - /** Indicates if the user account is active or inactive */ - state?: string; - /** Indicates if the email should be sent when object is shared with the user */ - notifyOnShare?: boolean; - /** Indicates if the walk me should be shown when logging in */ - showWalkMe?: boolean; - /** Indicates if the onboarding is completed for the user */ - analystOnboardingComplete?: boolean; - /** Indicates if the use is logging in for the first time */ - firstLogin?: number; - /** Indicates if the welcome email is sent to email associated with the user account */ - welcomeEmailSent?: boolean; - /** Indicates if the user account is deleted */ - isDeleted?: boolean; - /** Indicates if the user account is hidden */ - isHidden?: boolean; - /** - * Indicates if the user account is from external system - * isDeprecated - */ - isExternal?: boolean; - isDeprecated?: boolean; - /** Indicates if the all the properties of user account is provided */ - complete?: boolean; - /** Indicates if the user account is super user */ - isSuperUser?: boolean; - /** Indicates if the user account is system principal */ - isSystemPrincipal?: boolean; - /** Indicates the type of user account */ - type?: string; - /** Indicates the type of parent object */ - parenttype?: string; - /** Tenant id associated with the user account */ - tenantId?: string; - indexVersion?: number; - generationNum?: number; - /** Date and time when user account was created */ - created?: number; - /** Date and time of last modification of user account */ - modified?: number; - author?: UserNameAndID; - modifiedBy?: UserNameAndID; - owner?: UserNameAndID; -} - -export const userResponseSchema: Schema = object({ - name: ['name', optional(string())], - displayName: ['displayName', optional(string())], - id: ['id', optional(string())], - visibility: ['visibility', optional(string())], - mail: ['mail', optional(string())], - groups: ['groups', optional(array(lazy(() => groupNameAndIDSchema)))], - privileges: ['privileges', optional(array(string()))], - orgs: ['orgs', optional(array(lazy(() => orgTypeSchema)))], - tags: ['tags', optional(array(string()))], - state: ['state', optional(string())], - notifyOnShare: ['notifyOnShare', optional(boolean())], - showWalkMe: ['showWalkMe', optional(boolean())], - analystOnboardingComplete: ['analystOnboardingComplete', optional(boolean())], - firstLogin: ['firstLogin', optional(number())], - welcomeEmailSent: ['welcomeEmailSent', optional(boolean())], - isDeleted: ['isDeleted', optional(boolean())], - isHidden: ['isHidden', optional(boolean())], - isExternal: ['isExternal', optional(boolean())], - isDeprecated: ['isDeprecated', optional(boolean())], - complete: ['complete', optional(boolean())], - isSuperUser: ['isSuperUser', optional(boolean())], - isSystemPrincipal: ['isSystemPrincipal', optional(boolean())], - type: ['type', optional(string())], - parenttype: ['parenttype', optional(string())], - tenantId: ['tenantId', optional(string())], - indexVersion: ['indexVersion', optional(number())], - generationNum: ['generationNum', optional(number())], - created: ['created', optional(number())], - modified: ['modified', optional(number())], - author: ['author', optional(lazy(() => userNameAndIDSchema))], - modifiedBy: ['modifiedBy', optional(lazy(() => userNameAndIDSchema))], - owner: ['owner', optional(lazy(() => userNameAndIDSchema))], -}); diff --git a/Typescript/src/models/visibility1Enum.ts b/Typescript/src/models/visibility1Enum.ts deleted file mode 100644 index 3750caf0d..000000000 --- a/Typescript/src/models/visibility1Enum.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Visibility1Enum - */ -export enum Visibility1Enum { - DEFAULT = 'DEFAULT', - NONSHARABLE = 'NON_SHARABLE', - SHARABLE = 'SHARABLE', -} - -/** - * Schema for Visibility1Enum - */ -export const visibility1EnumSchema: Schema = stringEnum(Visibility1Enum); diff --git a/Typescript/src/models/visibility2Enum.ts b/Typescript/src/models/visibility2Enum.ts deleted file mode 100644 index 04ef6cabc..000000000 --- a/Typescript/src/models/visibility2Enum.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for Visibility2Enum - */ -export enum Visibility2Enum { - DEFAULT = 'DEFAULT', - NONSHARABLE = 'NON_SHARABLE', - SHARABLE = 'SHARABLE', -} - -/** - * Schema for Visibility2Enum - */ -export const visibility2EnumSchema: Schema = stringEnum(Visibility2Enum); diff --git a/Typescript/src/models/visibilityEnum.ts b/Typescript/src/models/visibilityEnum.ts deleted file mode 100644 index 6ba83672d..000000000 --- a/Typescript/src/models/visibilityEnum.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { Schema, stringEnum } from '../schema'; - -/** - * Enum for VisibilityEnum - */ -export enum VisibilityEnum { - DEFAULT = 'DEFAULT', - NONSHARABLE = 'NON_SHARABLE', - SHARABLE = 'SHARABLE', -} - -/** - * Schema for VisibilityEnum - */ -export const visibilityEnumSchema: Schema = stringEnum(VisibilityEnum); diff --git a/Typescript/src/models/vizType.ts b/Typescript/src/models/vizType.ts deleted file mode 100644 index 2e4d1b740..000000000 --- a/Typescript/src/models/vizType.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -import { object, optional, Schema, string } from '../schema'; - -export interface VizType { - /** The name of the visualization */ - name?: string; - /** The GUID of the visualization */ - id?: string; - /** SQL query associated with the visualization */ - querySql?: string; -} - -export const vizTypeSchema: Schema = object({ - name: ['name', optional(string())], - id: ['id', optional(string())], - querySql: ['querySql', optional(string())], -}); diff --git a/Typescript/src/schema.ts b/Typescript/src/schema.ts deleted file mode 100644 index a6c3afaff..000000000 --- a/Typescript/src/schema.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * ThoughtSpot Public REST APILib - * - * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). - */ - -export * from '@apimatic/schema'; diff --git a/Typescript/tsconfig.json b/Typescript/tsconfig.json deleted file mode 100644 index 57d362c9a..000000000 --- a/Typescript/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "include": ["src", "types"], - "compilerOptions": { - "module": "esnext", - "lib": ["esnext"], - "importHelpers": true, - "declaration": true, - "sourceMap": true, - "rootDir": "./src", - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "target": "ES2017", - "jsx": "react", - "esModuleInterop": true - } -} diff --git a/Typescript/tsdx.config.js b/Typescript/tsdx.config.js deleted file mode 100644 index 3072760cb..000000000 --- a/Typescript/tsdx.config.js +++ /dev/null @@ -1,11 +0,0 @@ -// Not transpiled with TypeScript or Babel, so use plain Es6/Node.js! -module.exports = { - // This function will run for each entry/format/env combination - rollup(config, options) { - config.onwarn = ( warning, next ) => { - if ( warning.code === 'CIRCULAR_DEPENDENCY' ) return; - next( warning ); - }; - return config; // always return a config. - }, -}; diff --git a/openspecapi.json b/openspecapi.json deleted file mode 100644 index e85aff36f..000000000 --- a/openspecapi.json +++ /dev/null @@ -1 +0,0 @@ -{"openapi":"3.0.0","info":{"title":"RESTAPI SDK","version":"2.0.0"},"paths":{"/tspublic/rest/v2/session":{"get":{"operationId":"getSessionInfo","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Session object information"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Session"],"description":"To get session object information, use this endpoint"}},"/tspublic/rest/v2/session/logout":{"post":{"operationId":"logout","responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully logged out and token invalidated"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Session"],"security":[],"description":"To log a user out of the current session, use this endpoint"}},"/tspublic/rest/v2/session/gettoken":{"post":{"operationId":"getToken","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userName":{"type":"string","description":"Username of the user account"},"password":{"type":"string","description":"The password of the user account"},"secretKey":{"type":"string","description":"The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication."},"accessLevel":{"description":"User access privilege. \n\n FULL - Creates a session with full access. \n\n REPORT_BOOK_VIEW - Allow view access to the specified visualizations.","title":"getToken-accessLevel","type":"string","enum":["FULL","REPORT_BOOK_VIEW"],"default":"FULL"},"tsObjectId":{"type":"string","description":"GUID of the ThoughtSpot object. If you have set the accessLevel attribute to REPORT_BOOK_VIEW, specify the GUID of the Liveboard or visualization object."},"tokenExpiryDuration":{"type":"string","description":"Provide duration in seconds after which the token should expire"},"orgId":{"type":"string","description":"This is applicable only if organization feature is enabled in the cluster. \n\n Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered."}},"required":["userName"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionLoginResponse"}}},"description":"Token generated successfully"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Session"],"security":[],"description":"To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\n You can generate the token for a user by providing password or secret key from the cluster. \n\n You need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n 1. Click the Develop tab. \n\n 2. Under Customizations, click Settings. \n\n 3. To enable trusted authentication, turn on the toggle. \n\n 4. A secret_key for trusted authentication is generated. \n\n 5. Click the clipboard icon to copy the token. \n\n \n\n Password is given precedence over secretKey input, when both are included in the request."}},"/tspublic/rest/v2/session/revoketoken":{"post":{"operationId":"revokeToken","responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Token revoked successfully"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Session"],"description":"To expire or revoke a token for a user, use this endpoint"}},"/tspublic/rest/v2/user":{"get":{"operationId":"getUser","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Username of the user that you want to query"},{"in":"query","name":"id","required":false,"schema":{"type":"string"},"description":"The GUID of the user account to query"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}},"description":"Details of the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"To get the details of a specific user account by username or user id, use this endpoint. At Least one value is needed. When both are given,then user id will be considered to fetch user information \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/user/create":{"post":{"operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the user account. The username string must be unique."},"displayName":{"type":"string","description":"A display name string for the user, usually their first and last name."},"visibility":{"description":"Visibility of the user. The visibility attribute is set to DEFAULT when creating a user. \n\n The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. \n\n","title":"createUser-visibility","type":"string","enum":["DEFAULT","NON_SHARABLE","SHARABLE"],"default":"DEFAULT"},"mail":{"type":"string","description":"Email id associated with the user account"},"password":{"type":"string","description":"Password for the user account."},"orgIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"This is applicable only if organization feature is enabled in the cluster. \n\n Array of org identifiers. If no value is provided, the organization associated with the login session is considered."},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"},"state":{"description":"Status of user account. acitve or inactive. \n\n","title":"createUser-state","type":"string","enum":["ACTIVE","INACTIVE","EXPIRED","LOCKED","PENDING"],"default":"ACTIVE"},"notifyOnShare":{"title":"createUser-notifyOnShare","type":"string","enum":["true","false"],"description":"User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. \n\n","default":"true"},"showWalkMe":{"title":"createUser-showWalkMe","type":"string","enum":["true","false"],"description":"The user preference for revisiting the onboarding experience. \n\n","default":"true"},"analystOnboardingComplete":{"title":"createUser-analystOnboardingComplete","type":"string","enum":["true","false"],"description":"ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. \n\n The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. \n\n","default":"false"},"type":{"description":"Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. \n\n","title":"createUser-type","type":"string","enum":["UNKNOWN","LDAP_USER","SAML_USER","OIDC_USER","LOCAL_USER"],"default":"LOCAL_USER"}},"required":["name","displayName","password"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}},"description":"Details of the user created"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"To programmatically create a user account in the ThoughtSpot system, use this API endpoint. \n\n Using this API, you can create a user and assign groups. To create a user, you require admin user privileges. \n\n All users created in the ThoughtSpot system are added to ALL user group. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/user/update":{"put":{"operationId":"updateUser","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the user account. The username string must be unique."},"id":{"type":"string","description":"The GUID of the user account"},"displayName":{"type":"string","description":"A display name string for the user, usually their first and last name."},"visibility":{"description":"Visibility of the user account. \n\n The visibility attribute is set to DEFAULT when creating a user. The DEFAULT attribute makes a user visible to other users and user groups, and thus allows them to share objects. \n\n","title":"updateUser-visibility","type":"string","enum":["DEFAULT","NON_SHARABLE","SHARABLE"],"default":"DEFAULT"},"mail":{"type":"string","description":"Email id associated with the user account"},"state":{"description":"Status of user account. acitve or inactive. \n\n","title":"updateUser-state","type":"string","enum":["ACTIVE","INACTIVE","EXPIRED","LOCKED","PENDING"],"default":"ACTIVE"},"notifyOnShare":{"title":"updateUser-notifyOnShare","type":"string","enum":["true","false"],"description":"User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards. \n\n","default":"true"},"showWalkMe":{"title":"updateUser-showWalkMe","type":"string","enum":["true","false"],"description":"The user preference for revisiting the onboarding experience. \n\n","default":"true"},"analystOnboardingComplete":{"title":"updateUser-analystOnboardingComplete","type":"string","enum":["true","false"],"description":"ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. \n\n The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI. \n\n","default":"false"},"type":{"description":"Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system. \n\n","title":"updateUser-type","type":"string","enum":["UNKNOWN","LDAP_USER","SAML_USER","OIDC_USER","LOCAL_USER","LDAP_GROUP","LOCAL_GROUP","TENANT_GROUP"],"default":"LOCAL_USER"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"User successfully updated"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"You can use this endpoint to programmatically modify an existing user account. \n\n To modify a user, you require admin user privileges. \n\n At least one of User Id or username is mandatory. When both are given, then user id will be considered and username will be updated \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/user/delete":{"delete":{"operationId":"deleteUser","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Username of the user account"},{"in":"query","name":"id","required":false,"schema":{"type":"string"},"description":"The GUID of the user account"},{"in":"query","name":"orgId","required":false,"schema":{"type":"integer","format":"int32"},"description":"This is applicable only if organization feature is enabled in the cluster. \n\n Unique identifier of the organization from which the user would be deleted. If no value is provided, the organization associated with the login session is considered."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"User successfully deleted"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"To remove a user from the ThoughtSpot system, use this endpoint. \n\n At least one value is needed. When both are given, then user id will be considered to delete user. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/user/addgroup":{"put":{"operationId":"addUserToGroups","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Username of the user account"},"id":{"type":"string","description":"The GUID of the user account"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"}},"required":["groups"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully assigned groups to the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"To programmatically add groups to an existing ThoughtSpot user, use this endpoint. \n\n When you assign groups to a user, the user inherits the privileges assigned to those groups. \n\n At least one of user Id or username is mandatory. When both are given, then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/user/removegroup":{"put":{"operationId":"removeUserFromGroups","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"User name of the user account"},"id":{"type":"string","description":"The GUID of the user account"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"}},"required":["groups"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully removed groups for the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"To programmatically remove groups from an existing ThoughtSpot user, use this API endpoint. \n\n The API removes only the user association. It does not delete the user or group from the Thoughtspot system. \n\n At least one of user id or username is mandatory. When both are given, then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/user/addorg":{"put":{"operationId":"addUserToOrgs","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"orgId":{"type":"integer","format":"int32","description":"Unique identifier of the organization."},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":"Array of objects. A JSON array of name of users or GUIDs of users or both. When both are given then id is considered"}},"required":["users"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully assigned users to org"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"This is endpoint is applicable only if organization feature is enabled in the cluster. \n\n To programmatically add existing ThoughtSpot users to an organization, use this API endpoint. \n\n Requires Administration access for the organization to which users need to be added."}},"/tspublic/rest/v2/user/changepassword":{"put":{"operationId":"changePasswordOfUser","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"User name of the user account"},"id":{"type":"string","description":"The GUID of the user account to query"},"currentPassword":{"type":"string","description":"The current password of the user."},"newPassword":{"type":"string","description":"A new password for the user."}},"required":["currentPassword","newPassword"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully changed the password for the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"To change the password of a ThoughtSpot user account, use this endpoint. \n\n At least one of id or name of user is required. When both are given user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/user/search":{"post":{"operationId":"searchUsers","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"outputFields":{"type":"array","items":{"type":"string"},"description":"Array of field names that need to be included in the response."},"name":{"type":"string","description":"Name of the user."},"id":{"type":"string","description":"The GUID of the user account to query"},"displayName":{"type":"string","description":"A unique display name string for the user, usually their first and last name."},"visibility":{"type":"string","description":"Visibility of the user. \n\n The visibility attribute is set to DEFAULT when creating a user. Setting this to DEFAULT makes a user visible to other users and user groups, and thus allows them to share objects","title":"searchUsers-visibility","enum":["DEFAULT","NON_SHARABLE","SHARABLE"]},"mail":{"type":"string","description":"email of the user account"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"},"privileges":{"type":"array","items":{"title":"searchUsers-privileges","type":"string","enum":["ADMINISTRATION","AUTHORING","DEVELOPER","USERDATAUPLOADING","DATADOWNLOADING","DATAMANAGEMENT","SHAREWITHALL","EXPERIMENTALFEATUREPRIVILEGE","JOBSCHEDULING","RANALYSIS","A3ANALYSIS","BYPASSRLS"]},"description":"A JSON array of privileges assigned to the user"},"state":{"type":"string","description":"Status of user account. acitve or inactive.","title":"searchUsers-state","enum":["ACTIVE","INACTIVE","EXPIRED","LOCKED","PENDING"]},"notifyOnShare":{"title":"searchUsers-notifyOnShare","type":"string","enum":["true","false"],"description":"User preference for receiving email notifications when another ThoughtSpot user shares answers or pinboards."},"showWalkMe":{"title":"searchUsers-showWalkMe","type":"string","enum":["true","false"],"description":"The user preference for revisiting the onboarding experience."},"analystOnboardingComplete":{"title":"searchUsers-analystOnboardingComplete","type":"string","enum":["true","false"],"description":"ThoughtSpot provides an interactive guided walkthrough to onboard new users. The onboarding experience leads users through a set of actions to help users get started and accomplish their tasks quickly. \n\n The users can turn off the Onboarding experience and access it again when they need assistance with the ThoughtSpot UI."},"type":{"type":"string","description":"Type of user. LOCAL_USER indicates that the user is created locally in the ThoughtSpot system.","title":"searchUsers-type","enum":["UNKNOWN","LDAP_USER","SAML_USER","OIDC_USER","LOCAL_USER","LDAP_GROUP","LOCAL_GROUP","TENANT_GROUP"]}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Array of user details matching the search criteria and the output fields. \n\n If no output fields are specified then the response structure will match that of GET /tspublic/rest/v2/user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["User"],"description":"To get the details of a specific user account or all users in the ThoughtSpot system, use this endpoint. If no input is provided, then all user are included in the response. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group":{"get":{"operationId":"getGroup","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Name of the group"},{"in":"query","name":"id","required":false,"schema":{"type":"string"},"description":"The GUID of the group"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}},"description":"Details of the group"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To get the details of a specific group by name or id, use this endpoint. \n\n At least one value needed. When both are given,then id will be considered to fetch user information. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/create":{"post":{"operationId":"createGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the user group. The group name string must be unique."},"displayName":{"type":"string","description":"A unique display name string for the user group, for example, Developer group."},"visibility":{"description":"Visibility of the user group. \n\n The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. \n\n","title":"createGroup-visibility","type":"string","enum":["DEFAULT","NON_SHARABLE","SHARABLE"],"default":"DEFAULT"},"description":{"type":"string","description":"Description text for the group."},"privileges":{"type":"array","items":{"title":"createGroup-privileges","type":"string","enum":["ADMINISTRATION","AUTHORING","DEVELOPER","USERDATAUPLOADING","DATADOWNLOADING","DATAMANAGEMENT","SHAREWITHALL","EXPERIMENTALFEATUREPRIVILEGE","JOBSCHEDULING","RANALYSIS","A3ANALYSIS","BYPASSRLS"]},"description":"A JSON array of privileges assigned to the group"},"orgId":{"type":"integer","format":"int32","description":"This is applicable only if organization feature is enabled in the cluster. \n\n Unique identifier of the organization. If no value is provided, the organization associated with the login session is considered."},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":"A JSON array of name of users or GUIDs of users or both. When both are given then id is considered"},"type":{"description":"Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. \n\n","title":"createGroup-type","type":"string","enum":["LOCAL_GROUP","TENANT_GROUP"],"default":"LOCAL_GROUP"}},"required":["name","displayName"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}},"description":"Details of the group created"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To programmatically create a group in the ThoughtSpot system, use this API endpoint. \n\n Using this API, you can create a group and assign privileges and users. \n\n For ease of user management and access control, ThoughtSpot administrations can create groups and assign privileges to these groups. \n\n The privileges determine the actions that the users belonging to a group are allowed to do. \n\n ThoughtSpot also has a default group called ALL. When you create new group in ThoughtSpot, they are automatically added to ALL user group. You cannot delete the ALL user group or remove members from it. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/update":{"put":{"operationId":"updateGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the user group"},"id":{"type":"string","description":"GUID of the group to update"},"displayName":{"type":"string","description":"A unique display name string for the user group, for example, Developer group."},"visibility":{"description":"Visibility of the user group. \n\n The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects. \n\n","title":"updateGroup-visibility","type":"string","enum":["DEFAULT","NON_SHARABLE","SHARABLE"],"default":"DEFAULT"},"description":{"type":"string","description":"Description text for the group."},"privileges":{"type":"array","items":{"title":"updateGroup-privileges","type":"string","enum":["ADMINISTRATION","AUTHORING","DEVELOPER","USERDATAUPLOADING","DATADOWNLOADING","DATAMANAGEMENT","SHAREWITHALL","EXPERIMENTALFEATUREPRIVILEGE","JOBSCHEDULING","RANALYSIS","A3ANALYSIS","BYPASSRLS"]},"description":"A JSON array of privileges assigned to the group"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":"A JSON array of name of users or GUIDs of users or both. When both are given then id is considered"},"assignedLiveboards":{"type":"array","items":{"type":"string"},"description":"An array of liveboard ids to be assigned to the group."},"type":{"description":"Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. \n\n","title":"updateGroup-type","type":"string","enum":["LOCAL_GROUP","TENANT_GROUP"],"default":"LOCAL_GROUP"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Group successfully updated"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"You can use this endpoint to programmatically modify an existing group. \n\n To modify a group, you require admin user privileges. \n\n At least one of id or name is required to update the group. When both are given, then id will be considered and group name will be updated. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/delete":{"delete":{"operationId":"deleteGroup","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Name of the group."},{"in":"query","name":"id","required":false,"schema":{"type":"string"},"description":"The GUID of the group"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Group successfully deleted"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To remove a group from the ThoughtSpot system, send a DELETE request to this endpoint. \n\n At least one value needed. When both are given,then user id will be considered to fetch user information. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/addprivilege":{"put":{"operationId":"addPrivilegesToGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":" Name of the group"},"id":{"type":"string","description":"The GUID of the group to query."},"privileges":{"type":"array","items":{"title":"addPrivilegesToGroup-privileges","type":"string","enum":["ADMINISTRATION","AUTHORING","DEVELOPER","USERDATAUPLOADING","DATADOWNLOADING","DATAMANAGEMENT","SHAREWITHALL","EXPERIMENTALFEATUREPRIVILEGE","JOBSCHEDULING","RANALYSIS","A3ANALYSIS","BYPASSRLS"]},"description":"List of privileges"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully assigned privileges to the group"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To programmatically add privileges to an existing group, use API endpoint. \n\n When you assign privileges to a group, all the users under to this group inherits the privileges assigned to that group. \n\n At least one of id or name of group is required. When both are given,then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/removeprivilege":{"put":{"operationId":"removePrivilegesFromGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":" Name of the group"},"id":{"type":"string","description":"The GUID of the group to query."},"privileges":{"type":"array","items":{"title":"removePrivilegesFromGroup-privileges","type":"string","enum":["ADMINISTRATION","AUTHORING","DEVELOPER","USERDATAUPLOADING","DATADOWNLOADING","DATAMANAGEMENT","SHAREWITHALL","EXPERIMENTALFEATUREPRIVILEGE","JOBSCHEDULING","RANALYSIS","A3ANALYSIS","BYPASSRLS"]},"description":"List of privileges"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully removed privileges to the group"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To programmatically remove privileges from a group, use API endpoint. \n\n The API removes only the privilege association. It does not delete the privilege or group from the Thoughtspot system. \n\n At least one of id or name of group is required. When both are given,then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/adduser":{"put":{"operationId":"addUsersToGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the group"},"id":{"type":"string","description":"The GUID of the group"},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":"A JSON array of name of users or GUIDs of users or both. When both are given then id is considered"}},"required":["users"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully added user to the group"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To programmatically add existing ThoughtSpot users to a group, use this API endpoint. \n\n hen you assign users to a group, the users inherits the privileges assigned to that group. \n\n At least one of id or name of the group is required. When both are given,then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/removeuser":{"put":{"operationId":"removeUsersFromGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":" Name of the group"},"id":{"type":"string","description":"The GUID of the group to query."},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":"A JSON array of name of users or GUIDs of users or both. When both are given then id is considered"}},"required":["users"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully removed user from the groups"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To programmatically remove users from a group, use API endpoint. \n\n The API removes only the user association. It does not delete the users or group from the Thoughtspot system. \n\n At least one of id or name of group is required. When both are given,then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/addgroup":{"put":{"operationId":"addGroupsToGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the group"},"id":{"type":"string","description":"The GUID of the group"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"}},"required":["groups"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully added groups to the group"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To programmatically add existing groups to a group, use API endpoint. \n\n When you assign groups to a group, the group inherits the privileges assigned to those groups. \n\n At least one of id or name of group is required. When both are given,then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/removegroup":{"put":{"operationId":"removeGroupsFromGroup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the group"},"id":{"type":"string","description":"The GUID of the group"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"}},"required":["groups"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully removed groups from group"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To programmatically remove groups from a group, use API endpoint. \n\n The API removes only the group association. It does not delete the group from the Thoughtspot system. \n\n At least one of id or name of group is required. When both are given,then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/group/search":{"post":{"operationId":"searchGroups","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"outputFields":{"type":"array","items":{"type":"string"},"description":"Array of field names that need to be included in the response."},"name":{"type":"string","description":"Name of the user group"},"id":{"type":"string","description":"GUID of the group to update"},"displayName":{"type":"string","description":"A unique display name string for the user group, for example, Developer group."},"visibility":{"type":"string","description":"Visibility of the user group. \n\n The visibility attribute is set to DEFAULT. The DEFAULT attribute makes the user group visible for other user groups and allows them to share objects.","title":"searchGroups-visibility","enum":["DEFAULT","NON_SHARABLE","SHARABLE"]},"description":{"type":"string","description":"Description text for the group."},"privileges":{"type":"array","items":{"title":"searchGroups-privileges","type":"string","enum":["ADMINISTRATION","AUTHORING","DEVELOPER","USERDATAUPLOADING","DATADOWNLOADING","DATAMANAGEMENT","SHAREWITHALL","EXPERIMENTALFEATUREPRIVILEGE","JOBSCHEDULING","RANALYSIS","A3ANALYSIS","BYPASSRLS"]},"description":"A JSON array of privileges assigned to the group"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndIDInput"},"description":"A JSON array of group names or GUIDs or both. When both are given then id is considered"},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":"A JSON array of name of users or GUIDs of users or both. When both are given then id is considered"},"type":{"type":"string","description":"Type of user group. LOCAL_GROUP indicates that the user is created locally in the ThoughtSpot system. ","title":"searchGroups-type","enum":["LOCAL_GROUP","TENANT_GROUP"]}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Array of group details matching the search criteria and the output fields. \n\n If no output fields are specified then the response structure will match that of GET /tspublic/rest/v2/group"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Group"],"description":"To get the details of a specific group account or all groups in the ThoughtSpot system use this end point. \n\n If no inputs are provided, then all groups are included in the response. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/org":{"get":{"operationId":"getOrg","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Name of the organization."},{"in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int32"},"description":"The ID of the organization."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgsResponse"}}},"description":"Details of the organization"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Org"],"description":"This is endpoint is applicable only if organization feature is enabled in the cluster. \n\n To get the details of a specific organization by name or id, use this endpoint. \n\n At least one value needed. When both are given,then id will be considered to fetch organization information. \n\n Requires Administration privilege for tenant."}},"/tspublic/rest/v2/org/create":{"post":{"operationId":"createOrg","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the organization."},"description":{"type":"string","description":"Description text for the organization."}},"required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgsResponse"}}},"description":"Details of the organization created"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Org"],"description":"This is endpoint is applicable only if organization feature is enabled in the cluster. \n\n To programmatically create an organization in the ThoughtSpot system, use this API endpoint."}},"/tspublic/rest/v2/org/update":{"put":{"operationId":"updateOrg","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the organization."},"id":{"type":"integer","format":"int32","description":"The ID of the organization."},"description":{"type":"string","description":"Description text for the organization."},"active":{"title":"updateOrg-active","type":"string","enum":["true","false"],"description":"Status of the organization."}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgsResponse"}}},"description":"Organization successfully updated"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Org"],"description":"This is endpoint is applicable only if organization feature is enabled in the cluster. \n\n You can use this endpoint to programmatically modify an existing org. \n\n Provide name or id of the organization to update the properties. When both id and name are given, then id will be considered and name of the organization will be updated. \n\n Requires Administration privilege for tenant."}},"/tspublic/rest/v2/org/delete":{"delete":{"operationId":"deleteOrg","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Name of the organization."},{"in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int32"},"description":"The ID of the organization."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Organization successfully deleted"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Org"],"description":"This is endpoint is applicable only if organization feature is enabled in the cluster. \n\n To remove an organization from the ThoughtSpot system, send a DELETE request to this endpoint. \n\n At least one value is needed. When both id and name are given, then id will be considered. \n\n Requires Administration privilege for tenant."}},"/tspublic/rest/v2/org/search":{"post":{"operationId":"searchOrgs","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the organization."},"id":{"type":"integer","format":"int32","description":"The ID of the organization."},"showDeleted":{"title":"searchOrgs-showDeleted","type":"string","enum":["true","false"],"description":"When set to true, the response will include the details of deleted organization also.","default":"false"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrgsResponse"}}}},"description":"Array of organization details matching the search criteria"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Org"],"description":"This is endpoint is applicable only if organization feature is enabled in the cluster. \n\n To get the details of a specific organization or all organizations in the ThoughtSpot system use this end point. \n\n If no input is provided, then all organizations are included in the response. \n\n Requires Administration privilege for tenant."}},"/tspublic/rest/v2/metadata/tag":{"get":{"operationId":"getTag","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Name of the tag"},{"in":"query","name":"id","required":false,"schema":{"type":"string"},"description":"The GUID of the tag"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataTagResponse"}}},"description":"Details of the tag searched for"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To get details of a specific tag, use this endpoint. \n\n At least one of id or name of tag is required. When both are given, then id will be considered."}},"/tspublic/rest/v2/metadata/tag/create":{"post":{"operationId":"createTag","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the tag"},"color":{"type":"string","description":"Hex color code to be assigned to the tag"}},"required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataTagResponse"}}},"description":"Details of the tag created"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To programmatically create tags, use this endpoint \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/metadata/tag/update":{"put":{"operationId":"updateTag","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the tag"},"id":{"type":"string","description":"The GUID of the tag"},"color":{"type":"string","description":"Hex color code to be assigned to the tag"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully updated the tag"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To programmatically update tags, use this endpoint. \n\n At least one of id or name of tag is required. When both are given, then id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/metadata/tag/delete":{"delete":{"operationId":"deleteTag","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":"Name of the tag"},{"in":"query","name":"id","required":false,"schema":{"type":"string"},"description":"The GUID of the tag"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully deleted the tag"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To programmatically delete tags, use this endpoint. \n\n At least one of id or name of tag is required. When both are given, then id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/metadata/tag/assign":{"put":{"operationId":"assignTag","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":" Name of the tag"},"id":{"type":"string","description":"The GUID of the tag"},"tsObject":{"type":"array","items":{"$ref":"#/components/schemas/TsObjectInput"},"description":"A JSON Array of GUIDs and type of metadata object."}},"required":["tsObject"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully assigned the tag to the metadata object"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To programmatically assign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. \n\n At least one of id or name of tag is required. When both are given, then id will be considered. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/tag/unassign":{"put":{"operationId":"unassignTag","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":" Name of the tag"},"id":{"type":"string","description":"The GUID of the tag"},"tsObject":{"type":"array","items":{"$ref":"#/components/schemas/TsObjectInput"},"description":"A JSON Array of GUIDs and type of metadata object."}},"required":["tsObject"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully unassigned the tag to the metadata object"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To programmatically unassign tags to a metadata object, such as a liveboard, search answer, table, worksheet, or view, use this endpoint. \n\n At least one of id or name of tag is required. When both are given, then id will be considered. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/favorite/assign":{"put":{"operationId":"assignFavorite","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userName":{"type":"string","description":" Name of the user"},"userId":{"type":"string","description":"The GUID of the user"},"tsObject":{"type":"array","items":{"$ref":"#/components/schemas/TsObjectInput"},"description":"A JSON Array of GUIDs and type of metadata object."}},"required":["tsObject"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully assigned the object to favorites of the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To programmatically assign objects to favorites for a given user account, use this endpoint. \n\n At least one of user id or username is required. When both are given, then id will be considered. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/favorite/unassign":{"put":{"operationId":"unassignFavorite","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userName":{"type":"string","description":" Name of the user"},"userId":{"type":"string","description":"The GUID of the user"},"tsObject":{"type":"array","items":{"$ref":"#/components/schemas/TsObjectInput"},"description":"A JSON Array of GUIDs and type of metadata object."}},"required":["tsObject"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully unassigned the object from favorites of the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To programmatically unassign objects to favorites for a given user account, use this endpoint. \n\n At least one of user id or username is required. When both are given, then id will be considered. Screen reader support enabled. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/homeliveboard":{"get":{"operationId":"getHomeLiveboard","parameters":[{"in":"query","name":"userName","required":false,"schema":{"type":"string"}},{"in":"query","name":"userId","required":false,"schema":{"type":"string"},"description":"The GUID of the user"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomeLiveboardResponse"}}},"description":"The homeliveboard assigned to the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To get the name and id of liveboard that is set as a home liveboard for a user, use this endpoint. \n\n At least one of user id or username is required. When both are given, then id will be considered. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/homeliveboard/assign":{"put":{"operationId":"assignHomeLiveboard","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userName":{"type":"string","description":" Name of the user"},"userId":{"type":"string","description":"The GUID of the user"},"liveboardId":{"type":"string","description":"The GUID of the liveboard"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully assigned the home liveboard to the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To assign a specific liveboard as a home liveboard for a user, use this endpoint.\n\n At least one of user id or username is required. When both are given, then id will be considered. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/homeliveboard/unassign":{"put":{"operationId":"unassignHomeLiveboard","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userName":{"type":"string","description":" Name of the user"},"userId":{"type":"string","description":"The GUID of the user"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully unassigned the home liveboard to the user"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To unassign the home liveboard set for a user, use this endpoint.\n\n At least one of user id or username is required. When both are given, then id will be considered. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/incomplete":{"get":{"operationId":"getIncompleteObjects","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"An object representing map of set of incomplete object headers key ed by type"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To get a list of objects with incomplete metadata, use this endpoint"}},"/tspublic/rest/v2/metadata/header":{"get":{"operationId":"getObjectHeader","parameters":[{"in":"query","name":"type","required":true,"schema":{"title":"getObjectHeader-type","type":"string","enum":["ANSWER","LIVEBOARD","DATAOBJECT_ALL","DATAOBJECT_WORKSHEET","DATAOBJECT_TABLE","DATAOBJECT_USER_DEFINED","DATAOBJECT_VIEW","DATAOBJECT_CALENDAR_TABLE","COLUMN_ALL","COLUMN_WORKSHEET","COLUMN_TABLE","COLUMN_USER_DEFINED","COLUMN_VIEW","COLUMN_CALENDAR_TABLE","JOIN","CONNECTION","TAG","USER","USER_GROUP"]},"description":"Type of the metadata object being searched."},{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"GUID of the metadata object"},{"in":"query","name":"outputFields","required":false,"schema":{"type":"array","items":{"type":"string"}},"description":"Array of header field names that need to be included in the header response"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Header details based on the search criteria and requested output fields"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To get header detail of a metadata object, use this endpoint. You can provide as input selective fields to get the data for. \n\n Permission: Requires administration privilege for USER and USER_GROUP type. Requires datamanagement privilege for CONNECTION type. Requires at least view access for other object types"}},"/tspublic/rest/v2/metadata/detail":{"get":{"operationId":"getObjectDetail","parameters":[{"in":"query","name":"type","required":true,"schema":{"title":"getObjectDetail-type","type":"string","enum":["ANSWER","LIVEBOARD","DATAOBJECT","COLUMN","JOIN","CONNECTION","TAG","USER","USER_GROUP"]},"description":"Type of the metadata object being searched. Valid values"},{"in":"query","name":"id","required":true,"schema":{"type":"array","items":{"type":"string"}},"description":"A JSON array of GUIDs of the objects."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Full details of metadata objects searched for"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"Use this endpoint to get full details of metadata objects. \n\n Permission: Requires administration privilege for USER and USER_GROUP type. Requires datamanagement privilege for CONNECTION type. Requires at least view access to other object types"}},"/tspublic/rest/v2/metadata/vizheader":{"get":{"operationId":"getObjectVisualizationHeader","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"The GUID of the liveboard or answer"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}},"description":"Header details of vizualization charts in the liveboard/answer object"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"Use this endpoint to get header details of visualization charts for a given liveboard or answer. \n\n At least one of id or name of liveboard or answer is required. When both are given, then id will be considered. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/header/search":{"post":{"operationId":"searchObjectHeader","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"outputFields":{"type":"array","items":{"type":"string"},"description":"Array of header field names that need to be included in the header response"},"offset":{"type":"integer","format":"int32","description":"The offset point, starting from where the records should be included in the response.\n\n If no input is provided then offset starts from 0. \n\n","default":"0"},"batchNumber":{"type":"integer","format":"int32","description":"An alternate way to set offset for the starting point of the response. \n\n The value in offset field will not be considered if batchNumber field has value greater than 0. \n\n Offset value will be calculated as (batchNumber - 1) * batchSize. \n\n It is mandatory to provide a value for batchSize with batchNumber. \n\n Example: \n\n Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered."},"batchSize":{"type":"integer","format":"int32","description":"The number of records that should be included in the response starting from offset position. \n\n If no input is provided, then all records starting from the value provided in offset is included in the response."},"sortBy":{"description":"Field based on which the response needs to be ordered. \n\n","title":"searchObjectHeader-sortBy","type":"string","enum":["DEFAULT","NAME","DISPLAY_NAME","AUTHOR","CREATED","MODIFIED","LAST_ACCESSED","SYNCED","VIEWS","NONE","USER_STATE","ROW_COUNT"],"default":"DEFAULT"},"sortOrder":{"description":"Order in which sortBy should be applied. \n\n","title":"searchObjectHeader-sortOrder","type":"string","enum":["DEFAULT","ASC","DESC"],"default":"DEFAULT"},"type":{"description":"Type of the metadata object being searched.","title":"searchObjectHeader-type","type":"string","enum":["ANSWER","LIVEBOARD","DATAOBJECT_ALL","DATAOBJECT_WORKSHEET","DATAOBJECT_TABLE","DATAOBJECT_USER_DEFINED","DATAOBJECT_VIEW","DATAOBJECT_CALENDAR_TABLE","COLUMN_ALL","COLUMN_WORKSHEET","COLUMN_TABLE","COLUMN_USER_DEFINED","COLUMN_VIEW","COLUMN_CALENDAR_TABLE","JOIN","CONNECTION","TAG","USER","USER_GROUP"]},"namePattern":{"type":"string","description":"A pattern to match the name of the metadata object. This parameter supports matching case-insensitive strings. For a wildcard match, use %."},"fetchId":{"type":"array","items":{"type":"string"},"description":"A JSON array containing the GUIDs of the metadata objects that you want to fetch."},"skipId":{"type":"array","items":{"type":"string"},"description":"A JSON array containing the GUIDs of the metadata objects that you want to skip."},"showHidden":{"title":"searchObjectHeader-showHidden","type":"string","enum":["true","false"],"description":"When set to true, returns details of the hidden objects, such as a column in a worksheet or a table. \n\n","default":"false"},"autoCreated":{"title":"searchObjectHeader-autoCreated","type":"string","enum":["true","false"],"description":"A flag to indicate whether to list only the auto created objects. When no value is provided as input then all objects are returned."},"accessLevel":{"type":"array","items":{"$ref":"#/components/schemas/AccessLevelInput"},"description":"A JSON array of objects with user details for which the metadata objects should be considered from the repository If you specify ID or name of user and set the type parameter to USER, the API returns metadata objects associated with the user If you specify ID or name of user group and set the type parameter to USER_GROUP, the API returns metadata objects for all the users mapped to the specified user group. If the id or name parameter is not defined, but the type attribute is set to USER or USER_GROUP, then the API will not return and response. If no input is provided for any field for this object, then the API returns headers for all users. If both name and id is provided, then id will be considered."},"tag":{"type":"array","items":{"$ref":"#/components/schemas/TagNameAndIdInput"},"description":"A JSON array of name or GUID of tags or both. When both are given then id is considered."},"favoriteFor":{"type":"array","items":{"$ref":"#/components/schemas/NameAndIdInput"},"description":"A JSON array of name or GUID of the user or both for whom the object is assigned as favorite. When both are given then id is considered."},"author":{"type":"array","items":{"$ref":"#/components/schemas/NameAndIdInput"},"description":"A JSON array of name or GUID of the user or both who created the object. When both are given then id is considered."},"lastModifiedBy":{"type":"array","items":{"$ref":"#/components/schemas/NameAndIdInput"},"description":"A JSON array of name or GUID of the user or both who last modified the object. When both are given then id is considered."}},"required":["type"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Header details based on the search criteria and requested output fields"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To get header details for metadata objects, use this endpoint. You can provide as input selective fields to get the data for. \n\n Permission: Requires administration privilege for USER and USER_GROUP type. Requires datamanagement privilege for CONNECTION type. Requires at least view access for other object types"}},"/tspublic/rest/v2/metadata/detail/search":{"post":{"operationId":"searchObjectDetail","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"description":"Type of the metadata object being searched. Valid values","title":"searchObjectDetail-type","type":"string","enum":["ANSWER","LIVEBOARD","DATAOBJECT","COLUMN","JOIN","CONNECTION","TAG","USER","USER_GROUP"]},"id":{"type":"array","items":{"type":"string"},"description":"A JSON array of GUIDs of the objects."},"showHidden":{"title":"searchObjectDetail-showHidden","type":"string","enum":["true","false"],"description":"When set to true, returns details of the hidden objects, such as a column in a worksheet or a table.","default":"false"},"dropQuestionDetails":{"title":"searchObjectDetail-dropQuestionDetails","type":"string","enum":["true","false"],"description":" When set to true, the search assist data associated with a worksheet is not included in the API response. This attribute is applicable only for DATAOBJECT data type.","default":"false"},"version":{"type":"string","description":"Specify the version to retrieve the objects from. By default, the API returns metadata for all versions of the object."}},"required":["type","id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Full details of metadata objects searched for"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"Use this endpoint to get full details of metadata objects. \n\n Permission: Requires administration privilege for USER and USER_GROUP type. Requires datamanagement privilege for CONNECTION type. Requires at least view access for other object types"}},"/tspublic/rest/v2/metadata/delete":{"delete":{"operationId":"deleteObject","parameters":[{"in":"query","name":"type","required":true,"schema":{"title":"deleteObject-type","type":"string","enum":["ANSWER","LIVEBOARD","DATAOBJECT","COLUMN","JOIN","CONNECTION","TAG","USER","USER_GROUP"]},"description":"Type of the metadata object being searched."},{"in":"query","name":"id","required":true,"schema":{"type":"array","items":{"type":"string"}},"description":"A JSON array of GUIDs of the objects."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully deleted the object"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"Use this endpoint to delete the metadata objects. \n\n Permission: Requires modify access to the object"}},"/tspublic/rest/v2/metadata/dependency":{"post":{"operationId":"getObjectDependency","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"description":"Type of the data object ","title":"getObjectDependency-type","type":"string","enum":["LIVEBOARD","DATAOBJECT","COLUMN","JOIN"]},"id":{"type":"array","items":{"type":"string"},"description":"A JSON array of GUIDs of the objects"},"batchSize":{"type":"integer","format":"int32","description":" The maximum number of batches to fetch in a query. \n\n If this attribute is not defined, then the list of all dependent objects is included in the response"}},"required":["type","id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"An object with list of dependent objects grouped based on the type"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To query the details of dependent objects and associate objects as dependents, you can use this API.\n\n Dependency is defined as relation between referenced and referencing objects. A referencing object is said to have a dependency on a referenced object, if the referenced object cannot be deleted without first deleting the referencing object. \n\n Example: \n\n Consider a worksheet W1 that has a derived logical column C1 that has a reference to a base logical column C2. This can be shown diagramatically as: W1-->C1-->C2. \n\n W1 has a dependency on C2 i.e. W1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting W1 because deletion of C2 will be prevented by the relationship between W1s column C1 and C2. \n\nSimilarly C1 is said to have a dependency on C2 i.e. C1 is a referencing object and C2 is a referenced object. It is not possible to delete C2 without first deleting C1 \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/tml/export":{"post":{"operationId":"exportObjectTML","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"array","items":{"type":"string"},"description":"A JSON array of GUIDs of the objects."},"formatType":{"description":"The format in which to export the objects \n\n","title":"exportObjectTML-formatType","type":"string","enum":["YAML","JSON"],"default":"YAML"},"exportAssociated":{"title":"exportObjectTML-exportAssociated","type":"string","enum":["true","false"],"description":"Specifies if you would like to export the associated objects. To export the objects associated with the objects specified in id, set the value to true. When set to true, the API exports any underlying worksheets, tables, or views for a given object.\n\n By default, the API does not export these underlying objects \n\n","default":"false"}},"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successfully exported the requested object as TML"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To export ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/metadata/tml/import":{"post":{"operationId":"importObjectTML","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"objectTML":{"type":"array","items":{"type":"string"},"description":"A string array of TML objects to upload, in YAML or JSON format. \n\n If TML is in YAML format, then use new line characters when there is new line. \n\n Example TML: \n\n guid: 6d2c1c9b-a407-409c-8c0c-819aeb51350f\\ntable:\\n name: TESTINT\\n db: SUPPLYCHAIN_MAIN\\n schema: PUBLIC\\n db_table: TESTINT\\n connection:\\n name: SnowflakeConnection\\n columns:\\n - name: C1\\n db_column_name: C1\\n properties:\\n column_type: MEASURE\\n aggregation: SUM\\n index_type: DONT_INDEX\\n db_column_properties:\\n data_type: INT64\\n \n\n Example TML in JSON format: \n\n {\"guid\": \"6d2c1c9b-a407-409c-8c0c-819aeb51350f\", \"table\": {\"name\": \"TESTINT\", \"db\": \"SUPPLYCHAIN_MAIN\", \"schema\": \"PUBLIC\", \"db_table\": \"TESTINT\",\"connection\": { \"name\": \"SnowflakeConnection\" }, \"columns\": [ { \"name\": \"C1\", \"db_column_name\": \"C1\", \"properties\": { \"column_type\": \"MEASURE\", \"aggregation\": \"SUM\", \"index_type\": \"DONT_INDEX\" }, \"db_column_properties\": { \"data_type\": \"INT64\" } } ] } }"},"importPolicy":{"description":"Policy to follow during import. \n\n PARTIAL - Imports all objects that validate successfully, and ignores objects that do not validate successfully. \n\n ALL_OR_NONE Imports the objects that validate successfully. \n\n VALIDATE_ONLY Validates the objects but does not import them. \n\n","title":"importObjectTML-importPolicy","type":"string","enum":["PARTIAL","ALL_OR_NONE","VALIDATE_ONLY"],"default":"PARTIAL"},"forceCreate":{"title":"importObjectTML-forceCreate","type":"string","enum":["true","false"],"description":"Specifies if you are updating or creating objects. To create new objects, specify true. \n\n By default, ThoughtSpot updates existing objects that have the same GUID as the objects you are importing. When set to true, the GUID property in the imported TML is replaced on the server, and the response headers will include the id_guid property with the GUID of the new object. The new object will be assigned a new GUID, even if the imported TML file included a guid value. Thus, there is no need to include the guid in the TML file if you are using forceCreate=true. \n\n","default":"false"}},"required":["objectTML"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successfully imported the objects in TML"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Metadata"],"description":"To import ThoughtSpot objects represented in ThoughtSpot Modeling Language (TML), use this endpoint. \n\n Permission: Requires datamanagement privilge"}},"/tspublic/rest/v2/database":{"get":{"operationId":"getDatabases","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"description":"List of databases in Falcon"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Database"],"description":"Note: This endpoint is applicable only for on-prem deployments \n\n To list all the databases in Falcon, use this endpoint. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/database/schema":{"get":{"operationId":"getSchemas","parameters":[{"in":"query","name":"database","required":true,"schema":{"type":"string"},"description":"Name of the Falcon database"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"description":"List of schemas in Falcon Database provided in the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Database"],"description":"Note: This endpoint is applicable only for on-prem deployments \n\n To list all the schemas in a database in Falcon, use this endpoint. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/database/table":{"get":{"operationId":"getTables","parameters":[{"in":"query","name":"database","required":true,"schema":{"type":"string"},"description":"Name of the Falcon database"},{"in":"query","name":"schema","required":true,"schema":{"type":"string"},"description":"Name of the schema in Falcon database"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"description":"List of tables in the schema of Falcon Database provided in the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Database"],"description":"Note: This endpoint is applicable only for on-prem deployments. \n\n To list all the tables in a schema of a database in Falcon, use this endpoint. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/database/table/detail":{"get":{"operationId":"getTableDetails","parameters":[{"in":"query","name":"database","required":true,"schema":{"type":"string"},"description":"Name of the Falcon database"},{"in":"query","name":"schema","required":false,"schema":{"type":"string"},"description":"Name of the schema in Falcon database"},{"in":"query","name":"table","required":true,"schema":{"type":"string"},"description":"Name of the table in Falcon database"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Details of a table in the schema of Falcon Database provided in the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Database"],"description":"Note: This endpoint is applicable only for on-prem deployments. \n\n To provide details of a table in a schema of a database in Falcon, use this endpoint."}},"/tspublic/rest/v2/database/table/create":{"post":{"operationId":"createTable","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"createDatabase":{"title":"createTable-createDatabase","type":"string","enum":["true","false"],"description":"Flag to indicate if the database and schema should be created if they do not exist in Falcon. (Valid values: True/False) \n\n","default":"true"},"schema":{"type":"string","description":"DDL of the table to be created. \n\n Example: \n\n {\"database\":{\"name\":\"geo\"}, \n\n \"schema\":{\"name\":\"falcon_default_schema\"}, \n\n \"table\":{\"id\":{\"name\":\"test_table\"}, \n\n \"primary_key\":[{\"name\":\"test_pk\"}], \n\n \"column\":[ \n\n {\"id\":{\"name\":\"test_pk\"},\"size\":0,\"data_type\":\"TYPE_INT32\"}, \n\n {\"id\":{\"name\":\"test_col1\"},\"size\":0,\"data_type\":\"TYPE_FLOAT\"}, \n\n {\"id\":{\"name\":\"test_col2\"},\"data_type\":\"TYPE_INT64\",\"datetime\":\"TYPE_DATE\"}, \n\n {\"id\":{\"name\":\"test_col3\"},\"size\":10,\"data_type\":\"TYPE_VAR_CHAR\"} \n\n ] \n\n } \n\n }"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTableResponse"}}},"description":"Details of the table created"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Database"],"description":"Note: This endpoint is applicable only for on-prem deployments. \n\n To create a table in Falcon, use this endpoint. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/database/table/runquery":{"post":{"operationId":"runQuery","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"statement":{"type":"array","items":{"type":"string"},"description":" A JSON array of TQL statements. \n\n Each TQL statement should end with semi-colon (;). \n\n The TQL operations that can be run through this API are restricted to create database and schema, alter table, delete and update table rows. \n\n If a TQL statement fails, then the subsequent statements in the array are not run. \n\n Example: \n\n alter table test_db.test_schema.test_table drop contraint primary key;"}},"required":["statement"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}},"description":"TQL statements included in the request and the status of each statement"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Database"],"description":"Note: This endpoint is applicable only for on-prem deployments. \n\n To run a TQL statement in Falcon, use this endpoint. \n\n You can run only following type of statements - Table DDL alter and Table rows update and delete. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/connection":{"get":{"operationId":"getConnection","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"The GUID of the connection to query"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionResponse"}}},"description":"Details of the Connection"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To get the details of a specific connection use this endpoint. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/database":{"get":{"operationId":"getConnectionDatabase","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"The GUID of the connection"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"description":"List of databases in the data platform corresponding to the connection id provided."},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To get the list of databases for a connection, use this endpoint. \n\n The response will include databases from the data platform corresponding to the connection id provided. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/table":{"post":{"operationId":"getConnectionTables","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the connection"},"configuration":{"type":"string","description":"A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered. \n\n To get the tables based on a different configuration, include required attributes in the connection configuration JSON. \n\n Example: \n\n Get tables from Snowflake with a different user account than specified in the connection: {\"user\":\"test_user\",\"password\":\"test_pwd\",\"role\":\"test_role\"} \n\n Get tables from Redshift for different database than specified in the connection: {\"database\":\"test_db\"} \n\n "},"includeColumn":{"title":"getConnectionTables-includeColumn","type":"string","enum":["true","false"],"description":"When set to true, the response will include column level details as well. \n\n","default":"true"}},"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionTableResponse"}}},"description":"Table details in the data platform corresponding to the connection id provided."},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To get the details of tables from a connection, use this endpoint. \n\n You can get the details of tables in the data platform for the connection id provided. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/tablecoloumn":{"post":{"operationId":"getConnectionTableColumns","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the connection"},"configuration":{"type":"string","description":"A JSON object of the connection metadata. If this field is left empty, then the configuration saved in the connection is considered. \n\n To get the tables based on a different configuration, include required attributes in the connection configuration JSON. \n\n Example: \n\n Get tables from Snowflake with a different user account than specified in the connection: {\"user\":\"test_user\",\"password\":\"test_pwd\",\"role\":\"test_role\"} \n\n Get tables from Redshift for different database than specified in the connection: {\"database\":\"test_db\"} \n\n "},"table":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionTableColumnsInput"},"description":" A JSON object of database, schema and table combination \n\n","default":"true"}},"required":["id","table"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionTableColumnsResponse"}}},"description":"Column details for the tables provided in the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To get the details of columns in a table associated to a connection, use this endpoint. \n\n You can get the columns of any table available in the data platform for the connection id provided. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/create":{"post":{"operationId":"createConnection","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"description":"Type of the data connection.","title":"createConnection-type","type":"string","enum":["SNOWFLAKE","AMAZON_REDSHIFT","GOOGLE_BIGQUERY","AZURE_SYNAPSE","TERADATA","STARBURST","SAP_HANA","ORACLE_ADW","DATABRICKS","DENODO","DREMIO"]},"name":{"type":"string","description":"Name of the connection"},"description":{"type":"string","description":"A short description of the connection."},"configuration":{"type":"string","description":"A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. \n\n Example: \n\n Snowflake: {\"accountName\":\"testaccount\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"role\":\"test_role\",\"warehouse\":\"test_wh\",\"database\":\"test_db\"} \n\n Redshift: {\"host\":\"test_host\",\"port\":\"1234\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Google BigQuery: {\"project_id\":\"test_project\",\"oauth_pvt_key\":\"test_key\"} \n\n Azure Synapse: {\"host\":\"test_host\",\"port\":\"1234\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Teradata: {\"host\":\"test_host\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Oracle ADW: {\"user\":\"test_user\",\"password\":\"test_pwd\",\"net_service_name\":\"test_srvc_name\",\"tns_admin\":\"test_tns\",\"schema\":\"test_schema\"} \n\n Starburst: {\"host\":\"test_host\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Databricks: {\"host\":\"test_host\",\"http_path\":\"https://test \",\"user\":\"test_user\",\"password\":\"test_pwd\"} \n\n SAP HANA: {\"host\":\"test_host\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Denodo: {\"host\":\"test_host\",\"port\":\"1234\",\"user\":\"test_user\",\"password\":\"test_pwd\"} \n\n "}},"required":["type","name","configuration"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConnectionResponse"}}},"description":"Details of the connection created"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To programmatically create a connection in the ThoughtSpot system use this API endpoint. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/update":{"put":{"operationId":"updateConnection","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the connection"},"name":{"type":"string","description":" The text to update the name of the connection."},"description":{"type":"string","description":"The text to update the description of the connection."},"configuration":{"type":"string","description":"A JSON object of the connection metadata. The metadata must include configuration attributes required to create the connection. \n\n Example: \n\n Snowflake: {\"accountName\":\"testaccount\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"role\":\"test_role\",\"warehouse\":\"test_wh\",\"database\":\"test_db\"} \n\n Redshift: {\"host\":\"test_host\",\"port\":\"1234\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Google BigQuery: {\"project_id\":\"test_project\",\"oauth_pvt_key\":\"test_key\"} \n\n Azure Synapse: {\"host\":\"test_host\",\"port\":\"1234\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Teradata: {\"host\":\"test_host\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Oracle ADW: {\"user\":\"test_user\",\"password\":\"test_pwd\",\"net_service_name\":\"test_srvc_name\",\"tns_admin\":\"test_tns\",\"schema\":\"test_schema\"} \n\n Starburst: {\"host\":\"test_host\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Databricks: {\"host\":\"test_host\",\"http_path\":\"https://test \",\"user\":\"test_user\",\"password\":\"test_pwd\"} \n\n SAP HANA: {\"host\":\"test_host\",\"user\":\"test_user\",\"password\":\"test_pwd\",\"database\":\"test_db\"} \n\n Denodo: {\"host\":\"test_host\",\"port\":\"1234\",\"user\":\"test_user\",\"password\":\"test_pwd\"} \n\n "}},"required":["id","configuration"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Connection successfully updated"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"You can use this endpoint to programmatically modify an existing connection \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/delete":{"delete":{"operationId":"deleteConnection","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"array","items":{"type":"string"}},"description":"A JSON array of GUIDs of the connection"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Connection successfully deleted"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To remove a connection from the ThoughtSpot system, use this endpoint. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/addtable":{"put":{"operationId":"addTableToConnection","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the connection"},"table":{"type":"array","items":{"$ref":"#/components/schemas/AddTableInput"}}},"required":["id","table"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully added table(s) to the connection"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To programmatically add table to an existing connection, use this endpoint \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/removetable":{"put":{"operationId":"removeTableFromConnection","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the connection"},"table":{"type":"array","items":{"$ref":"#/components/schemas/TableInput"},"description":"A JSON array of name or GUIDs of the table or both. \n\n At least one input is required. Provide either table name or id. When both are given then id is considered"}},"required":["id","table"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully removed table(s) from the connection"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To programmatically remove a table from a connection, use API endpoint. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/connection/search":{"post":{"operationId":"searchConnection","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offset":{"type":"integer","format":"int32","description":"The offset point, starting from where the records should be included in the response. \n\n If no input is provided then offset starts from 0. \n\n","default":"0"},"batchNumber":{"type":"integer","format":"int32","description":"An alternate way to set offset for the starting point of the response. \n\n The value in offset field will not be considered if batchNumber field has value greater than 0. \n\n Offset value will be calculated as (batchNumber - 1) * batchSize. \n\n It is mandatory to provide a value for batchSize with batchNumber. \n\n "},"batchSize":{"type":"integer","format":"int32","description":"The number of records that should be included in the response starting from offset position. If no input is provided, then all records starting from the value provided in offset is included in the response."},"sortBy":{"description":"Field based on which the response needs to be ordered. \n\n","title":"searchConnection-sortBy","type":"string","enum":["DEFAULT","NAME","DISPLAY_NAME","AUTHOR","CREATED","MODIFIED","LAST_ACCESSED","SYNCED","VIEWS","NONE","USER_STATE","ROW_COUNT"],"default":"DEFAULT"},"sortOrder":{"description":"Order in which sortBy should be applied. \n\n","title":"searchConnection-sortOrder","type":"string","enum":["DEFAULT","ASC","DESC"],"default":"DEFAULT"},"type":{"description":" Type of the connect being searched. Valid values:","title":"searchConnection-type","type":"string","enum":["SNOWFLAKE","AMAZON_REDSHIFT","GOOGLE_BIGQUERY","AZURE_SYNAPSE","TERADATA","STARBURST","SAP_HANA","ORACLE_ADW","DATABRICKS","DENODO","DREMIO"]},"namePattern":{"type":"string","description":"A pattern to match the name of the connection. This parameter supports matching case-insensitive strings. For a wildcard match, use %."},"fetchId":{"type":"array","items":{"type":"string"},"description":"A JSON array containing the GUIDs of the connections that you want to fetch."},"skipId":{"type":"array","items":{"type":"string"},"description":"A JSON array containing the GUIDs of the connections that you want to skip."},"tag":{"type":"array","items":{"$ref":"#/components/schemas/TagNameAndIdInput"},"description":"A JSON array of name or GUID of tags or both. When both are given then id is considered"}},"required":["type"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionResponse"}}}},"description":"Array of connection details matching the search criteria"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Connection"],"description":"To get the details of a specific connection or all connections in the ThoughtSpot system use this end point. \n\n Permission: Requires datamanagement privilege"}},"/tspublic/rest/v2/data/search":{"post":{"operationId":"searchQueryData","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offset":{"type":"integer","format":"int32","description":"The offset point, starting from where the records should be included in the response. \n\n If no input is provided then offset starts from 0.","default":"0"},"batchNumber":{"type":"integer","format":"int32","description":"An alternate way to set offset for the starting point of the response. \n\n The value in offset field will not be considered if batchNumber field has value greater than 0. \n\n Offset value will be calculated as (batchNumber - 1) * batchSize. \n\n It is mandatory to provide a value for batchSize with batchNumber. \n\n Example: \n\n Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered."},"batchSize":{"type":"integer","format":"int32","description":"The number of records that should be included in the response starting from offset position. \n\n If no input is provided, then all records starting from the value provided in offset is included in the response."},"queryString":{"type":"string","description":"The data search query string. Example: [revenue] > 1000 [ship mode] = air"},"dataObjectId":{"type":"string","description":"The GUID of the data object, either a worksheet, a view, or a table."},"formatType":{"description":"The format of the data in the response. \n\n FULL: The response comes in \"column\":\"value\" format. \n\n COMPACT: The response includes only the value of the columns. \n\n","title":"searchQueryData-formatType","type":"string","enum":["COMPACT","FULL"],"default":"COMPACT"}},"required":["queryString","dataObjectId"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Data for the query string"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Data"],"description":"To programmatically retrieve data from ThoughtSpot using search query string, use this endpoint \n\n Permission: Requires at least view access to the dataobject and datadownloading privilege"}},"/tspublic/rest/v2/data/answer":{"post":{"operationId":"answerData","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offset":{"type":"integer","format":"int32","description":"The offset point, starting from where the records should be included in the response. \n\n If no input is provided then offset starts from 0. \n\n","default":"0"},"batchNumber":{"type":"integer","format":"int32","description":"An alternate way to set offset for the starting point of the response. \n\n The value in offset field will not be considered if batchNumber field has value greater than 0. \n\n Offset value will be calculated as (batchNumber - 1) * batchSize. \n\n It is mandatory to provide a value for batchSize with batchNumber. \n\n Example: \n\n Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered."},"batchSize":{"type":"integer","format":"int32","description":"The number of records that should be included in the response starting from offset position. \n\n If no input is provided, then all records starting from the value provided in offset is included in the response."},"id":{"type":"string","description":"The GUID of the Answer"},"formatType":{"description":"The format of the data in the response. \n\n FULL: The response comes in \"column\":\"value\" format. \n\n COMPACT: The response includes only the value of the columns. \n\n","title":"answerData-formatType","type":"string","enum":["COMPACT","FULL"],"default":"COMPACT"}},"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Data from the saved Answer"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Data"],"description":"To retrieve data related to a Answer from the ThoughtSpot system, you can use this endpoint. \n\n Permission: Requires at least view access to the object and datadownloading privilege"}},"/tspublic/rest/v2/data/liveboard":{"post":{"operationId":"liveboardData","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offset":{"type":"integer","format":"int32","description":"The offset point, starting from where the records should be included in the response. \n\n If no input is provided then offset starts from 0. \n\n","default":"0"},"batchNumber":{"type":"integer","format":"int32","description":"An alternate way to set offset for the starting point of the response. \n\n The value in offset field will not be considered if batchNumber field has value greater than 0. \n\n Offset value will be calculated as (batchNumber - 1) * batchSize. \n\n It is mandatory to provide a value for batchSize with batchNumber. \n\n Example: \n\n Assume response has 100 records. Now, batchNumber is set as 2 and batchSize as 10, then offset value will be 10. So, 10 records starting from 11th record will be considered."},"batchSize":{"type":"integer","format":"int32","description":"The number of records that should be included in the response starting from offset position. \n\n If no input is provided, then all records starting from the value provided in offset is included in the response."},"id":{"type":"string","description":"The GUID of the Liveboard"},"transientContent":{"type":"string","description":" If you have embedded ThoughtSpot in your host application, and you want to download Liveboard data with unsaved changes then, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard . If value for this field is provided, then id will not be considered."},"vizId":{"type":"array","items":{"type":"string"},"description":"A JSON array of GUIDs of the visualizations in the Liveboard. \n\n The vizId field will not be considered when transientContent input is provided."},"runtimeFilter":{"type":"string","description":"JSON object which contains filter condition to filter the data at the time of data retrieval. \n\n Example: {\"col1\":\"region\",\"op1\":\"EQ\",\"val1\":\"northeast\",\"col2\":\"date\",\"op2\":\"BET\",\"val2\":[\"1625126400000\",\"1625126400000\"]} \n\n For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters "},"runtimeSort":{"type":"string","description":"JSON object which provides columns to sort the data at the time of data retrieval. \n\n Example: {\"sortCol1\":\"region\",\"asc1\":true,\"sortCol2\":\"date\"} \n\n For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters "},"formatType":{"description":"The format of the data in the response. \n\n FULL: The response comes in \"column\":\"value\" format. \n\n COMPACT: The response includes only the value of the columns. \n\n","title":"liveboardData-formatType","type":"string","enum":["COMPACT","FULL"],"default":"COMPACT"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Data from the saved Liveboard"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Data"],"description":"To retrieve data related to a Liveboard or visualization from the ThoughtSpot system, you can use this endpoint \n\n Permission: Requires at least view access to the object and datadownloading privilege"}},"/tspublic/rest/v2/data/answer/querysql":{"get":{"operationId":"answerQuerySql","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"The GUID of the Answer"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerQueryResponse"}}},"description":"Query SQL for a saved Answer "},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Data"],"description":"To retrieve the query SQL related to an Answer that is run on the data platform, you can use this endpoint. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/data/liveboard/querysql":{"get":{"operationId":"liveboardQuerySql","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"The GUID of the Liveboard"},{"in":"query","name":"vizId","required":false,"schema":{"type":"array","items":{"type":"string"}},"description":"A JSON array of GUIDs of the visualizations in the Liveboard."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveboardQueryResponse"}}},"description":"Query SQL for a visualization in a Liveboard"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Data"],"description":"To retrieve the query SQL related to a Visualization in a Liveboard that is run on the data platform, you can use this endpoint. \n\n Permission: Requires at least view access to the object"}},"/tspublic/rest/v2/report/answer":{"post":{"operationId":"answerReport","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the Answer to download."},"type":{"description":"Type of file to be generated. \n\n","title":"answerReport-type","type":"string","enum":["CSV","XLSX","PDF","PNG"],"default":"PDF"}},"required":["id","type"]}}},"required":true},"responses":{"200":{"description":"Downloaded file for the Answer data","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["report"],"description":"To programmatically download Answer data as a file, use this endpoint. \n\n The PDF will download data in the tabular format even if Answer is saved as chart. \n\n Permission: Requires at least view access to the object and datadownloading privilege"}},"/tspublic/rest/v2/report/liveboard":{"post":{"operationId":"liveboardReport","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the Liveboard to download. \n\n This field is considered only when no input is provided for transientContent field."},"vizId":{"type":"array","items":{"type":"string"},"description":"JSON Array of GUIDs of the visualizations in the Liveboard to be included in the downloaded file. \n\n For CSV, XLSX and PNG file download, visualization id is mandatory. CSV and XLSX is valid only for visualization of type table and PNG is valid for charts. \n\n Only one value will be accepted for these formats. If multiple values are provided then first value in the array will be considered."},"transientContent":{"type":"string","description":"If you have embedded ThoughtSpot in your host application, and you want to download Liveboards with unsaved changes as a file, pass the transient content from the browser fetch request, using the getExportRequestForCurrentPinboard method. For more information, see https://developers.thoughtspot.com/docs/?pageid=liveboard-export-api#transient-pinboard."},"runtimeFilter":{"type":"string","description":"JSON object which contains filter condition to filter the data at the time of data retrieval. \n\n Example: {\"col1\":\"region\",\"op1\":\"EQ\",\"val1\":\"northeast\",\"col2\":\"date\",\"op2\":\"BET\",\"val2\":[\"1625126400000\",\"1625126400000\"]} \n\n For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters"},"runtimeSort":{"type":"string","description":"JSON object which provides columns to sort the data at the time of data retrieval. \n\n Example: {\"sortCol1\":\"region\",\"asc1\":true,\"sortCol2\":\"date\"} \n\n For more information, see https://developers.thoughtspot.com/docs/?pageid=runtime-filters"},"type":{"description":"Type of file to be generated. \n\n","title":"liveboardReport-type","type":"string","enum":["CSV","XLSX","PDF","PNG"],"default":"PDF"},"pdfOptions":{"$ref":"#/components/schemas/pdfOptionsInput","description":"Additional options that are applicable for PDF type."}},"required":["type"]}}},"required":true},"responses":{"200":{"description":"Downloaded file for the Liveboard data","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["report"],"description":"To programmatically download Liveboard data or specific Visualization data from Liveboard as a file, use this endpoint \n\n Permission: Requires at least view access to the object and datadownloading privilege"}},"/tspublic/rest/v2/admin/configuration":{"get":{"operationId":"getClusterConfig","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Details of cluster configuration settings"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To get details of the current configuration of a Thoughtspot cluster, use this endpoint. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/admin/configuration/overrides":{"get":{"operationId":"getClusterConfigOverrides","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Details of overrides of cluster configuration settings"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To get the details of overrides to the Thoughtspot cluster configuration, use this endpoint. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/admin/configuration/update":{"put":{"operationId":"updateClusterConfig","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"configuration":{"type":"string","description":"A JSON file with the key-value pair of configuration attributes to be updated.\n\n Example: {\"defaultChartDataSize\": 5000}"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully updated the cluster configuration settings"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To update the Thoughtspot cluster configuration, use this endpoint. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/admin/resetpassword":{"put":{"operationId":"resetUserPassword","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"User name of the user account."},"id":{"type":"string","description":"The GUID of the user account to query."},"newPassword":{"type":"string","description":"A new password for the user."}},"required":["newPassword"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Password reset successful"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To reset the password of a ThoughtSpot user account, use this endpoint. \n\n It is mandatory to use Authorization header with token of a user with admin access to successfully run this endpoint. \n\n At least one of User Id or username is mandatory. When both are given, then user id will be considered. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/admin/syncprincipal":{"put":{"operationId":"syncPrincipal","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"principalObject":{"type":"array","items":{"type":"object"},"description":"A JSON array of principal objects containing all users and groups present in the external system. \n\n Example: \n\n { \n\n \"name\": \"Customer Success\", \n\n \"displayName\": \"Customer Success\", \n\n \"description\": \"CS\", \n\n \"created\": 1568926267025, \n\n \"modified\": 1568926982242, \n\n \"principalTypeEnum\": \"LOCAL_GROUP\", \n\n \"groupNames\": [], \n\n \"visibility\": \"DEFAULT\" \n\n }, \n\n { \n\n \"name\": \"test\", \n\n \"displayName\": \"test one\", \n\n \"created\": 1587573621279, \n\n \"modified\": 1587573621674, \n\n \"mail\": \"test2@test.com\", \n\n \"principalTypeEnum\": \"LOCAL_USER\", \n\n \"groupNames\": [ \"Administrator\", \"All\" ], \n\n \"visibility\": \"DEFAULT\" \n\n } \n\n You can leave the created and modified dates blank for new users. \n\n You can specify if the principal is a user (LOCAL_USER) or user group (LOCAL_GROUP) in the principalTypeEnum keyword. \n\n Set visibility to NON_SHARABLE, if you do not want the user to be able to share ThoughtSpot objects with other users in this group."},"updateModified":{"title":"syncPrincipal-updateModified","type":"string","enum":["true","false"],"description":"Specifies whether to apply the changes to users and groups already in the cluster based on the principal object list input. \n\n","default":"false"},"deleteRemoved":{"title":"syncPrincipal-deleteRemoved","type":"string","enum":["true","false"],"description":"Specifies whether to delete the users and groups already in the cluster if not present in the principal object list input. \n\n","default":"false"},"newUserPassword":{"type":"string","description":"Assign a password for new users added during the sync operation. \n\n All new users added will have this password. It is mandatory to provide value for this field if new users are included in the input list."}},"required":["principalObject"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminsyncPrincipalResponse"}}},"description":"Successfully synced the principals provided as input with the users and user groups in your Thoughtspot cluster."},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To programmatically synchronize user accounts and user groups from external system with ThoughtSpot, use this endpoint. \n\n The payload takes principals containing all users and groups present in the external system. \n\n The users and user groups in Thoughtspot get updated for any matching inputs. \n\n Any user and user group present in the input, but not present in the cluster, gets created in cluster. \nn You can optionally choose to delete the user and groups from the cluster, that are not present in the input. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/admin/changeauthor":{"put":{"operationId":"changeAuthorOfObjects","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tsObjectId":{"type":"array","items":{"type":"string"},"description":"A JSON array of GUIDs of the metadata objects. \n\n To change author of all the objects owned by a user, provide single input as ALL. \n\n If multiple object ids along with ALL is provided as input, then ALL will be considered."},"fromUser":{"$ref":"#/components/schemas/FromUserNameAndIDInput","description":"A JSON object of name or GUIDs of the current author of the objects. When both are given then id is considered. \n\n If a list of object ids are provided as input for tsObjectId, then only for those ids that have author as the value provided in fromUser, the author will be changed. \n\n Provide either name or id as input. When both are given user id will be considered."},"toUser":{"$ref":"#/components/schemas/ToUserNameAndIDInput","description":"A JSON object of name or GUIDs of the new author for the objects. When both are given then id is considered."}},"required":["tsObjectId","fromUser","toUser"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully changed the author for the objects provided in the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To programmatically change the author of one or several objects from one user account to another, use this endpoint. \n\n You might want to change the author of objects from one user to another active user, when the account is removed from the ThoughtSpot application. \n\n Permission: Requires administration privilege"}},"/tspublic/rest/v2/admin/assignauthor":{"put":{"operationId":"assignAuthorToObjects","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tsObjectId":{"type":"array","items":{"type":"string"},"description":"A JSON array of GUIDs of the metadata objects."},"name":{"type":"string","description":"User name of the user account."},"id":{"type":"string","description":"The GUID of the user account."}},"required":["tsObjectId"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully assigned the author to the objects provided in the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To programmatically assign an author to one or several objects, use this endpoint. \n\n Provide either user name or id as input. When both are given user id will be considered. \n\n Requires administration privilege."}},"/tspublic/rest/v2/admin/forcelogout":{"post":{"operationId":"forceLogoutUsers","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"array","items":{"$ref":"#/components/schemas/NameAndIdInput"},"description":" A JSON array of name of users or GUIDs of groups or both. When both are given then id is considered."}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully logged out the users included in the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["admin"],"description":"To logout one or more users from logged in session, use this endpoint. If no input is provided then all logged in users are force logged out. \n\n Requires administration privilege"}},"/tspublic/rest/v2/security/share/tsobject":{"post":{"operationId":"shareObject","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"description":"Type of metadata object","title":"shareObject-type","type":"string","enum":["LIVEBOARD","ANSWER","DATAOBJECT","COLUMN"]},"id":{"type":"array","items":{"type":"string"},"description":"A JSON array of the GUIDs of the objects to be shared"},"permission":{"type":"string","description":"A JSON object with GUIDs of user and user group, and the type of access privilge. \n\n You can provide READ_ONLY or MODIFY access to the objects. With READ_ONLY access, the user or user group can view the shared object, whereas MODIFY access enables users to modify the object. \n\n To remove access to a shared object, you can set the shareMode in the permission string to NO_ACCESS. Example: \n\n {\"permissions\": {\"e7040a64-7ff1-4ab9-a1b0-f1acac596866\": {\"shareMode\": \"READ_ONLY\"}, \"f7b8f511-317c-485d-8131-26cf084ef47b\": {\"shareMode\": \"MODIFY\"}, \"7a9a6715-e154-431b-baaf-7b58246c13dd\":{\"shareMode\":\"NO_ACCESS\"}}}"},"emailId":{"type":"array","items":{"type":"string"},"description":"The email addresses that should be notified when the objects are shared."},"notify":{"title":"shareObject-notify","type":"string","enum":["true","false"],"description":"When set to true, a notification is sent to the users after an object is shared. \n\n ","default":"true"},"message":{"type":"string","description":"The message text to send in the notification email"},"includeCustomEmbedUrl":{"title":"shareObject-includeCustomEmbedUrl","type":"string","enum":["true","false"],"description":"When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance. \n\n","default":"false"}},"required":["type","id","permission"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully shared the objects to the users and user groups as per the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Security"],"description":"To programmatically share ThoughtSpot objects with another user or user group, use this endpoint. \n\n When you share an object like a Liveboard or visualization, a notification with a live link is sent to the user. When the users access this object, they can view the last saved version of the object. \n\n Requires privilege to share the object"}},"/tspublic/rest/v2/security/share/visualization":{"post":{"operationId":"shareVisualization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The GUID of the Liveboard to be shared"},"vizId":{"type":"string","description":"The GUID of visualization"},"principalId":{"type":"array","items":{"type":"string"},"description":"The GUID of the users and user groups with which you want to share the visualization"},"emailId":{"type":"array","items":{"type":"string"},"description":"The email addresses that should ne notified when the objects are shared."},"notify":{"title":"shareVisualization-notify","type":"string","enum":["true","false"],"description":"When set to true, a notification is sent to the users after an object is shared. \n\n ","default":"true"},"message":{"type":"string","description":"The message text to send in the notification email"},"includeCustomEmbedUrl":{"title":"shareVisualization-includeCustomEmbedUrl","type":"string","enum":["true","false"],"description":"When set to true, ThoughtSpot sends a link with the host application context to allow users to access the shared object from their ThoughtSpot embedded instance. \n\n","default":"false"}},"required":["id","vizId","principalId"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean"}}},"description":"Successfully shared the visualization in the liveboard to the users and user groups as per the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Security"],"description":"If you want to share a specific visualization from a Liveboard with another user or user group, then use this endpoint. \n\n When you share a visualization, a notification with a live link is sent to the user. When the users access this Liveboard, they can view the last saved version of the visualization. \n\n Requires privilege to share the visualization"}},"/tspublic/rest/v2/security/permission/tsobject":{"get":{"operationId":"getPermissionOnObject","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"GUID of the metadata object for which the permission needs to be obtained."},{"in":"query","name":"type","required":true,"schema":{"title":"getPermissionOnObject-type","type":"string","enum":["LIVEBOARD","ANSWER","DATAOBJECT","COLUMN"]},"description":"Type of metadata object"},{"in":"query","name":"includeDependent","required":false,"schema":{"type":"boolean"},"description":"When this field is set to true, the API response includes the permission details for the dependent objects. \n\n"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityPermissionResponse"}}},"description":"List of user and user groups that have VIEW or MODIFY access to the object"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Security"],"description":"To list the permissions for user and user groups on an object, use this endpoint. The response will include only those users and groups with have either VIEW OR MODIFY permission. \n\n You can optionally see the permission on the dependent objects as well by enabling includeDependent field. \n\n Requires administration privilege"}},"/tspublic/rest/v2/security/permission/principal":{"get":{"operationId":"getPermissionForPrincipal","parameters":[{"in":"query","name":"id","required":false,"schema":{"type":"string"},"description":"GUID of the user or user group for which the object permission needs to be obtained"},{"in":"query","name":"name","required":false,"schema":{"type":"string"},"description":" Name of the user or user group for which the object permission needs to be obtained"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrincipalSearchResponse"}}},"description":"List of objects on which the user or user group has VIEW or MODIFY access"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Security"],"description":"Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. \n\n Provide at least one of id or name. When both are given then id is considered.\n\n Requires administration privilege"}},"/tspublic/rest/v2/security/permission/tsobject/search":{"post":{"operationId":"searchPermissionOnObjects","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tsObject":{"type":"array","items":{"$ref":"#/components/schemas/TsObjectSearchInput"},"description":" A JSON Array of GUIDs and type of metadata object."},"principal":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":"A JSON array of principal names or GUIDs. When both are given then id is considered."},"includeDependent":{"title":"searchPermissionOnObjects-includeDependent","type":"string","enum":["true","false"],"description":"When this field is set to true, the API response includes the permission details for the dependent objects","default":"false"}},"required":["tsObject"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecurityPermissionResponse"}}}},"description":"List of user and user groups that have VIEW or MODIFY access to the objects"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Security"],"description":"To list the permissions for user and user groups on a list of objects, use this endpoint. The response will include only those users and groups that has either VIEW OR MODIFY permission. \n\n Provide list of object ids and its type to list the permissions for. \n\n You can optionally provide users or user groups for which the persmission needs to be displayed. \n\n You can optionally see the permission on the dependent objects as well by enabling includeDependent field. \n\n Requires administration privilege"}},"/tspublic/rest/v2/security/permission/principal/search":{"post":{"operationId":"searchPermissionForPrincipals","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndIDInput"},"description":" A JSON array of principal names or GUIDs to be included in the request. When both are given then id is considered."},"tsObject":{"type":"array","items":{"$ref":"#/components/schemas/TsObjectSearchInput"},"description":" A JSON Array of GUIDs and type of metadata object."}},"required":["principal"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PrincipalSearchResponse"}}}},"description":"List of objects on which the users or user groups has VIEW or MODIFY access"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Security"],"description":"Use this endpoint to list the objects on which a user or user group has permission. The response will include only those objects on which the user or user group has either VIEW OR MODIFY permission. \n\n You can optionally provide list of object ids for which the persmission needs to be displayed. \n\n Requires administration privilege"}},"/tspublic/rest/v2/logs/events":{"get":{"operationId":"getLogEvents","parameters":[{"in":"query","name":"topic","required":true,"schema":{"title":"getLogEvents-topic","type":"string","enum":["security_logs"],"default":"security_logs"},"description":"Type of the log. \n\n"},{"in":"query","name":"fromEpoch","required":false,"schema":{"type":"string"},"description":"The EPOCH time in milliseconds to set the start time for streaming logs. \n\n Example: To set the timestamp as June 1, 2021 8 am, specify 1622534400000."},{"in":"query","name":"toEpoch","required":false,"schema":{"type":"string"},"description":"The EPOCH time in milliseconds to set the end time for streaming logs. \n\n Example: To set the timestamp as July 1, 2021, 8 am, specify 1625126400000."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogsResponse"}}},"description":"Events from the topic specified for the time duration provided"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["logs"],"description":"Note: This endpoint is applicable only for SAAS deployments. \n\n The ThoughtSpot log streaming service API allows you to programmatically get a security audit event log from the ThoughtSpot system. \n\n ThoughtSpot cloud deployments allow you to collect security audit events and send them to your Security information and event management (SIEM) application in real-time. \n\n These events can help your security operations personnel to detect potential security threats or compromised user accounts in your organization. \n\n Permission: Requires administration privilege."}},"/tspublic/rest/v2/materialization/refreshview":{"put":{"operationId":"refreshMaterializedView","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of metadata object"}},"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Successfully refreshed the data in the materialized view"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["materialization"],"description":"Use this endpoint to refresh data in the materialized view by running the query associated with it"}},"/tspublic/rest/v2/customaction":{"get":{"operationId":"getCustomAction","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"GUID of the custom action"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON data for the specified custom action ID"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"To get details of a specific custom action configured in the ThoughtSpot system, use this endpoint"}},"/tspublic/rest/v2/customaction/create":{"post":{"operationId":"createCustomAction","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"configuration":{"type":"string","description":"A JSON object with the key-value pair of configuration attributes \n\n Example: \n\n {\"id\":\"3f7eac93-cce1-4ffc-b7a8-429353edbc6b\",\"name\":\"unpkg test\",\"version\":\"v2\",\"type\":\"URL\",\"detail\":{\"link\":\"https://unpkg.com \",\"function\":\"unpkg-test\",\"authSelect\":\"BEARER\",\"authToken\":\"asdfasadf3q4534534\",\"encodeUser\":\"\",\"apiKey\":\"X-API-KEY\",\"apiValue\":\"\",\"additionalUrlHeaders\":\"{\\\\\"url_header1\\\\\":{\\\\\"id\\\\\":\\\\\"6a82908c-9328-40ff-b347-65adeda12f57\\\\\",\\\\\"key\\\\\":\\\\\"key1\\\\\",\\\\\"value\\\\\":\\\\\"value1\\\\\"}}\"},\"actionAssociationMap\":{\"ANSWER\":{\"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5\":{\"enabled\":\"true\",\"context\":\"MENU\"}}},\"context\":\"NONE\",\"availability\":[\"GLOBAL\"],\"userGroupList\":[\"d0326b56-ef23-4c8a-8327-a30e99bcc72b\"]}"}},"required":["configuration"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON data of custom action created"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, use this endpoint"}},"/tspublic/rest/v2/customaction/update":{"put":{"operationId":"updateCustomAction","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the custom action"},"configuration":{"type":"string","description":"A JSON object with the key-value pair of configuration attributes \n\n Example: \n\n {\"id\":\"3f7eac93-cce1-4ffc-b7a8-429353edbc6b\",\"name\":\"unpkg test\",\"version\":\"v2\",\"type\":\"URL\",\"detail\":{\"link\":\"https://unpkg.com \",\"function\":\"unpkg-test\",\"authSelect\":\"BEARER\",\"authToken\":\"asdfasadf3q4534534\",\"encodeUser\":\"\",\"apiKey\":\"X-API-KEY\",\"apiValue\":\"\",\"additionalUrlHeaders\":\"{\\\\\"url_header1\\\\\":{\\\\\"id\\\\\":\\\\\"6a82908c-9328-40ff-b347-65adeda12f57\\\\\",\\\\\"key\\\\\":\\\\\"key1\\\\\",\\\\\"value\\\\\":\\\\\"value1\\\\\"}}\"},\"actionAssociationMap\":{\"ANSWER\":{\"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5\":{\"enabled\":\"true\",\"context\":\"MENU\"}}},\"context\":\"NONE\",\"availability\":[\"GLOBAL\"],\"userGroupList\":[\"d0326b56-ef23-4c8a-8327-a30e99bcc72b\"]}"}},"required":["id","configuration"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON data for the specified custom action ID"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"To programmatically edit an existing custom action, use this endpoint "}},"/tspublic/rest/v2/customaction/delete":{"delete":{"operationId":"deleteCustomAction","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"GUID of the custom action"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON response indicating that the specified action ID is no longer available"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"To programmatically delete a custom action, use this endpoint"}},"/tspublic/rest/v2/customaction/search":{"post":{"operationId":"searchCustomAction","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tag":{"type":"array","items":{"type":"string"},"description":" A JSON array of tag GUIDs. \n\n If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags."}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON data of custom action based on the request"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"To search custom actions available on a ThoughtSpot instance, use this endpoint"}},"/tspublic/rest/v2/customaction/association":{"get":{"operationId":"getCustomActionAssociation","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":" GUID of the custom action"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON data with the action association map for the specified custom action ID"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets. To get the details of the ThoughtSpot objects associated with a custom action, use this endpoint."}},"/tspublic/rest/v2/customaction/association/update":{"put":{"operationId":"updateCustomActionAssociation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the custom action"},"association":{"type":"string","description":"A JSON map of the attributes for associating the action to a ThoughtSpot object ID \n\n Example: \n\n {\"id\":\"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf\",\"name\":\"My worksheet action\",\"version\":\"v2\",\"type\":\"URL\",\"detail\":{\"link\":\"https://unpkg.com \",\"function\":\"my-worksheet-action\",\"authSelect\":\"NONE\",\"authToken\":\"\",\"encodeUser\":\"\",\"apiKey\":\"X-API-KEY\",\"apiValue\":\"\",\"additionalUrlHeaders\":\"{}\"},\"actionAssociationMap\":{\"WORKSHEET\":{\"2b9d083a-275c-4984-9cfe-90b036affa17\":{\"enabled\":\"true\",\"context\":\"PRIMARY\"}}},\"context\":\"NONE\",\"availability\":[ ],\"userGroupList\":[\"d0326b56-ef23-4c8a-8327-a30e99bcc72b\"]}"}},"required":["id","association"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON data with the action association map"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"To programmatically associate a custom action to a ThoughtSpot object, use this endpoint"}},"/tspublic/rest/v2/customactions/association/delete":{"delete":{"operationId":"deleteCustomActionAssociation","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"},"description":"GUID of the custom action"},{"in":"query","name":"association","required":true,"schema":{"type":"string"},"description":" A JSON map of the attributes with association of the action to ThoughtSpot object ID \n\n Example: \n\n {\"id\":\"0dbd5b3a-84c1-4407-9803-cf07d67e6fcf\",\"name\":\"My worksheet action\",\"version\":\"v2\",\"type\":\"URL\",\"detail\":{\"link\":\"https://unpkg.com \",\"function\":\"my-worksheet-action\",\"authSelect\":\"NONE\",\"authToken\":\"\",\"encodeUser\":\"\",\"apiKey\":\"X-API-KEY\",\"apiValue\":\"\",\"additionalUrlHeaders\":\"{}\"},\"actionAssociationMap\":{\"WORKSHEET\":{\"2b9d083a-275c-4984-9cfe-90b036affa17\":{\"enabled\":\"true\",\"context\":\"PRIMARY\"}}},\"context\":\"NONE\",\"availability\":[ ],\"userGroupList\":[\"d0326b56-ef23-4c8a-8327-a30e99bcc72b\"]}"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON data with the updated JSON map of the custom action"},"500":{"description":"Operation failed or unauthorized request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["CustomActions"],"description":"To remove custom action associations to ThoughtSpot objects, use this endpoint"}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","x-additional-headers":[{"name":"Accept-Language","description":"response format","schema":{"default":"*"}},{"name":"Content-Type","description":"body content type for post request","schema":{"default":"application/json"}}]}},"schemas":{"SessionLoginResponse":{"type":"object","properties":{"userName":{"type":"string","description":"Username of the user account for which token is generated"},"token":{"type":"string","description":"Bearer token generated. This will be blank when token type is Cookie"},"tokenCreatedTime":{"type":"string","description":"Date and time at which the token is generated"},"tokenExpiryDuration":{"type":"string","description":"Duration in seconds after which the token expires"},"tokenType":{"type":"string","description":"Type of token generated"}},"description":"Login response"},"GroupNameAndIDInput":{"type":"object","properties":{"name":{"type":"string","description":"Name of the group"},"id":{"type":"string","description":"GUID of the group"}}},"GroupNameAndID":{"type":"object","properties":{"name":{"type":"string","description":"Name of the group"},"id":{"type":"string","description":"GUID of the group"}}},"UserNameAndID":{"type":"object","properties":{"name":{"type":"string","description":"Username of the user"},"id":{"type":"string","description":"GUID of the user"}}},"UserNameAndIDInput":{"type":"object","properties":{"name":{"type":"string","description":"Username of the user"},"id":{"type":"string","description":"GUID of the user"}}},"UserResponse":{"type":"object","properties":{"name":{"type":"string","description":"Username of the user account"},"displayName":{"type":"string","description":"Display name of the user account"},"id":{"type":"string","description":"GUID of the user account"},"visibility":{"type":"string","description":"Visibility of the user account"},"mail":{"type":"string","description":"Email of the user account"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndID"},"description":"Name of the group to which user account is added"},"privileges":{"type":"array","items":{"type":"string"},"description":"Privileges assigned to user account"},"orgs":{"type":"array","items":{"$ref":"#/components/schemas/OrgType"},"description":"The organizations that user belongs to"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags assigned to the user"},"state":{"type":"string","description":"Indicates if the user account is active or inactive"},"notifyOnShare":{"type":"boolean","description":"Indicates if the email should be sent when object is shared with the user"},"showWalkMe":{"type":"boolean","description":"Indicates if the walk me should be shown when logging in"},"analystOnboardingComplete":{"type":"boolean","description":"Indicates if the onboarding is completed for the user"},"firstLogin":{"type":"integer","format":"int32","description":"Indicates if the use is logging in for the first time"},"welcomeEmailSent":{"type":"boolean","description":"Indicates if the welcome email is sent to email associated with the user account"},"isDeleted":{"type":"boolean","description":"Indicates if the user account is deleted"},"isHidden":{"type":"boolean","description":"Indicates if the user account is hidden"},"isExternal":{"type":"boolean","description":"Indicates if the user account is from external system\nisDeprecated"},"isDeprecated":{"type":"boolean"},"complete":{"type":"boolean","description":"Indicates if the all the properties of user account is provided"},"isSuperUser":{"type":"boolean","description":"Indicates if the user account is super user"},"isSystemPrincipal":{"type":"boolean","description":"Indicates if the user account is system principal"},"type":{"type":"string","description":"Indicates the type of user account"},"parenttype":{"type":"string","description":"Indicates the type of parent object"},"tenantId":{"type":"string","description":"Tenant id associated with the user account"},"indexVersion":{"type":"number","format":"float"},"generationNum":{"type":"number","format":"float"},"created":{"type":"number","format":"float","description":"Date and time when user account was created"},"modified":{"type":"number","format":"float","description":"Date and time of last modification of user account"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of the user account"},"modifiedBy":{"$ref":"#/components/schemas/UserNameAndID","description":"The user which last modified the user account details"},"owner":{"$ref":"#/components/schemas/UserNameAndID","description":"Owner of the user account"}}},"PinboardDetails":{"type":"object","properties":{"pinboardId":{"type":"string","description":"pinboard id of recently pinned pinboard"},"pinboardName":{"type":"string","description":"pinboard name of recently pinned pinboard"},"tabId":{"type":"string","description":"tab id of recently pinned tab"},"tabName":{"type":"string","description":"tab name of recently pinned tab"}}},"GroupResponse":{"type":"object","properties":{"name":{"type":"string","description":"Name of the group"},"displayName":{"type":"string","description":"A unique display name string for the user group"},"id":{"type":"string","description":"GUID of the group"},"visibility":{"type":"string","description":"Visibility of the group"},"description":{"type":"string","description":"Description of the group"},"privileges":{"type":"array","items":{"type":"string"},"description":"Privileges assigned to the group"},"orgs":{"type":"array","items":{"$ref":"#/components/schemas/OrgType"},"description":"The organizations that user belongs to"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupNameAndID"},"description":"Name of the group to which is added"},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserNameAndID"},"description":"User Group Information by Id or Name."},"assignedLiveboards":{"type":"array","items":{"$ref":"#/components/schemas/LiveboardNameAndID"},"description":"Liveboards assigned to the group"},"userGroupContent":{"type":"object"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags assigned to the group"},"isDeleted":{"type":"boolean","description":"Indicates if the group is deleted"},"isHidden":{"type":"boolean","description":"Indicates if the group is hidden"},"isExternal":{"type":"boolean","description":"Indicates if the group is from external system"},"isDeprecated":{"type":"boolean"},"complete":{"type":"boolean","description":"Indicates if the all the properties of group is provided"},"isSystemPrincipal":{"type":"boolean","description":"Indicates if the group is system principal"},"type":{"type":"string","description":"Indicates the type of group"},"parenttype":{"type":"string","description":"Indicates the type of parent object"},"groupIdx":{"type":"integer","format":"int32"},"metadataVersion":{"type":"integer","format":"int32"},"tenantId":{"type":"string","description":"Tenant id associated with the group"},"indexVersion":{"type":"number","format":"float"},"generationNum":{"type":"number","format":"float"},"created":{"type":"number","format":"float","description":"Date and time when group was created"},"modified":{"type":"number","format":"float","description":"Date and time of last modification of the group"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of user group"},"modifiedBy":{"$ref":"#/components/schemas/UserNameAndID","description":"The user which last modified the user group details"},"owner":{"$ref":"#/components/schemas/UserNameAndID","description":"The owner of the user group"}}},"LiveboardNameAndID":{"type":"object","properties":{"name":{"type":"string","description":"Name of the liveboard"},"id":{"type":"string","description":"GUID of the liveboard"}}},"MetadataTagResponse":{"type":"object","properties":{"name":{"type":"string","description":"Name of the tag"},"id":{"type":"string","description":"GUID of the tag"},"clientState":{"$ref":"#/components/schemas/ClientState","description":"State associated with the tag"},"indexVersion":{"type":"number","format":"float"},"generationNum":{"type":"number","format":"float"},"isDeleted":{"type":"boolean","description":"Indicates if the tag is deleted"},"isHidden":{"type":"boolean","description":"Indicates if the tag is hidden"},"isExternal":{"type":"boolean","description":"Indicates if the tag is from external system"},"isDeprecated":{"type":"boolean"},"created":{"type":"number","format":"float","description":"Date and time when group was created"},"modified":{"type":"number","format":"float","description":"Date and time of last modification of the group"},"modifiedBy":{"$ref":"#/components/schemas/TagNameAndID","description":"The user which last modified the tag details"},"author":{"$ref":"#/components/schemas/TagNameAndID","description":"Author of tag"},"owner":{"$ref":"#/components/schemas/TagNameAndID","description":"The owner of the tag"}}},"ClientState":{"type":"object","properties":{"color":{"type":"string","description":"Color assigned to the tag"}}},"TagNameAndID":{"type":"object","properties":{"name":{"type":"string","description":"Name of the group to which group is added"},"id":{"type":"string","description":"GUID of the group to which group is added"}}},"TsObjectInput":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","description":"GUID of the metadata object"},"type":{"type":"string","enum":["ANSWER","LIVEBOARD","DATAOBJECT","CONNECTION"],"description":"Type of the metadata object","title":"TsObjectInput-type"}}},"HomeLiveboardResponse":{"type":"object","properties":{"userName":{"type":"string","description":"Name of the user"},"userId":{"type":"string","description":"The GUID of the user"},"liveboardName":{"type":"string","description":"Name of the liveboard"},"liveboardId":{"type":"string","description":"The GUID of the liveboard"}}},"AccessLevelInput":{"type":"object","properties":{"name":{"type":"string","description":"Username or name of the user group"},"id":{"type":"string","description":"GUID of the user or user group"},"type":{"type":"string","enum":["USER","USER_GROUP"],"description":"Type of access detail provided","title":"AccessLevelInput-type"},"access":{"type":"string","enum":["READ_ONLY","MODIFY"],"description":"Minimum access level that the specified user or user group has. If no input is provided then minimum access of READ_ONLY will be considered.","title":"AccessLevelInput-access"}}},"TagNameAndIdInput":{"type":"object","properties":{"name":{"type":"string","description":"Name of the tags"},"id":{"type":"string","description":"GUID of the tags"}}},"NameAndIdInput":{"type":"object","properties":{"name":{"type":"string","description":"Name of the user"},"id":{"type":"string","description":"GUID of the user"}}},"ConnectionResponse":{"type":"object","properties":{"name":{"type":"string","description":"Name of the connection"},"description":{"type":"string","description":"Description associated with the connection"},"type":{"type":"string","description":"Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint."},"id":{"type":"string","description":"GUID of the connection"},"scheduled":{"type":"boolean","description":"Indicates if the data sync is scheduled for this connection"},"connectionType":{"type":"string"},"configuration":{"type":"string","description":"Configuration properties of the connection"},"isExternal":{"type":"boolean"},"isDeprecated":{"type":"boolean","description":"Indicates if the connection is deprecated"},"isDeleted":{"type":"boolean","description":"Indicates if the connection is deleted"},"isHidden":{"type":"boolean","description":"Indicates if the connection is hideen"},"complete":{"type":"boolean","description":"Indicates if the all the properties of connection is provided"},"indexVersion":{"type":"number","format":"float"},"generationNum":{"type":"number","format":"float"},"created":{"type":"string","description":"Date and time when the connection was created"},"modified":{"type":"string","description":"Date and time of last modification of the connection"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of the connection"},"modifiedBy":{"$ref":"#/components/schemas/UserNameAndID","description":"The user which last modified the connection details"},"owner":{"$ref":"#/components/schemas/UserNameAndID","description":"The owner of the connection"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags assigned to the connection"},"tables":{"type":"array","items":{"$ref":"#/components/schemas/tableList"},"description":"List of tables linked to this connection"}}},"CreateConnectionResponse":{"type":"object","properties":{"name":{"type":"string","description":"Name of the connection"},"description":{"type":"string","description":"Description associated with the connection"},"type":{"type":"string","description":"Type of the connection. The database associated with this type can be obtained from the response returned by the /tspublic/rest/v2/connection/types API endpoint."},"id":{"type":"string","description":"GUID of the connection"},"scheduled":{"type":"boolean","description":"Indicates if the data sync is scheduled for this connection"},"connectionType":{"type":"string"},"configuration":{"type":"string","description":"Configuration properties of the connection"},"isExternal":{"type":"boolean"},"isDeprecated":{"type":"boolean","description":"Indicates if the connection is deprecated"},"isDeleted":{"type":"boolean","description":"Indicates if the connection is deleted"},"isHidden":{"type":"boolean","description":"Indicates if the connection is hideen"},"complete":{"type":"boolean","description":"Indicates if the all the properties of connection is provided"},"indexVersion":{"type":"number","format":"float"},"generationNum":{"type":"number","format":"float"},"created":{"type":"string","description":"Date and time when user account was created"},"modified":{"type":"string","description":"Date and time of last modification of user account"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of user account"},"modifiedBy":{"$ref":"#/components/schemas/UserNameAndID","description":"The user which last modified the user account details"},"owner":{"$ref":"#/components/schemas/UserNameAndID","description":"The owner of the user account"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags assigned to the connection"},"tables":{"type":"array","items":{"type":"string"},"description":"List of tables linked to this connection and details of the columns in the table"}}},"AddTableInput":{"type":"object","required":["name","dbName","schemaName","columns"],"properties":{"name":{"type":"string","description":"Name of the table"},"dbName":{"type":"string","description":"Name of the database in the data platform"},"schemaName":{"type":"string","description":"Name of the schema in the database"},"columns":{"type":"array","description":"A JSON array of column details","items":{"$ref":"#/components/schemas/ColumnsInput"}}}},"TableInput":{"type":"object","properties":{"name":{"type":"string","description":"Name of the table"},"id":{"type":"string","description":"GUID of the Table"}}},"ConnectionTableResponse":{"type":"object","properties":{"id":{"type":"string","description":"Connection id"},"database":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionDatabaseType"},"description":"List of databases"}}},"ConnectionTableColumnsResponse":{"type":"object","properties":{"id":{"type":"string","description":"Connection id"},"table":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionColumnsShema"},"description":"List of table details"}}},"AnswerQueryResponse":{"type":"object","properties":{"name":{"type":"string","description":"The name of the saved Answer"},"id":{"type":"string","description":"The GUID of the saved Answer"},"querySql":{"type":"string","description":"SQL query associated with the saved Answer"}}},"LiveboardQueryResponse":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Liveboard"},"id":{"type":"string","description":"The GUID of the Liveboard"},"viz":{"type":"array","items":{"$ref":"#/components/schemas/VizType"},"description":"SQL query associated with the saved Answer"}}},"FromUserNameAndIDInput":{"type":"object","properties":{"name":{"type":"string","description":"Username of the user"},"id":{"type":"string","description":"GUID of the user"}},"description":"A JSON object of name or GUIDs of the current owner of the objects. When both are given then id is considered. \n\nIf a list of object ids are provided as input for TsObjectId, then only for those ids that have owner as the value provided in fromUser, the owner will be changed. \n\nProvide either name or id as input. When both are given user id will be considered."},"ToUserNameAndIDInput":{"type":"object","properties":{"name":{"type":"string","description":"Username of the user"},"id":{"type":"string","description":"GUID of the user"}},"description":"A JSON object of name or GUIDs of the new owner for the objects. When both are given then id is considered."},"AdminsyncPrincipalResponse":{"type":"object","properties":{"usersAdded":{"type":"array","items":{"type":"string"},"description":"Username of list of users added"},"usersDeleted":{"type":"array","items":{"type":"string"},"description":"Username of list of users deleted"},"usersUpdated":{"type":"array","items":{"type":"string"},"description":"Username of list of users updated"},"groupsAdded":{"type":"array","items":{"type":"string"},"description":"Group name of list of groups added"},"groupsDeleted":{"type":"array","items":{"type":"string"},"description":"Group name of list of groups deleted"},"groupsUpdated":{"type":"array","items":{"type":"string"},"description":"Group name of list of groups updated"}}},"pdfOptionsInput":{"type":"object","properties":{"orientation":{"type":"string","enum":["PORTRAIT","LANDSCAPE"],"description":"Page orientation for the PDF. Default: PORTRAIT","title":"pdfOptionsInput-orientation","default":"PORTRAIT"},"truncateTables":{"description":"When set to true, only the first page of the tables is displayed in the file. \n\nThis setting is applicable only when generating report for specific visualization ids. Default: false","title":"pdfOptionsInput-truncateTables","type":"string","enum":["true","false"],"default":"false"},"includeLogo":{"description":"Include customized wide logo if available in the footer. Default: true","title":"pdfOptionsInput-includeLogo","type":"string","enum":["true","false"],"default":"true"},"footerText":{"type":"string","description":"Footer text to include in the footer of each page of the PDF."},"includePageNumber":{"description":"When set to true, the page number is included in the footer of each page. Default: true","title":"pdfOptionsInput-includePageNumber","type":"string","enum":["true","false"],"default":"true"},"includeCoverPage":{"description":"When set to true, a cover page with the Liveboard title is added in the PDF. Default: true","title":"pdfOptionsInput-includeCoverPage","type":"string","enum":["true","false"],"default":"true"},"includeFilterPage":{"description":"When set to true, a second page with a list of all applied filters is added in the PDF. Default: true","title":"pdfOptionsInput-includeFilterPage","type":"string","enum":["true","false"],"default":"true"}}},"LogsResponse":{"type":"object","properties":{"date":{"type":"string","description":"Date and time for the event in the log"},"log":{"type":"string","description":"Logged event at the time specified in JSON format. This includes, Event ID, A unique description of the event, for example, User login failed, Timestamp, User ID of the person initiating the event and IP address of the ThoughtSpot instance."}}},"TsObjectSearchInput":{"type":"object","required":["type","id"],"properties":{"type":{"type":"string","enum":["LIVEBOARD","ANSWER","DATAOBJECT","COLUMN"],"description":"Type of the metadata objec","title":"TsObjectSearchInput-type"},"id":{"type":"array","items":{"type":"string"},"description":"A JSON Array of GUIDs of the metadata object"}}},"SecurityPermissionResponse":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the object"},"name":{"type":"string","description":"Name of the object"},"type":{"type":"string","description":"Indicates the type of the object"},"owner":{"type":"string","description":"GUID of the owner of the object"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of the object"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/SecurityPermission"},"description":"An array of object with details of permission on users and user groups"},"dependents":{"type":"array","items":{"$ref":"#/components/schemas/SecuirityDependents"},"description":"The objects on which the primary object is dependent on"}}},"PrincipalSearchResponse":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the user or user group"},"name":{"type":"string","description":"Name of the user or user group"},"type":{"type":"string","description":"Indicates the type of principal"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/PermissionsTypeSearch"},"description":"Indicates the permission which user or user group has on the object"}}},"OrgsResponse":{"type":"object","properties":{"orgId":{"type":"integer","format":"int32","description":"ID of the organization searched for"},"orgName":{"type":"string","description":"Name of the organization searched for"},"description":{"type":"string","description":"Description associated with the organization"},"allGroupUserId":{"type":"string","description":"GUID of the ALL group in the organization"},"defaultAdminUserGroupId":{"type":"string","description":"GUID of the admin group in the organization"},"active":{"type":"boolean","description":"Indicates if the organization is active or not"}}},"CreateTableResponse":{"type":"object","properties":{"logicalTableHeader":{"$ref":"#/components/schemas/LogicalTableHeader"},"physicalTableId":{"type":"string"}}},"ConnectionTableColumnsInput":{"type":"object","required":["dbName","schemaName","name"],"properties":{"dbName":{"type":"string","description":"Name of the database"},"schemaName":{"type":"string","description":"Name of the schema"},"name":{"type":"string","description":"Name of the table"}}},"OrgType":{"type":"object","properties":{"name":{"type":"string","description":"Name of the organization"},"id":{"type":"integer","format":"int32","description":"Id of the organization"}}},"tableList":{"type":"object","properties":{"name":{"type":"string","description":"Name of the table"},"type":{"type":"string","description":"Type of the table"},"id":{"type":"string","description":"GUID of the table"},"databaseStripe":{"type":"string","description":"Name of the database to which the table belongs"},"schemaStripe":{"type":"string","description":"Name of the schema to which the table belongs"},"isExternal":{"title":"tableList-isExternal","type":"string","enum":["true","false"]},"isDeprecated":{"description":"Indicates if the table is deprecated","title":"tableList-isDeprecated","type":"string","enum":["true","false"]},"isDeleted":{"description":"Indicates if the table is deleted","title":"tableList-isDeleted","type":"string","enum":["true","false"]},"isHidden":{"description":"Indicates if the table is hideen","title":"tableList-isHidden","type":"string","enum":["true","false"]},"indexVersion":{"type":"number","format":"float"},"generationNum":{"type":"number","format":"float"},"created":{"type":"string","description":"Date and time when the table was created"},"modified":{"type":"string","description":"Date and time of last modification of the table"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of the table"},"modifiedBy":{"$ref":"#/components/schemas/UserNameAndID","description":"The user which last modified the table details"},"owner":{"$ref":"#/components/schemas/UserNameAndID","description":"The owner of the tabe"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags assigned to the table"}}},"ColumnsInput":{"type":"object","required":["name","dataType"],"properties":{"name":{"type":"string","description":"Name of the column"},"dataType":{"type":"string","description":"Datatype of the column"}}},"ConnectionDatabaseType":{"type":"object","properties":{"name":{"type":"string","description":"Name of the database"},"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionTableSchema"},"description":"List of schemas"}}},"ConnectionColumnsShema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the table"},"dbName":{"type":"string","description":"Name of the database"},"schemaName":{"type":"string","description":"Name of the schema"},"columns":{"type":"array","items":{"$ref":"#/components/schemas/TableColumns"},"description":"List of columns in the table"}}},"VizType":{"type":"object","properties":{"name":{"type":"string","description":"The name of the visualization"},"id":{"type":"string","description":"The GUID of the visualization"},"querySql":{"type":"string","description":"SQL query associated with the visualization"}}},"SecurityPermission":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the user or user group"},"name":{"type":"string","description":"Name of the user or user group"},"type":{"type":"string","description":"Indicates the type of principal"},"permission":{"type":"string","description":"Indicates the permission which user or user group has on the object"},"sharedPermission":{"type":"string","description":"Indicates the permission which user or user group has on the object through sharing of the object with this user or user group"},"groupPermission":{"type":"array","items":{"$ref":"#/components/schemas/GroupPermission"},"description":"An array of object with details of permission on the user groups to which the user or user group belongs"}}},"SecuirityDependents":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the object"},"name":{"type":"string","description":"Name of the object"},"type":{"type":"string","description":"Indicates the type of the object"},"owner":{"type":"string","description":"Owner of the object"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of the object"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/DependentPermission"}}}},"PermissionsTypeSearch":{"type":"object","properties":{"type":{"type":"string","description":"Indicates the type of the object"},"tsObject":{"type":"array","items":{"$ref":"#/components/schemas/TsObjectTypeSerach"},"description":"An array of objects of type mentioned in type field"}}},"LogicalTableHeader":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"author":{"type":"string"},"authorName":{"type":"string"},"authorDisplayName":{"type":"string"},"created":{"type":"number","format":"float"},"modified":{"type":"number","format":"float"},"modifiedBy":{"type":"string"},"generationNum":{"type":"integer","format":"int32"},"owner":{"type":"string"},"deleted":{"title":"LogicalTableHeader-deleted","type":"string","enum":["true","false"]},"hidden":{"title":"LogicalTableHeader-hidden","type":"string","enum":["true","false"]},"database":{"type":"string"},"schema":{"type":"string"},"type":{"type":"string"},"subType":{"type":"string"}}},"ConnectionTableSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the schema"},"table":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionColumn"},"description":"List of table details"}}},"TableColumns":{"type":"object","properties":{"name":{"type":"string","description":"Name of the column"},"dataType":{"type":"string","description":"Datatype of the column"}}},"GroupPermission":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the user group"},"name":{"type":"string","description":"Name of the user group"},"permission":{"type":"string","description":"Indicates the permission which user group has on the object"}}},"DependentPermission":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the object"},"name":{"type":"string","description":"Name of the object"},"type":{"type":"string","description":"Indicates the type of the object"},"permission":{"type":"string","description":"Indicates the permission which user or user group has on the object"},"sharedPermission":{"type":"string","description":"Indicates the permission which user or user group has on the object through sharing of the object with this user or user group"},"groupPermission":{"type":"array","items":{"$ref":"#/components/schemas/GroupPermission"},"description":"An array of object with details of permission on the user groups to which the user or user group belongs"}}},"TsObjectTypeSerach":{"type":"object","properties":{"id":{"type":"string","description":"GUID of the object"},"name":{"type":"string","description":"Name of the object"},"owner":{"type":"string","description":"Owner of the object"},"author":{"$ref":"#/components/schemas/UserNameAndID","description":"Author of the object"},"permission":{"type":"string","description":"Indicates the permission which user or user group has on the object"},"sharedPermission":{"type":"string","description":"Indicates the permission which user or user group has on the object through sharing of the object with the user or user group"},"groupPermission":{"type":"array","items":{"$ref":"#/components/schemas/GroupPermission"},"description":"An array of object with details of permission on the user groups to which the user or user group belongs"}}},"ConnectionColumn":{"type":"object","properties":{"name":{"type":"string","description":"Name of the table"},"type":{"type":"string","description":"Type of the Table"},"column":{"type":"array","items":{"$ref":"#/components/schemas/TableColumns"},"description":"List of columns in the table"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/Error"}},"example":{"error":{"errors":{"message":"Request failed with status code 500","locations":{"line":2,"column":3},"path":["restapiV2__login"],"extension":{"service":"CALLOSUM","code":"UPSTREAM_FAILURE","exception":{"service":"CALLOSUM","upstreamResponse":{"data":{"code":10002,"incident_id_guid":"deb0bc49-8414-4690-bc03-d7e0251d65b4","trace_id_guid":"deb0bc49-8414-4690-bc03-d7e0251d65b4","debug":"Invalid parameter values userName"},"status":400},"stacktrace":["Request failed with status code 400"]}}}}}},"Error":{"type":"object"}}},"security":[{"bearerAuth":[]}],"servers":[{"url":"{base-url}","variables":{"base-url":{"default":"https://localhost:443"}}}]} \ No newline at end of file From c98da0c837626bcdf4867c4c2cea19c22dc65718 Mon Sep 17 00:00:00 2001 From: Ashish Shubham Date: Wed, 15 Mar 2023 03:08:59 -0700 Subject: [PATCH 009/410] Remove unused dir --- .spectral.json | 1263 ----- .../custom-functions/oasDiscriminator.js | 38 - .../custom-functions/oasDocumentSchema.js | 4274 ----------------- .stoplight/custom-functions/oasExample.js | 228 - .../oasOpFormDataConsumeCheck.js | 28 - .stoplight/custom-functions/oasOpIdUnique.js | 76 - .stoplight/custom-functions/oasOpParams.js | 81 - .../custom-functions/oasOpSecurityDefined.js | 141 - .../custom-functions/oasOpSuccessResponse.js | 32 - .stoplight/custom-functions/oasPathParam.js | 162 - .stoplight/custom-functions/oasSchema.js | 88 - .stoplight/custom-functions/oasTagDefined.js | 81 - .../custom-functions/oasUnusedComponent.js | 50 - .stoplight/custom-functions/refSiblings.js | 51 - .stoplight/custom-functions/typedEnum.js | 92 - .stoplight/styleguide.json | 2868 ----------- docs/auth/Authentication.md | 15 - 17 files changed, 9568 deletions(-) delete mode 100644 .spectral.json delete mode 100644 .stoplight/custom-functions/oasDiscriminator.js delete mode 100644 .stoplight/custom-functions/oasDocumentSchema.js delete mode 100644 .stoplight/custom-functions/oasExample.js delete mode 100644 .stoplight/custom-functions/oasOpFormDataConsumeCheck.js delete mode 100644 .stoplight/custom-functions/oasOpIdUnique.js delete mode 100644 .stoplight/custom-functions/oasOpParams.js delete mode 100644 .stoplight/custom-functions/oasOpSecurityDefined.js delete mode 100644 .stoplight/custom-functions/oasOpSuccessResponse.js delete mode 100644 .stoplight/custom-functions/oasPathParam.js delete mode 100644 .stoplight/custom-functions/oasSchema.js delete mode 100644 .stoplight/custom-functions/oasTagDefined.js delete mode 100644 .stoplight/custom-functions/oasUnusedComponent.js delete mode 100644 .stoplight/custom-functions/refSiblings.js delete mode 100644 .stoplight/custom-functions/typedEnum.js delete mode 100644 .stoplight/styleguide.json delete mode 100644 docs/auth/Authentication.md diff --git a/.spectral.json b/.spectral.json deleted file mode 100644 index 59f3ae40b..000000000 --- a/.spectral.json +++ /dev/null @@ -1,1263 +0,0 @@ -{ - "description": "", - "formats": [ - "oas2", - "oas3", - "oas3.0", - "oas3.1" - ], - "aliases": { - "API_Document": { - "description": "The complete API specification document. This can be used to target any part of the OpenAPI document using **field**.\n\n*Use this if you don't find specific targets that cater to your usecase.* ", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$" - ] - } - ] - }, - "API_Description": { - "description": "The top level description in an API document", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.info.description" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.info.description" - ] - } - ] - }, - "Operation_Object": { - "description": "The complete operation object. Use it in combo with field object.", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "#Path_Item[get,put,post,delete,options,head,patch,trace]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "#Path_Item[get,put,post,delete,options,head,patch,trace]" - ] - } - ] - }, - "Operation_Responses": { - "description": "Responses for all operations including get, put, post, delete, options, head, patch, trace.", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "#Operation_Object.responses" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "#Operation_Object.responses" - ] - } - ] - }, - "Path_Item": { - "description": "", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.paths[*]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.paths[*]" - ] - } - ] - }, - "API_Contact": { - "description": "The top level description in an API document", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.info.contact" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.info.contact" - ] - } - ] - }, - "API_License": { - "description": "The top level description in an API document", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.info.license" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.info.license" - ] - } - ] - }, - "All_Markdown": { - "description": "All markdown descriptions across the document.", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..[description,title]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..[description,title]" - ] - } - ] - }, - "API_Tags": { - "description": "Tags on an API object", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "#Operation_Object.tags" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "#Operation_Object.tags" - ] - } - ] - }, - "API_Server": { - "description": "API hosts defined in the API specification", - "targets": [ - { - "formats": [ - "oas3" - ], - "given": [ - "$.servers" - ] - }, - { - "formats": [ - "oas2" - ], - "given": [ - "$.host" - ] - } - ] - }, - "Response_All_Object": { - "description": "All responses (object) in an API", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.responses", - "#Operation_Responses", - "$..responses" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.components.responses", - "#Operation_Responses", - "$..responses" - ] - } - ] - }, - "API_Server_URL": { - "description": "API host urls defined in the API specification", - "targets": [ - { - "formats": [ - "oas3" - ], - "given": [ - "$.servers[*].url" - ] - }, - { - "formats": [ - "oas2" - ], - "given": [ - "$.host" - ] - } - ] - }, - "All_Ref": { - "description": "All references throughout the API", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..[?(@property === '$ref')]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..[?(@property === '$ref')]" - ] - } - ] - }, - "All_Enum": { - "description": "All references throughout the API", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..[?(@ && @.enum && @.type)]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..[?(@ && @.enum && @.type)]" - ] - } - ] - }, - "Request_Parameter_All": { - "description": "All request parameters", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..parameters[*]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..parameters[*]" - ] - } - ] - }, - "Request_Parameter_Query": { - "description": "All request query parameters", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..parameters[?(@.in==\"query\")]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..parameters[?(@.in==\"query\")]" - ] - } - ] - }, - "Request_Parameter_Header": { - "description": "All request header parameters", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..parameters[?(@.in==\"header\")]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..parameters[?(@.in==\"header\")]" - ] - } - ] - }, - "Request_Parameter_Cookie": { - "description": "All request cookie parameters", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..parameters[?(@.in==\"cookie\")]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..parameters[?(@.in==\"cookie\")]" - ] - } - ] - }, - "Request_Parameter_Path": { - "description": "All request path parameters", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..parameters[?(@.in==\"path\")]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..parameters[?(@.in==\"path\")]" - ] - } - ] - }, - "Path_Object": { - "description": "Path object. Usually used to target the Path key e.g. `/users/{userId}`", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.paths" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.paths" - ] - } - ] - }, - "All_Example_Schema": { - "description": "All examples for schemas", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..definitions..[?(@property !== 'properties' && @ && (@.example !== void 0 || @['x-example'] !== void 0 || @.default !== void 0) && (@.enum || @.type || @.format || @.$ref || @.properties || @.items))]", - "$..parameters..[?(@property !== 'properties' && @ && (@.example !== void 0 || @['x-example'] !== void 0 || @.default !== void 0) && (@.enum || @.type || @.format || @.$ref || @.properties || @.items))]", - "$..responses..[?(@property !== 'properties' && @ && (@.example !== void 0 || @['x-example'] !== void 0 || @.default !== void 0) && (@.enum || @.type || @.format || @.$ref || @.properties || @.items))]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.components.schemas..[?(@property !== 'properties' && @ && (@ && @.example !== void 0 || @.default !== void 0) && (@.enum || @.type || @.format || @.$ref || @.properties || @.items))]", - "$..content..[?(@property !== 'properties' && @ && (@ && @.example !== void 0 || @.default !== void 0) && (@.enum || @.type || @.format || @.$ref || @.properties || @.items))]", - "$..headers..[?(@property !== 'properties' && @ && (@ && @.example !== void 0 || @.default !== void 0) && (@.enum || @.type || @.format || @.$ref || @.properties || @.items))]", - "$..parameters..[?(@property !== 'properties' && @ && (@ && @.example !== void 0 || @.default !== void 0) && (@.enum || @.type || @.format || @.$ref || @.properties || @.items))]" - ] - } - ] - }, - "API_Document_RecursiveSearch": { - "description": "The complete API specification document. This can be used to target any part of the OpenAPI document using **field**.\n\n*Use this if you don't find specific targets that cater to your usecase.* ", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.." - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.." - ] - } - ] - }, - "All_Example": { - "description": "All examples across the API document", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..examples[*]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.components.examples[*]", - "$.paths[*][*]..content[*].examples[*]", - "$.paths[*][*]..parameters[*].examples[*]", - "$.components.parameters[*].examples[*]", - "$.paths[*][*]..headers[*].examples[*]", - "$.components.headers[*].examples[*]" - ] - } - ] - }, - "All_Example_Media": { - "description": "All examples for schemas", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$..responses..[?(@ && @.schema && @.examples)]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$..content..[?(@ && @.schema && (@.example !== void 0 || @.examples))]", - "$..headers..[?(@ && @.schema && (@.example !== void 0 || @.examples))]", - "$..parameters..[?(@ && @.schema && (@.example !== void 0 || @.examples))]" - ] - } - ] - }, - "API_Tags_Item": { - "description": "Tags on an API object", - "targets": [ - { - "formats": [ - "oas2" - ], - "given": [ - "$.tags[*]" - ] - }, - { - "formats": [ - "oas3" - ], - "given": [ - "$.tags[*]" - ] - } - ] - } - }, - "rules": { - "contact-url": { - "given": [ - "#API_Contact" - ], - "severity": "warn", - "then": { - "function": "truthy", - "field": "url" - }, - "description": "The `contact` object should have a valid organization URL. \r\n\r\n**Valid Example**\r\n\r\n```json lineNumbers\r\n{\r\n \"contact\": {\r\n ... ,\r\n \"url\": \"https://acme.com\",\r\n ... \r\n},\r\n```", - "message": "Contact object should have \"url\"." - }, - "contact-email": { - "given": [ - "#API_Contact" - ], - "severity": "warn", - "then": { - "function": "truthy", - "field": "email" - }, - "description": "The `contact` object should have a valid email. \r\n\r\n**Valid Example**\r\n\r\n```json lineNumbers\r\n{\r\n \"contact\": {\r\n ... ,\r\n ... ,\r\n \"email\": \"support.contact@acme.com\"\r\n},\r\n```", - "message": "Contact object should have \"email\"" - }, - "info-contact": { - "given": [ - "#API_Document" - ], - "severity": "warn", - "then": { - "function": "truthy", - "field": "info.contact" - }, - "description": "The `info' object should include a `contact` object.\r\n\r\n**Valid Example**\r\n\r\n```json lineNumbers\r\n{\r\n \"info\": {\r\n ... ,\r\n ... ,\r\n \"contact\": {\r\n \"name\": \"ACME Corporation\",\r\n \"url\": \"https://acme.com\",\r\n \"email\": \"support.contact@acme.com\"\r\n }\r\n } \r\n}\r\n```", - "message": "Info object should have \"contact\" object." - }, - "info-description": { - "given": [ - "#API_Document" - ], - "severity": "warn", - "then": { - "function": "truthy", - "field": "info.description" - }, - "description": "The `info` object should have a `description` object.\r\n\r\n**Valid Example**\r\n\r\n```json lineNumbers\r\n{\r\n \"info\": {\r\n ... ,\r\n ... ,\r\n \"description\": \"This describes my API.\",\r\n ... \r\n }\r\n } \r\n}\r\n```", - "message": "Info object should have \"description\" object." - }, - "info-license": { - "given": [ - "#API_Document" - ], - "severity": "warn", - "then": { - "function": "truthy", - "field": "info.license" - }, - "description": "The `info` object should have a `license` object. \r\n\r\n**Valid Example**\r\n\r\n```json lineNumbers\r\n{\r\n \"info\": {\r\n ... ,\r\n ... ,\r\n \"license\": {\r\n \"name\": \"Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\",\r\n \"url\": \"https://creativecommons.org/licenses/by-sa/4.0/\"\r\n }\r\n } \r\n}\r\n```", - "message": "Info object should have \"license\" object." - }, - "license-url": { - "given": [ - "#API_License" - ], - "severity": "warn", - "then": { - "function": "truthy", - "field": "url" - }, - "description": "The `license` object should include a valid url.\r\n\r\n**Valid Example**\r\n\r\n```json lineNumbers\r\n{\r\n \"license\": {\r\n \"name\": \"Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\",\r\n \"url\": \"https://creativecommons.org/licenses/by-sa/4.0/\"\r\n }\r\n}\r\n```", - "message": "License object should include \"url\"." - }, - "no-eval-in-markdown": { - "given": [ - "#All_Markdown" - ], - "severity": "warn", - "then": { - "function": "pattern", - "functionOptions": { - "notMatch": "eval\\(" - } - }, - "description": "Markdown descriptions should not contain [`eval()` functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval), which pose a security risk. \r\n\r\n**Invalid Example**\r\n\r\n```json lineNumbers\r\n{ \r\n \"info\": {\r\n ... ,\r\n ... , \r\n \"description\": \"API for users. eval()\"", - "message": "Markdown descriptions must not have \"eval(\"." - }, - "no-script-tags-in-markdown": { - "given": [ - "#All_Markdown" - ], - "severity": "warn", - "then": { - "function": "pattern", - "functionOptions": { - "notMatch": "alert(\"You are Hacked\");',\"\r\n```", - "message": "Markdown descriptions must not have \"',\"\r\n```", - "message": "Markdown descriptions must not have \"',\"\r\n```", - "message": "Markdown descriptions must not have \"", + "tailIncludes": "", "portalSettings": { "themeOverrides": { "themeType": "cool", From d25ab806d95312e78d2ab9be707d7e9394ca1cc1 Mon Sep 17 00:00:00 2001 From: abdullasulaiman Date: Wed, 29 Mar 2023 13:43:45 +0530 Subject: [PATCH 018/410] Update embedded.js (#31) --- api-playground/static/js/embedded.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index e567c51d0..73ad46e9c 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -106,7 +106,6 @@ window.addEventListener('hashchange', (e) => { const queryParams = window.location.href.split("#/")[1]; window.parent.postMessage({ type: "url-change", data: queryParams }, "*"); setPlaygroundConfig(playgroundConfig); - setPlaygroundConfig(playgroundConfig); }); window.addEventListener('message', (event) => { @@ -114,7 +113,6 @@ window.addEventListener('message', (event) => { shouldPatch = true; playgroundConfig = event.data; setPlaygroundConfig(playgroundConfig); - setPlaygroundConfig(playgroundConfig); if (playgroundConfig.apiResourceId) { navigateEndpoint(playgroundConfig.apiResourceId); } @@ -123,5 +121,4 @@ window.addEventListener('message', (event) => { window.test = (config) => { setPlaygroundConfig(playgroundConfig); - setPlaygroundConfig(playgroundConfig); }; From e8b39ee2706e7cadf3a4bf7a19d9323dbd1ea41f Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Tue, 18 Apr 2023 20:55:42 +0530 Subject: [PATCH 019/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 1238 ++++++++++++++++++++++++++++--- 1 file changed, 1153 insertions(+), 85 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 42592c06b..d3ebc120c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -40,7 +40,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "Gets a list of ThoughtSpot users. To get details of a specific user, specify the user GUID or name. ", + "description": "Gets a list of ThoughtSpot users. To get details of a specific user, specify the user GUID or name.", "tags": [ "Users" ], @@ -167,6 +167,39 @@ "$ref": "#/components/schemas/FavoriteMetadataInput" }, "deprecated": false + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions", + "deprecated": false + }, + "role_identifiers": { + "description": "Filter with list of role assigned to the user.", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "deprecated": false } } } @@ -377,7 +410,7 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": "TAllows searching tags. ", + "description": "Allows searching tags.", "tags": [ "Tags" ], @@ -525,13 +558,40 @@ "deprecated": false }, "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE. ", + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "type": "string", "enum": [ "SHARABLE", "NON_SHARABLE" ], "deprecated": false + }, + "role_identifiers": { + "description": "Filter groups with a list of roles assigned to a group", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "sort_options": { + "description": "Sort options to filter group details.", + "$ref": "#/components/schemas/SortOptions", + "deprecated": false } } } @@ -568,7 +628,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "Allows searching for metadata objects. You can search for metadata objects \nsuch as Liveboard, Answer. Requires at least view access to the metadata object.", + "description": "Allows searching for metadata objects. You can search for metadata objects\nsuch as Liveboard, Answer. Requires at least view access to the metadata object.", "tags": [ "Metadata" ], @@ -621,7 +681,7 @@ "deprecated": false }, "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites \nfor the logged-in user or the users specified in the API request.", + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", "$ref": "#/components/schemas/FavoriteObjectOptionsInput", "deprecated": false }, @@ -668,7 +728,7 @@ "deprecated": false }, "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet, \nthe API returns the search assist data for Worksheet objects.", + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", "type": "boolean", "deprecated": false }, @@ -696,7 +756,7 @@ }, "sort_options": { "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/SortOptions", + "$ref": "#/components/schemas/MetadataSearchSortOptions", "deprecated": false }, "tag_identifiers": { @@ -706,6 +766,12 @@ "type": "string" }, "deprecated": false + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "deprecated": false } } } @@ -866,7 +932,7 @@ "deprecated": false }, "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is \nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", "type": "array", "items": { "type": "string" @@ -904,6 +970,11 @@ "description": "Options for PDF export.", "$ref": "#/components/schemas/PdfOptionsInput", "deprecated": false + }, + "png_options": { + "description": "Options for PNG export.", + "$ref": "#/components/schemas/PngOptionsInput", + "deprecated": false } }, "required": [ @@ -1031,7 +1102,7 @@ "deprecated": false }, "metadata": { - "description": "Metadata objects for which you want to fetch permission details. \nIf not specified, the API returns permission details for all \nmetadata objects that the specified users and groups can access.", + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", "type": "array", "items": { "$ref": "#/components/schemas/PermissionsMetadataTypeInput" @@ -1092,7 +1163,7 @@ "deprecated": false }, "principals": { - "description": "Principal objects for which you want to fetch permissions. \nIf not specified, the API returns all users and groups that \ncan access the specified metadata objects.", + "description": "Principal objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" @@ -1269,6 +1340,18 @@ "type": "integer", "format": "int32", "deprecated": false + }, + "runtime_filter": { + "description": "JSON object representing filter condition to filter the data.", + "default": "", + "type": "object", + "deprecated": false + }, + "runtime_sort": { + "description": "JSON object representing columns to sort the data.", + "default": "", + "type": "object", + "deprecated": false } }, "required": [ @@ -1342,6 +1425,18 @@ "type": "integer", "format": "int32", "deprecated": false + }, + "runtime_filter": { + "description": "JSON object representing filter condition to filter the data.", + "default": "", + "type": "object", + "deprecated": false + }, + "runtime_sort": { + "description": "JSON object representing columns to sort the data.", + "default": "", + "type": "object", + "deprecated": false } }, "required": [ @@ -1730,25 +1825,37 @@ "items": { "type": "string", "enum": [ + "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" + "BILLING_INFO_ADMINISTRATION", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "deprecated": false @@ -1794,7 +1901,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/RoleResponse" + "$ref": "#/components/schemas/SearchRoleResponse" } } } @@ -2281,7 +2388,7 @@ "deprecated": false }, "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. \nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", "type": "string", "deprecated": false }, @@ -2383,7 +2490,7 @@ "deprecated": false }, "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user \nshares a metadata object such as Answer, Liveboard, or Worksheet. ", + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", "type": "boolean", "deprecated": false }, @@ -2437,6 +2544,17 @@ "type": "string" }, "deprecated": false + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ], + "deprecated": false } }, "required": [ @@ -2542,7 +2660,7 @@ "deprecated": false }, "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot. ", + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", "type": "string", "deprecated": false }, @@ -2984,7 +3102,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "Creates an Org. Requires administrator privileges.", + "description": "Creates a Tag. Requires administrator privileges.", "tags": [ "Tags" ], @@ -3040,7 +3158,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "Updates an Org. Requires administrator privileges.", + "description": "Updates a Tag. Requires administrator privileges.", "tags": [ "Tags" ], @@ -3150,7 +3268,7 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": "Assigns a tag to a metadata object Org.", + "description": "Assigns a tag to a metadata object.", "tags": [ "Tags" ], @@ -3360,7 +3478,7 @@ "deprecated": false }, "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE. ", + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "default": "SHARABLE", "type": "string", "enum": [ @@ -3368,6 +3486,14 @@ "NON_SHARABLE" ], "deprecated": false + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false } }, "required": [ @@ -3495,13 +3621,32 @@ "deprecated": false }, "visibility": { - "description": "Visibility of the group. To make a group visible to other users and \ngroups, set the visibility to SHAREABLE. ", + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", "type": "string", "enum": [ "SHARABLE", "NON_SHARABLE" ], "deprecated": false + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ], + "deprecated": false } }, "required": [ @@ -3613,7 +3758,7 @@ "deprecated": false }, "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose \ndata will be edited after the import.", + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", "default": true, "type": "boolean", "deprecated": false @@ -3748,10 +3893,20 @@ "deprecated": false }, "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects, \nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", "default": false, "type": "boolean", "deprecated": false + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "YAML", + "type": "string", + "enum": [ + "JSON", + "YAML" + ], + "deprecated": false } }, "required": [ @@ -3874,7 +4029,7 @@ "deprecated": false }, "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects \nauthored by the specified owner are filtered for the API operation.", + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", "type": "string", "deprecated": false } @@ -3914,7 +4069,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "Share one or several metadata objects with users or groups. \nRequires edit access to metadata objects.", + "description": "Share one or several metadata objects with users or groups.\nRequires edit access to metadata objects.", "tags": [ "Security" ], @@ -3972,7 +4127,7 @@ "deprecated": false }, "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications. ", + "description": "Sends object URLs in the customized format in email notifications.", "default": false, "type": "boolean", "deprecated": false @@ -4058,6 +4213,17 @@ "description": "Name of the default remote branch Beta *since: 9.3.0", "type": "string", "deprecated": false + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance Beta *since: 9.4.0", + "default": false, + "type": "boolean", + "deprecated": false + }, + "guid_mapping_branch_name": { + "description": "Name of the branch where file containing guid mapping should be maintained Beta *since: 9.4.0", + "type": "string", + "deprecated": false } }, "required": [ @@ -4133,6 +4299,16 @@ "description": "Name of the default remote branch Beta *since: 9.3.0", "type": "string", "deprecated": false + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance Beta *since: 9.4.0", + "type": "boolean", + "deprecated": false + }, + "guid_mapping_branch_name": { + "description": "Name of the branch where file containing guid mapping should be maintained Beta *since: 9.4.0", + "type": "string", + "deprecated": false } } } @@ -4967,37 +5143,369 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" + }, + "/api/rest/2.0/schedules": { + "post": { + "operationId": "createSchedule", + "description": "Create schedule.", + "tags": [ + "Schedules" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "description": "Description of the job.", + "type": "string", + "deprecated": false + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF" + ], + "deprecated": false + }, + "frequency": { + "description": "Configuration of schedule with cron expression", + "$ref": "#/components/schemas/FrequencyInput", + "deprecated": false + }, + "liveboard_options": { + "description": "Options to specify details of liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput", + "deprecated": false + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string", + "deprecated": false + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "deprecated": false + }, + "name": { + "description": "Name of the scheduled job.", + "type": "string", + "deprecated": false + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput", + "deprecated": false + }, + "recipient_details": { + "description": "Recipient configuration which includes emails and recipients of the schedule", + "$ref": "#/components/schemas/RecipientDetailsInput", + "deprecated": false + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "deprecated": false + } + }, + "required": [ + "description", + "metadata_identifier", + "metadata_type", + "name", + "recipient_details", + "time_zone" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" + } + }, + "/api/rest/2.0/schedules/:schedule_identifier/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "Deletes a schedule", + "tags": [ + "Schedules" ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schedule_identifier": { + "description": "Unique ID or name of the schedule.", + "type": "string", + "deprecated": false + } + }, + "required": [ + "schedule_identifier" + ] + } + } }, - "display_name": { - "type": "string", + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "Search Schedules", + "tags": [ + "Schedules" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with schedules.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + }, + "deprecated": false + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32", + "deprecated": false + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32", + "deprecated": false + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions", + "deprecated": false + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/:schedule_identifier/update": { + "post": { + "operationId": "updateSchedule", + "description": "Update schedule.", + "tags": [ + "Schedules" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "description": "Description of the job.", + "type": "string", + "deprecated": false + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "deprecated": false + }, + "frequency": { + "description": "Configuration of schedule with cron expression", + "$ref": "#/components/schemas/FrequencyInput", + "deprecated": false + }, + "liveboard_options": { + "description": "Options to specify details of liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput", + "deprecated": false + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string", + "deprecated": false + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "deprecated": false + }, + "name": { + "description": "Name of the scheduled job.", + "type": "string", + "deprecated": false + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput", + "deprecated": false + }, + "recipient_details": { + "description": "Recipient configuration which includes emails and recipients of the schedule", + "$ref": "#/components/schemas/RecipientDetailsInput", + "deprecated": false + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "deprecated": false + }, + "schedule_identifier": { + "description": "Unique ID or name of the schedule.", + "type": "string", + "deprecated": false + } + }, + "required": [ + "schedule_identifier" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", "description": "Display name of the user." }, "visibility": { @@ -5343,6 +5851,31 @@ } } }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + }, + "description": "Sort options." + }, "UserGroup": { "type": "object", "properties": { @@ -5528,6 +6061,22 @@ } } }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects." + } + }, + "description": "Response format associated with the search data API." + }, "AnswerDataResponse": { "type": "object", "required": [ @@ -5750,8 +6299,7 @@ "type": "object", "required": [ "name", - "id", - "color" + "id" ], "properties": { "name": { @@ -5972,6 +6520,13 @@ "NON_SHARABLE" ], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user" } } }, @@ -6029,6 +6584,10 @@ "type": "object" }, "description": "Visualization header information of the metadata objects." + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed." } }, "description": "Metadata Search Response Object." @@ -6129,7 +6688,7 @@ }, "description": "Favorite object options." }, - "SortOptions": { + "MetadataSearchSortOptions": { "type": "object", "properties": { "field_name": { @@ -6139,7 +6698,10 @@ "DISPLAY_NAME", "AUTHOR", "CREATED", - "MODIFIED" + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" ], "description": "Name of the field to apply the sort on." }, @@ -6232,21 +6794,18 @@ } } }, - "SearchDataResponse": { + "PngOptionsInput": { "type": "object", - "required": [ - "contents" - ], "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects." + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title." + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters." } - }, - "description": "Response format associated with the search data API." + } }, "LogResponse": { "type": "object", @@ -6267,9 +6826,6 @@ }, "RepoConfigObject": { "type": "object", - "required": [ - "remote_alias" - ], "properties": { "repository_url": { "type": "string", @@ -6279,6 +6835,10 @@ "type": "string", "description": "Username to authenticate connection to vcs" }, + "default_branch": { + "type": "string", + "description": "Name of the default remote branch" + }, "branches": { "type": "array", "items": { @@ -6289,6 +6849,14 @@ "remote_alias": { "type": "string", "description": "Alias name associated with the remote repository" + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance" + }, + "guid_mapping_branch_name": { + "type": "string", + "description": "Name of the branch where file containing guid mapping should be maintained" } } }, @@ -6427,7 +6995,7 @@ } } }, - "RoleResponse": { + "SearchRoleResponse": { "type": "object", "required": [ "id", @@ -6472,39 +7040,48 @@ "items": { "type": "string", "enum": [ + "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" + "BILLING_INFO_ADMINISTRATION", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "description": "Privileges granted to the role." }, "permission": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Permission details of the Role" }, "author_id": { @@ -6543,7 +7120,8 @@ "type": "boolean", "description": "Indicates whether the role is shared via connection" } - } + }, + "description": "Response for search role api should handle hidden privileges as well." }, "Token": { "type": "object", @@ -6897,6 +7475,250 @@ } } }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role" + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Organizations in which role exists." + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role" + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "BYPASSRLS", + "DISABLE_PINBOARD_CREATION", + "DEVELOPER", + "APPLICATION_ADMINISTRATION", + "USER_ADMINISTRATION", + "GROUP_ADMINISTRATION", + "SYSTEM_INFO_ADMINISTRATION", + "SYNCMANAGEMENT", + "ORG_ADMINISTRATION", + "ROLE_ADMINISTRATION", + "AUTHENTICATION_ADMINISTRATION", + "BILLING_INFO_ADMINISTRATION" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role" + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role." + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds." + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds." + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted." + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external." + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden." + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection" + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "name", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job." + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of liveboard." + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export." + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient configuration which includes emails and recipients of the schedule" + }, + "status": { + "type": "string", + "description": "Status of the job" + }, + "time_zone": { + "type": "string", + "description": "Time zone" + } + } + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of liveboard." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients." + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "List of user or user groups to be associated for schedule." + } + }, + "description": "Recipient configuration which includes emails and recipients of the schedule" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, "Org": { "type": "object", "required": [ @@ -7093,6 +7915,19 @@ } } }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the Role" + }, + "name": { + "type": "string", + "description": "name of the Role" + } + } + }, "SqlQuery": { "type": "object", "required": [ @@ -7259,6 +8094,184 @@ } } }, + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of liveboard." + }, + "MetadataResponse": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete liveboard." + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the liveboard title." + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available." + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters." + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page" + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page." + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF." + }, + "page_size": { + "type": "string", + "description": "Page size." + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables." + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients." + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or user groups to be associated for schedule." + } + }, + "description": "Recipient configuration which includes emails and recipients of the schedule" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, "Database": { "type": "object", "required": [ @@ -7272,13 +8285,68 @@ "schemas": { "type": "array", "items": { - "$ref": "#/components/schemas/Schema" + "$ref": "#/components/schemas/SchemaObject" }, "description": "Schemas of the database." } } }, - "Schema": { + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "PrincipalsListItem": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "SchemaObject": { "type": "object", "required": [ "name" From 76f7d06f4e8702981fdfcc7a994c68e9090d7531 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Tue, 18 Apr 2023 21:16:30 +0530 Subject: [PATCH 020/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 136 ++++++++++++++++---------------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d3ebc120c..5baed8320 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5157,47 +5157,42 @@ "schema": { "type": "object", "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string", + "deprecated": false + }, "description": { "description": "Description of the job.", "type": "string", "deprecated": false }, - "file_format": { - "description": "Export file format.", - "default": "PDF", + "metadata_type": { + "description": "Type of metadata.", "type": "string", "enum": [ - "CSV", - "PDF" + "LIVEBOARD" ], "deprecated": false }, - "frequency": { - "description": "Configuration of schedule with cron expression", - "$ref": "#/components/schemas/FrequencyInput", - "deprecated": false - }, - "liveboard_options": { - "description": "Options to specify details of liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput", - "deprecated": false - }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", "type": "string", "deprecated": false }, - "metadata_type": { - "description": "Type of metadata.", + "file_format": { + "description": "Export file format.", + "default": "PDF", "type": "string", "enum": [ - "LIVEBOARD" + "CSV", + "PDF" ], "deprecated": false }, - "name": { - "description": "Name of the scheduled job.", - "type": "string", + "liveboard_options": { + "description": "Options to specify details of liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput", "deprecated": false }, "pdf_options": { @@ -5205,25 +5200,30 @@ "$ref": "#/components/schemas/PdfOptionsInput", "deprecated": false }, - "recipient_details": { - "description": "Recipient configuration which includes emails and recipients of the schedule", - "$ref": "#/components/schemas/RecipientDetailsInput", - "deprecated": false - }, "time_zone": { "description": "Time zone", "default": "America/Los_Angeles", "type": "string", "deprecated": false + }, + "frequency": { + "description": "Configuration of schedule with cron expression", + "$ref": "#/components/schemas/FrequencyInput", + "deprecated": false + }, + "recipient_details": { + "description": "Recipient configuration which includes emails and recipients of the schedule", + "$ref": "#/components/schemas/RecipientDetailsInput", + "deprecated": false } }, "required": [ + "name", "description", - "metadata_identifier", "metadata_type", - "name", - "recipient_details", - "time_zone" + "metadata_identifier", + "time_zone", + "recipient_details" ] } } @@ -5386,24 +5386,22 @@ "schema": { "type": "object", "properties": { - "description": { - "description": "Description of the job.", + "name": { + "description": "Name of the scheduled job.", "type": "string", "deprecated": false }, - "file_format": { - "description": "Export file format.", + "description": { + "description": "Description of the job.", "type": "string", "deprecated": false }, - "frequency": { - "description": "Configuration of schedule with cron expression", - "$ref": "#/components/schemas/FrequencyInput", - "deprecated": false - }, - "liveboard_options": { - "description": "Options to specify details of liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput", + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD" + ], "deprecated": false }, "metadata_identifier": { @@ -5411,17 +5409,14 @@ "type": "string", "deprecated": false }, - "metadata_type": { - "description": "Type of metadata.", + "file_format": { + "description": "Export file format.", "type": "string", - "enum": [ - "LIVEBOARD" - ], "deprecated": false }, - "name": { - "description": "Name of the scheduled job.", - "type": "string", + "liveboard_options": { + "description": "Options to specify details of liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput", "deprecated": false }, "pdf_options": { @@ -5429,16 +5424,21 @@ "$ref": "#/components/schemas/PdfOptionsInput", "deprecated": false }, - "recipient_details": { - "description": "Recipient configuration which includes emails and recipients of the schedule", - "$ref": "#/components/schemas/RecipientDetailsInput", - "deprecated": false - }, "time_zone": { "description": "Time zone", "type": "string", "deprecated": false }, + "frequency": { + "description": "Configuration of schedule with cron expression", + "$ref": "#/components/schemas/FrequencyInput", + "deprecated": false + }, + "recipient_details": { + "description": "Recipient configuration which includes emails and recipients of the schedule", + "$ref": "#/components/schemas/RecipientDetailsInput", + "deprecated": false + }, "schedule_identifier": { "description": "Unique ID or name of the schedule.", "type": "string", @@ -7656,19 +7656,6 @@ } } }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, "LiveboardOptionsInput": { "type": "object", "required": [ @@ -7685,6 +7672,19 @@ }, "description": "Options to specify details of liveboard." }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, "RecipientDetailsInput": { "type": "object", "properties": { From 2c1ee9fcbdf9ca850e5fccd3f595982b61292039 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Tue, 18 Apr 2023 21:42:00 +0530 Subject: [PATCH 021/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5baed8320..6c2bca547 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5253,7 +5253,7 @@ } } }, - "/api/rest/2.0/schedules/:schedule_identifier/delete": { + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", "description": "Deletes a schedule", @@ -5373,7 +5373,7 @@ } } }, - "/api/rest/2.0/schedules/:schedule_identifier/update": { + "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", "description": "Update schedule.", From 9e97d44f91e6a23b2f3c16b3b8ce2dbfbc97b796 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Wed, 19 Apr 2023 18:14:46 +0530 Subject: [PATCH 022/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6c2bca547..d572f586e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5285,7 +5285,7 @@ "content": { "application/json": { "schema": { - "type": "string" + "type": "object" } } } @@ -5458,7 +5458,7 @@ "content": { "application/json": { "schema": { - "type": "string" + "type": "object" } } } From a0e73af3b47129402d7384d720f1311b5baae739 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Wed, 31 May 2023 10:33:59 +0530 Subject: [PATCH 023/410] Update spec with 0.8.2 and generate script --- api-spec/openapiSpecv3-2_0.json | 3402 ++++++++++++++++++++++++++----- 1 file changed, 2873 insertions(+), 529 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d572f586e..9dedc0745 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,6 +4,16 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + } + ], "tags": [], "paths": { "/api/rest/2.0/auth/session/user": { @@ -16,6 +26,7 @@ "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +35,100 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "Get token for the currently logged-in user.", + "tags": [ + "Authentication" + ], + "parameters": [], + "responses": { + "200": { + "description": "Fetching token for current user successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -103,7 +206,12 @@ "DEVELOPER", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT" + "SYNCMANAGEMENT", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "deprecated": false @@ -135,17 +243,20 @@ "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "show_onboarding_experience": { "description": "The user preference for revisiting the onboarding experience.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "onboarding_experience_completed": { "description": "Indicates if the user has completed the onboarding walkthrough.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "org_identifiers": { "description": "IDs or names of the Orgs to which the user belongs", @@ -199,16 +310,18 @@ "description": "Indicates if the user's favorite objects should be displayed.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { @@ -220,8 +333,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -243,6 +386,7 @@ "parameters": [], "responses": { "200": { + "description": "Cluster information.", "content": { "application/json": { "schema": { @@ -251,8 +395,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -274,6 +448,7 @@ "parameters": [], "responses": { "200": { + "description": "Cluster config information.", "content": { "application/json": { "schema": { @@ -282,8 +457,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -305,6 +510,7 @@ "parameters": [], "responses": { "200": { + "description": "Cluster configuration which can be overridden.", "content": { "application/json": { "schema": { @@ -313,8 +519,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -378,11 +614,12 @@ } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Organization search result.", "content": { "application/json": { "schema": { @@ -394,8 +631,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -433,11 +700,12 @@ } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Tags search result.", "content": { "application/json": { "schema": { @@ -449,8 +717,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -527,7 +825,12 @@ "DEVELOPER", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT" + "SYNCMANAGEMENT", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "deprecated": false @@ -596,11 +899,12 @@ } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "User group search result.", "content": { "application/json": { "schema": { @@ -612,8 +916,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -621,12 +925,42 @@ } } } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { "operationId": "searchMetadata", "description": "Allows searching for metadata objects. You can search for metadata objects\nsuch as Liveboard, Answer. Requires at least view access to the metadata object.", "tags": [ @@ -689,48 +1023,56 @@ "description": "Includes system-generated metadata objects.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "include_dependent_objects": { "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "include_details": { "description": "Includes complete details of the metadata objects.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "include_headers": { "description": "Includes headers of the metadata objects.", "default": true, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "include_hidden_objects": { "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "include_incomplete_objects": { "description": "Includes objects with incomplete metadata.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "include_visualization_headers": { "description": "Includes visualization headers of the specified Liveboard object.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "include_worksheet_search_assist_data": { "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "modified_by_user_identifiers": { "description": "Includes ID or names of the users who have modified the metadata object.", @@ -771,16 +1113,18 @@ "description": "Indicates whether to include stats of the metadata objects.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Metadata objects search result.", "content": { "application/json": { "schema": { @@ -792,8 +1136,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -840,8 +1214,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -850,8 +1226,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -890,8 +1296,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -900,8 +1308,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -985,8 +1423,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Export report file of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -995,8 +1435,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1057,8 +1527,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Export report file of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1067,8 +1539,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1118,8 +1620,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Fetching permissions of principals is successful.", "content": { "application/json": { "schema": { @@ -1128,8 +1632,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1174,7 +1708,8 @@ "description": "Indicates whether to fetch permissions of depedent metadata objects.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } }, "required": [ @@ -1185,8 +1720,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Fetching permissions of metadata objects is successful.", "content": { "application/json": { "schema": { @@ -1195,8 +1732,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1253,6 +1820,16 @@ "type": "integer", "format": "int32", "deprecated": false + }, + "runtime_filter": { + "description": "JSON object representing filter condition to filter the data.", + "type": "object", + "deprecated": false + }, + "runtime_sort": { + "description": "JSON object representing columns to sort the data.", + "type": "object", + "deprecated": false } }, "required": [ @@ -1264,8 +1841,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1274,8 +1853,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1343,13 +1952,11 @@ }, "runtime_filter": { "description": "JSON object representing filter condition to filter the data.", - "default": "", "type": "object", "deprecated": false }, "runtime_sort": { "description": "JSON object representing columns to sort the data.", - "default": "", "type": "object", "deprecated": false } @@ -1362,8 +1969,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1372,8 +1981,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1428,13 +2067,11 @@ }, "runtime_filter": { "description": "JSON object representing filter condition to filter the data.", - "default": "", "type": "object", "deprecated": false }, "runtime_sort": { "description": "JSON object representing columns to sort the data.", - "default": "", "type": "object", "deprecated": false } @@ -1447,8 +2084,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1457,8 +2096,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1512,8 +2181,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Log fetched successfully.", "content": { "application/json": { "schema": { @@ -1525,8 +2196,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1541,23 +2242,34 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "Search local repository configuration Beta *since: 9.2.0", + "description": "Search local repository configuration
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", - "properties": {} + "properties": { + "org_identifiers": { + "description": "List of Unique identifier of the organization. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]
Version: 9.5.0.cl or later", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false + } + } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Details of local repository configuration", "content": { "application/json": { "schema": { @@ -1569,8 +2281,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1585,9 +2327,10 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "List the commit history of a metadata object Beta *since: 9.2.0", + "description": "List the commit history of a metadata object
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -1637,8 +2380,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Commit history of the metadata object", "content": { "application/json": { "schema": { @@ -1650,8 +2395,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1748,16 +2523,18 @@ "include_details": { "description": "Indicates whether to include complete details of the connection objects.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "List of connections to the datasource.", "content": { "application/json": { "schema": { @@ -1769,8 +2546,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1863,17 +2670,20 @@ "deprecated": { "description": "Indicates whether the role is deprecated.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "external": { "description": "Indicates whether the Role is external", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "shared_via_connection": { "description": "Indicates whether the role is shared via connection", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "permissions": { "description": "Permission details of the Role", @@ -1891,11 +2701,12 @@ } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Roles search result.", "content": { "application/json": { "schema": { @@ -1907,8 +2718,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -1952,26 +2793,51 @@ "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } } } } - }, - "required": true + } }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1986,7 +2852,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": " To programmatically create object session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "description": " To programmatically create an object session token for a user in ThoughtSpot, use this endpoint.\n\nYou can generate the token for a user by providing username and password (basic authentication) or by using the cluster’s secret key (trusted authentication). \n\nYou need to enable trusted authentication to generate a secret key. To generate a secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click on Security Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request. ", "tags": [ "Authentication" ], @@ -2034,21 +2900,20 @@ }, "email": { "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", - "default": "", "type": "string", "deprecated": false }, "display_name": { "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "default": "", "type": "string", "deprecated": false }, "auto_create": { - "description": "“Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT).", + "description": "“Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT) \n\n\nNote: This is only available for clusters with trusted authentication enabled. ", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "group_identifiers": { "description": "Unique ID or name of the User Groups to which newly created user to be added. Use this parameter to provision a user just-in-time (JIT).", @@ -2068,8 +2933,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2078,8 +2945,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2088,13 +2985,14 @@ } } } - } + }, + "security": [] } }, "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": " To programmatically create full session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "description": " To programmatically create a full session token for a user in ThoughtSpot, use this endpoint.\n\nYou can generate the token for a user by providing username and password (basic authentication) or by using the cluster’s secret key (trusted authentication). \n\n\n You need to enable trusted authentication to generate a secret key. To generate a secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click on Security Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request. ", "tags": [ "Authentication" ], @@ -2137,21 +3035,20 @@ }, "email": { "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", - "default": "", "type": "string", "deprecated": false }, "display_name": { "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "default": "", "type": "string", "deprecated": false }, "auto_create": { - "description": "Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT).", + "description": " Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT). \n\nNote: This is only available for clusters with trusted authentication enabled.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "group_identifiers": { "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", @@ -2170,8 +3067,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2180,8 +3079,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2190,7 +3119,8 @@ } } } - } + }, + "security": [] } }, "/api/rest/2.0/auth/session/logout": { @@ -2200,29 +3130,43 @@ "tags": [ "Authentication" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2258,21 +3202,45 @@ } } } - }, - "required": true + } }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2373,19 +3341,22 @@ "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", "default": true, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "show_onboarding_experience": { "description": "The user preference for revisiting the onboarding experience.", "default": true, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "onboarding_experience_completed": { "description": "flag to get the on-boarding experience is completed or not.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "home_liveboard_identifier": { "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", @@ -2412,8 +3383,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "User successfully created.", "content": { "application/json": { "schema": { @@ -2422,8 +3395,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2448,11 +3451,6 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user", - "type": "string", - "deprecated": false - }, "name": { "description": "Name of the user. The username string must be unique.", "type": "string", @@ -2492,17 +3490,20 @@ "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "show_onboarding_experience": { "description": "The user preference for revisiting the onboarding experience.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "onboarding_experience_completed": { "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "account_type": { "description": "Type of the account.", @@ -2556,27 +3557,59 @@ ], "deprecated": false } - }, - "required": [ - "user_identifier" - ] + } } } - }, - "required": true + } }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user", + "deprecated": false + } + ], "responses": { - "200": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2595,38 +3628,54 @@ "tags": [ "Users" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "GUID / name of the user", - "type": "string", - "deprecated": false - } - }, - "required": [ - "user_identifier" - ] + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2668,13 +3717,15 @@ "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", "default": true, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "delete_unspecified_users": { "description": "If set to true, removes the users that are not specified in the API request.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } }, "required": [ @@ -2685,8 +3736,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Import users operation successful.", "content": { "application/json": { "schema": { @@ -2695,8 +3748,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2747,18 +3830,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2803,18 +3911,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2850,21 +3983,45 @@ } } } - }, - "required": true + } }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2903,18 +4060,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2958,8 +4140,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Organization successfully created.", "content": { "application/json": { "schema": { @@ -2968,8 +4152,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2994,11 +4208,6 @@ "schema": { "type": "object", "properties": { - "org_identifier": { - "description": "ID or name of the Org.", - "type": "string", - "deprecated": false - }, "name": { "description": "Name of the Org.", "type": "string", @@ -3016,28 +4225,71 @@ "type": "string" }, "deprecated": false + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ], + "deprecated": false } - }, - "required": [ - "org_identifier" - ] + } } } - }, - "required": true + } }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org.", + "deprecated": false + } + ], "responses": { - "200": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3056,38 +4308,54 @@ "tags": [ "Orgs" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org.", - "type": "string", - "deprecated": false - } - }, - "required": [ - "org_identifier" - ] + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org.", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3124,16 +4392,17 @@ } }, "required": [ - "name", - "color" + "name" ] } } }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Tag successfully created.", "content": { "application/json": { "schema": { @@ -3142,8 +4411,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3168,11 +4467,6 @@ "schema": { "type": "object", "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string", - "deprecated": false - }, "name": { "description": "Name of the tag.", "type": "string", @@ -3183,27 +4477,59 @@ "type": "string", "deprecated": false } - }, - "required": [ - "tag_identifier" - ] + } } } - }, - "required": true + } }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag.", + "deprecated": false + } + ], "responses": { - "200": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3222,38 +4548,54 @@ "tags": [ "Tags" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Tag identifier Tag name or Tag id.", - "type": "string", - "deprecated": false - } - }, - "required": [ - "tag_identifier" - ] + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id.", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3304,18 +4646,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3366,18 +4733,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3446,7 +4838,12 @@ "DEVELOPER", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT" + "SYNCMANAGEMENT", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "deprecated": false @@ -3505,8 +4902,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "User group successfully created.", "content": { "application/json": { "schema": { @@ -3515,8 +4914,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3541,11 +4970,6 @@ "schema": { "type": "object", "properties": { - "group_identifier": { - "description": "GUID or name of the group.", - "type": "string", - "deprecated": false - }, "name": { "description": "Name of the group to modify.", "type": "string", @@ -3590,7 +5014,12 @@ "DEVELOPER", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT" + "SYNCMANAGEMENT", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "deprecated": false @@ -3648,27 +5077,59 @@ ], "deprecated": false } - }, - "required": [ - "group_identifier" - ] + } } } - }, - "required": true + } }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group.", + "deprecated": false + } + ], "responses": { - "200": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3687,38 +5148,54 @@ "tags": [ "Groups" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "group_identifier": { - "description": "GUID or name of the group.", - "type": "string", - "deprecated": false - } - }, - "required": [ - "group_identifier" - ] + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group.", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3755,22 +5232,25 @@ "description": "If set to true, removes groups that are not specified in the API request.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "dry_run": { "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", "default": true, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Import user groups operation successful.", "content": { "application/json": { "schema": { @@ -3779,8 +5259,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3828,7 +5338,8 @@ "description": "If selected, creates TML objects with new GUIDs.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } }, "required": [ @@ -3839,8 +5350,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Import metadata objects using specified TMLs is successful.", "content": { "application/json": { "schema": { @@ -3852,8 +5365,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3890,13 +5433,15 @@ "description": "Indicates whether to export associated metadata objects of specified metadata objects.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "export_fqn": { "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "edoc_format": { "description": "TML EDOC content format.", @@ -3917,8 +5462,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Export TMLs of specified metadata objects is successful.", "content": { "application/json": { "schema": { @@ -3930,8 +5477,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3968,7 +5545,8 @@ "description": "Indicates whether to delete disabled metadata objects.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } }, "required": [ @@ -3979,18 +5557,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4043,18 +5646,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4130,7 +5758,8 @@ "description": "Sends object URLs in the customized format in email notifications.", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } }, "required": [ @@ -4145,18 +5774,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4171,9 +5825,10 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "Configure local repository to connect to remote repository Beta *since: 9.2.0", + "description": "Configure local repository to connect to remote repository
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -4196,6 +5851,11 @@ "type": "string", "deprecated": false }, + "org_identifier": { + "description": "Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1
Version: 9.5.0.cl or later", + "type": "string", + "deprecated": false + }, "branch_names": { "description": "List the remote branches to configure. Example:[development, production]", "type": "array", @@ -4205,23 +5865,24 @@ "deprecated": false }, "default_branch": { - "description": "Name of the default remote branch Beta *since: 9.2.0", + "description": "Name of the default remote branch
Beta Version: 9.2.0.cl or later", "type": "string", "deprecated": false }, "default_branch_name": { - "description": "Name of the default remote branch Beta *since: 9.3.0", + "description": "Name of the default remote branch
Beta Version: 9.3.0.cl or later", "type": "string", "deprecated": false }, "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance Beta *since: 9.4.0", + "description": "Maintain mapping of guid for the deployment to an instance
Beta Version: 9.4.0.cl or later", "default": false, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "guid_mapping_branch_name": { - "description": "Name of the branch where file containing guid mapping should be maintained Beta *since: 9.4.0", + "description": "Name of the branch where file containing guid mapping should be maintained
Beta Version: 9.4.0.cl or later", "type": "string", "deprecated": false } @@ -4236,8 +5897,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Successfully configured local repository", "content": { "application/json": { "schema": { @@ -4246,8 +5909,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4262,9 +5955,10 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "Update local repository configuration. Beta *since: 9.2.0", + "description": "Update local repository configuration.
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -4282,8 +5976,13 @@ "type": "string", "deprecated": false }, + "org_identifier": { + "description": "Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1
Version: 9.5.0.cl or later", + "type": "string", + "deprecated": false + }, "branch_names": { - "description": "List the remote branches to configure. Example:[development, production] Beta *since: 9.3.0", + "description": "List the remote branches to configure. Example:[development, production]
Beta Version: 9.3.0.cl or later", "type": "array", "items": { "type": "string" @@ -4291,33 +5990,35 @@ "deprecated": false }, "default_branch": { - "description": "Name of the default remote branch Beta *since: 9.2.0", + "description": "Name of the default remote branch
Beta Version: 9.2.0.cl or later", "type": "string", "deprecated": false }, "default_branch_name": { - "description": "Name of the default remote branch Beta *since: 9.3.0", + "description": "Name of the default remote branch
Beta Version: 9.3.0.cl or later", "type": "string", "deprecated": false }, "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance Beta *since: 9.4.0", + "description": "Maintain mapping of guid for the deployment to an instance
Beta Version: 9.4.0.cl or later", "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true }, "guid_mapping_branch_name": { - "description": "Name of the branch where file containing guid mapping should be maintained Beta *since: 9.4.0", + "description": "Name of the branch where file containing guid mapping should be maintained
Beta Version: 9.4.0.cl or later", "type": "string", "deprecated": false } } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Successfully updated local repository configuration", "content": { "application/json": { "schema": { @@ -4326,8 +6027,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4342,33 +6073,65 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "Delete local repository configuration Beta *since: 9.2.0", + "description": "Delete local repository configuration
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", - "properties": {} + "properties": { + "cluster_level": { + "description": "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", + "type": "boolean", + "deprecated": false, + "nullable": true + } + } } } - }, - "required": true + } }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4383,42 +6146,59 @@ "/api/rest/2.0/vcs/git/branches/{branch_name}/pull": { "post": { "operationId": "pullBranch", - "description": "Pull a branch from remote repository to local repository. Beta *since: 9.2.0", + "description": "Pull a branch from remote repository to local repository.
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "branch_name", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name of the branch to pull", + "deprecated": false + } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "branch_name": { - "description": "Name of the branch to pull", - "type": "string", - "deprecated": false - } - }, - "required": [ - "branch_name" - ] + "responses": { + "204": { + "description": "Remote branch pulled to local successfully" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4433,9 +6213,10 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "Commit the object from metadata to remote repository Beta *since: 9.2.0", + "description": "Commit the object from metadata to remote repository
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -4471,8 +6252,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Successfully committed the metadata objects", "content": { "application/json": { "schema": { @@ -4481,8 +6264,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4497,9 +6310,10 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "Revert an object to a specific commit id Beta *since: 9.2.0", + "description": "Revert an object to a specific commit id
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -4507,11 +6321,6 @@ "schema": { "type": "object", "properties": { - "commit_id": { - "description": "Commit id to which the object should be reverted", - "type": "string", - "deprecated": false - }, "metadata": { "description": "Metadata objects.", "type": "array", @@ -4526,7 +6335,7 @@ "deprecated": false }, "revert_policy": { - "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL] Beta *since: 9.3.0", + "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]
Beta Version: 9.3.0.cl or later", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -4535,17 +6344,26 @@ ], "deprecated": false } - }, - "required": [ - "commit_id" - ] + } } } - }, - "required": true + } }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted", + "deprecated": false + } + ], "responses": { "200": { + "description": "Reverted the object to the commit point specified", "content": { "application/json": { "schema": { @@ -4554,8 +6372,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4570,9 +6418,10 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "Before merging changes to target branch, pick the changes from source branch and validate the files Beta *since: 9.2.0", + "description": "Before merging changes to target branch, pick the changes from source branch and validate the files
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -4600,8 +6449,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "validation done successfully", "content": { "application/json": { "schema": { @@ -4613,8 +6464,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4629,9 +6510,10 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "Deploy changes to a Thoughtspot environment from a commit point\" Beta *since: 9.2.0", + "description": "Deploy changes to a Thoughtspot environment from a commit point\"
Beta Version: 9.2.0.cl or later", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -4645,12 +6527,12 @@ "deprecated": false }, "branch_name": { - "description": "Name of the remote branch where changes should be picked Beta *since: 9.3.0", + "description": "Name of the remote branch where changes should be picked
Beta Version: 9.3.0.cl or later", "type": "string", "deprecated": false }, "import_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered Beta *since: 9.2.0", + "description": "Indicates if all files or only modified file at specified commit point should be considered
Beta Version: 9.2.0.cl or later", "default": "DELTA", "type": "string", "enum": [ @@ -4660,7 +6542,7 @@ "deprecated": false }, "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered Beta *since: 9.3.0", + "description": "Indicates if all files or only modified file at specified commit point should be considered
Beta Version: 9.3.0.cl or later", "default": "DELTA", "type": "string", "enum": [ @@ -4670,7 +6552,7 @@ "deprecated": false }, "deploy_policy": { - "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL] Beta *since: 9.3.0", + "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]
Beta Version: 9.3.0.cl or later", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -4682,11 +6564,12 @@ } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Successfully deployed the changes", "content": { "application/json": { "schema": { @@ -4698,8 +6581,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4763,7 +6676,8 @@ "description": "Indicates whether to validate the connection details.", "default": true, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } }, "required": [ @@ -4774,20 +6688,52 @@ } } }, - "required": true - }, - "responses": { - "200": { + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4826,18 +6772,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4886,7 +6857,8 @@ "description": "Indicates whether to validate the connection details.", "default": true, "type": "boolean", - "deprecated": false + "deprecated": false, + "nullable": true } }, "required": [ @@ -4897,18 +6869,43 @@ }, "required": true }, + "parameters": [], "responses": { - "200": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4981,8 +6978,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Role successfully created.", "content": { "application/json": { "schema": { @@ -4991,8 +6990,38 @@ } } }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -5017,11 +7046,6 @@ "schema": { "type": "object", "properties": { - "role_identifier": { - "description": "Unique ID or name of the role.", - "type": "string", - "deprecated": false - }, "name": { "description": "Name of the Role.", "type": "string", @@ -5063,7 +7087,6 @@ } }, "required": [ - "role_identifier", "name" ] } @@ -5071,8 +7094,21 @@ }, "required": true }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the role.", + "deprecated": false + } + ], "responses": { "200": { + "description": "Role successfully updated.", "content": { "application/json": { "schema": { @@ -5081,8 +7117,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5101,38 +7167,54 @@ "tags": [ "Roles" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifier": { - "description": "Unique ID or name of the role.", - "type": "string", - "deprecated": false - } - }, - "required": [ - "role_identifier" - ] + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the role.", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -5197,7 +7279,7 @@ }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput", "deprecated": false }, "time_zone": { @@ -5230,8 +7312,10 @@ }, "required": true }, + "parameters": [], "responses": { "200": { + "description": "Schedule successfully created.", "content": { "application/json": { "schema": { @@ -5240,8 +7324,38 @@ } } }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5260,38 +7374,54 @@ "tags": [ "Schedules" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "schedule_identifier": { - "description": "Unique ID or name of the schedule.", - "type": "string", - "deprecated": false - } - }, - "required": [ - "schedule_identifier" - ] + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule.", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } }, - "required": true - }, - "responses": { - "200": { + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5338,30 +7468,66 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions", + "$ref": "#/components/schemas/SortingOptions", + "deprecated": false + }, + "history_runs_options": { + "description": "Options while fetching history runs wrt to the schedule.", + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput", "deprecated": false } } } } - }, - "required": true + } }, + "parameters": [], "responses": { "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5412,6 +7578,10 @@ "file_format": { "description": "Export file format.", "type": "string", + "enum": [ + "CSV", + "PDF" + ], "deprecated": false }, "liveboard_options": { @@ -5421,7 +7591,7 @@ }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput", "deprecated": false }, "time_zone": { @@ -5439,32 +7609,68 @@ "$ref": "#/components/schemas/RecipientDetailsInput", "deprecated": false }, - "schedule_identifier": { - "description": "Unique ID or name of the schedule.", + "status": { + "description": "Status of the schedule", "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ], "deprecated": false } - }, - "required": [ - "schedule_identifier" - ] + } } } - }, - "required": true + } }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule.", + "deprecated": false + } + ], "responses": { - "200": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5652,25 +7858,7 @@ "privileges": { "type": "array", "items": { - "type": "string", - "enum": [ - "ADMINISTRATION", - "AUTHORING", - "USERDATAUPLOADING", - "DATADOWNLOADING", - "USERMANAGEMENT", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "BYPASSRLS", - "RANALYSIS", - "DEVELOPER", - "USER_ADMINISTRATION", - "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT" - ] + "type": "string" }, "description": "Privileges which are assigned to the user." }, @@ -5935,7 +8123,8 @@ "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE" + "LOGICAL_TABLE", + "CONNECTION" ], "description": "Type of metadata (Optional when given identifier is ID)." }, @@ -6128,6 +8317,25 @@ } } }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Current logged in Organizations of the user." + }, "GenericInfo": { "type": "object", "properties": { @@ -6154,6 +8362,40 @@ } } }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, "SystemInfo": { "type": "object", "properties": { @@ -6458,25 +8700,7 @@ "privileges": { "type": "array", "items": { - "type": "string", - "enum": [ - "ADMINISTRATION", - "AUTHORING", - "USERDATAUPLOADING", - "DATADOWNLOADING", - "USERMANAGEMENT", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "BYPASSRLS", - "RANALYSIS", - "DEVELOPER", - "USER_ADMINISTRATION", - "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT" - ] + "type": "string" }, "description": "Privileges which are assigned to the user group." }, @@ -6857,6 +9081,10 @@ "guid_mapping_branch_name": { "type": "string", "description": "Name of the branch where file containing guid mapping should be maintained" + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the organization" } } }, @@ -7261,7 +9489,12 @@ "DEVELOPER", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT" + "SYNCMANAGEMENT", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "description": "Privileges which will be assigned to the user group." @@ -7598,6 +9831,7 @@ "file_format", "frequency", "id", + "metadata", "name", "time_zone" ], @@ -7653,6 +9887,13 @@ "time_zone": { "type": "string", "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records." } } }, @@ -7672,6 +9913,51 @@ }, "description": "Options to specify details of liveboard." }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete liveboard." + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the liveboard title." + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available." + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters." + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page" + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page." + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF." + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size." + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables." + } + }, + "description": "Options for PDF export." + }, "FrequencyInput": { "type": "object", "required": [ @@ -7719,24 +10005,38 @@ } } }, - "Org": { + "SortingOptions": { "type": "object", - "required": [ - "id", - "name" - ], "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on." }, - "name": { + "order": { "type": "string", - "description": "Name of the object." + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, - "description": "Current logged in Organizations of the user." + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "description": "Indicates whether to fetch history runs wrt to the schedule or not." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "Indicates the max number of records that can be fetched as history runs wrt any scheduled job." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "Indicates the starting record number from where history runs records should be fetched." + } + } }, "FavoriteMetadataItem": { "type": "object", @@ -8143,8 +10443,15 @@ }, "MetadataResponse": { "type": "object", + "required": [ + "id", + "type" + ], "properties": { - "identifier": { + "name": { + "type": "string" + }, + "id": { "type": "string" }, "type": { @@ -8188,6 +10495,9 @@ }, "page_size": { "type": "string", + "enum": [ + "A4" + ], "description": "Page size." }, "truncate_table": { @@ -8217,6 +10527,40 @@ }, "description": "Recipient configuration which includes emails and recipients of the schedule" }, + "ResponseScheduleRun": { + "type": "object", + "required": [ + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "start_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run start time in milliseconds." + }, + "end_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run end time in milliseconds." + }, + "status": { + "type": "string", + "description": "Status of the schedule run." + }, + "detail": { + "type": "string", + "description": "Message details related to the schedule run." + } + }, + "description": "Schedule run response object" + }, "CronExpressionInput": { "type": "object", "required": [ From cd2a7d932c6241828d6a078a32782ecec7ced23c Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Wed, 7 Jun 2023 13:05:27 +0530 Subject: [PATCH 024/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 736 ++++++++++++++++++++++++-------- 1 file changed, 562 insertions(+), 174 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9dedc0745..72739d5ca 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5,6 +5,14 @@ "version": "2.0" }, "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, { "name": "9.2.0.cl", "id": "9.2.0.cl", @@ -12,6 +20,22 @@ "9.2.0.cl" ], "description": "Roles for version 9.2.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" } ], "tags": [], @@ -19,9 +43,10 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get session information for the currently logged-in user.", + "description": "Get session information for the currently logged-in user.\n\nAll users can view their session information. The API response varies according to user's access permissions and group privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Authentication" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { @@ -81,9 +106,10 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "Get token for the currently logged-in user.", + "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", "tags": [ - "Authentication" + "Authentication", + "9.4.0.cl" ], "parameters": [], "responses": { @@ -143,9 +169,10 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "Gets a list of ThoughtSpot users. To get details of a specific user, specify the user GUID or name.", + "description": "Gets user details.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, user preference settings, user’s favorite objects, or home Liveboard setting.\n\nAvailable to all users. Users with `ADMINISTRATION` (Can administer ThoughtSpot) privileges can view all users properties.\n\n**Note**: If you are querying users by Org, user privileges may show null values in the API response.\n\n Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -379,9 +406,10 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": "Get system details", + "description": "Get system details
Version: 9.0.0.cl or later", "tags": [ - "System" + "System", + "9.0.0.cl" ], "parameters": [], "responses": { @@ -391,6 +419,35 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" + }, + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } } } } @@ -441,9 +498,10 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": "Get system config information", + "description": "Get system config information
Version: 9.0.0.cl or later", "tags": [ - "System" + "System", + "9.0.0.cl" ], "parameters": [], "responses": { @@ -453,6 +511,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } } } } @@ -503,9 +568,10 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": "Get cluster override info.", + "description": "Get cluster override info.
Version: 9.2.0.cl or later", "tags": [ - "System" + "System", + "9.2.0.cl" ], "parameters": [], "responses": { @@ -565,9 +631,10 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": "Gets Orgs configured on a ThoughtSpot instance. Requires cluster administration privileges.", + "description": "Gets Orgs configured on a ThoughtSpot instance. Requires cluster administration privileges.
Version: 9.0.0.cl or later", "tags": [ - "Orgs" + "Orgs", + "9.0.0.cl" ], "requestBody": { "content": { @@ -627,6 +694,26 @@ "items": { "$ref": "#/components/schemas/OrgResponse" } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } } } } @@ -677,9 +764,10 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": "Allows searching tags.", + "description": "Allows searching tags.
Version: 9.0.0.cl or later", "tags": [ - "Tags" + "Tags", + "9.0.0.cl" ], "requestBody": { "content": { @@ -713,6 +801,40 @@ "items": { "$ref": "#/components/schemas/Tag" } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } } } } @@ -763,9 +885,10 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "Allows searching groups. Requires administrator privileges.", + "description": "Allows searching groups. Requires administrator privileges.
Version: 9.0.0.cl or later", "tags": [ - "Groups" + "Groups", + "9.0.0.cl" ], "requestBody": { "content": { @@ -962,9 +1085,10 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "Allows searching for metadata objects. You can search for metadata objects\nsuch as Liveboard, Answer. Requires at least view access to the metadata object.", + "description": "Allows searching for metadata objects. You can search for metadata objects\nsuch as Liveboard, Answer. Requires at least view access to the metadata object.
Version: 9.0.0.cl or later", "tags": [ - "Metadata" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1182,9 +1306,10 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": "Fetches SQL query data for Liveboard and its visualizations.", + "description": "Fetches SQL query data for Liveboard and its visualizations.
Version: 9.0.0.cl or later", "tags": [ - "Metadata" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1272,9 +1397,10 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": "Fetches SQL query data for an Answer.", + "description": "Fetches SQL query data for an Answer.
Version: 9.0.0.cl or later", "tags": [ - "Metadata" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1354,9 +1480,10 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "Exports Liveboard and visualization data in PDF, PNG, XLS, or CSV format.\nRequires at least view access to the Liveboard.", + "description": "Exports Liveboard and visualization data in PDF, PNG, XLS, or CSV format.\nRequires at least view access to the Liveboard.
Version: 9.0.0.cl or later", "tags": [ - "Reports" + "Reports", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1413,6 +1540,11 @@ "description": "Options for PNG export.", "$ref": "#/components/schemas/PngOptionsInput", "deprecated": false + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object", + "deprecated": false } }, "required": [ @@ -1481,9 +1613,10 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "Export report file for Answer data.", + "description": "Export report file for Answer data.
Version: 9.0.0.cl or later", "tags": [ - "Reports" + "Reports", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1517,6 +1650,11 @@ "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", "type": "object", "deprecated": false + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object", + "deprecated": false } }, "required": [ @@ -1585,9 +1723,10 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": "Fetch permission details for principal objects, such as users and groups.", + "description": "Fetch permission details for principal objects, such as users and groups.
Version: 9.0.0.cl or later", "tags": [ - "Security" + "Security", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1628,6 +1767,50 @@ "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "principals": [ + { + "identifier": "test_user", + "type": "USER" + } + ] + } + } + } } } } @@ -1678,9 +1861,10 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": "Fetch permission details for metadata objects", + "description": "Fetch permission details for metadata objects
Version: 9.0.0.cl or later", "tags": [ - "Security" + "Security", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1728,6 +1912,71 @@ "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "metadata": [ + { + "type": "LIVEBOARD", + "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" + } + ], + "include_dependent_objects": false + } + } + } } } } @@ -1778,9 +2027,10 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "Allows passing a search query string and retrieving data from ThoughtSpot.", + "description": "Allows passing a search query string and retrieving data from ThoughtSpot.
Version: 9.0.0.cl or later", "tags": [ - "Data" + "Data", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1830,6 +2080,11 @@ "description": "JSON object representing columns to sort the data.", "type": "object", "deprecated": false + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object", + "deprecated": false } }, "required": [ @@ -1899,9 +2154,10 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "Fetches Liveboard data. Requires at least view access to the Liveboard.", + "description": "Fetches Liveboard data. Requires at least view access to the Liveboard.
Version: 9.0.0.cl or later", "tags": [ - "Data" + "Data", + "9.0.0.cl" ], "requestBody": { "content": { @@ -1959,6 +2215,11 @@ "description": "JSON object representing columns to sort the data.", "type": "object", "deprecated": false + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object", + "deprecated": false } }, "required": [ @@ -2027,9 +2288,10 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "Fetches data from a saved Answer. Requires at least view access to the Answer object.", + "description": "Fetches data from a saved Answer. Requires at least view access to the Answer object.
Version: 9.0.0.cl or later", "tags": [ - "Data" + "Data", + "9.0.0.cl" ], "requestBody": { "content": { @@ -2074,6 +2336,11 @@ "description": "JSON object representing columns to sort the data.", "type": "object", "deprecated": false + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object", + "deprecated": false } }, "required": [ @@ -2142,9 +2409,10 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "Fetches security audit logs. Requires administrator privileges.", + "description": "Fetches security audit logs. Requires administrator privileges.
Version: 9.0.0.cl or later", "tags": [ - "Log" + "Log", + "9.0.0.cl" ], "requestBody": { "content": { @@ -2242,7 +2510,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "Search local repository configuration
Beta Version: 9.2.0.cl or later", + "description": "Search existing Git configurations in the current cluster
Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -2254,7 +2522,7 @@ "type": "object", "properties": { "org_identifiers": { - "description": "List of Unique identifier of the organization. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]
Version: 9.5.0.cl or later", + "description": " List of Unique identifier of the organization. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]\n \n\nNote: If no org identifier is specified,then the configurations will be returned for all orgs the user has access to
Version: 9.5.0.cl or later", "type": "array", "items": { "type": "string" @@ -2354,26 +2622,25 @@ "deprecated": false }, "branch_name": { - "description": "Name of the branch from which commit history needs to be displayed", + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", "type": "string", "deprecated": false }, "record_offset": { - "description": "Record offset point in the commit history to display the response", + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", "type": "integer", "format": "int32", "deprecated": false }, "record_size": { - "description": "Number of history records from record offset point to be displayed in the response", + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", "type": "integer", "format": "int32", "deprecated": false } }, "required": [ - "metadata_identifier", - "metadata_type" + "metadata_identifier" ] } } @@ -2441,9 +2708,10 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "Search connection objects. Requires DATAMANAGEMENT privilege.", + "description": "Search connection objects. Requires DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", "tags": [ - "Connections" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -2525,6 +2793,23 @@ "type": "boolean", "deprecated": false, "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object", + "deprecated": false + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ], + "deprecated": false } } } @@ -2592,9 +2877,10 @@ "/api/rest/2.0/roles/search": { "post": { "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", "tags": [ - "Roles" + "Roles", + "9.5.0.cl" ], "requestBody": { "content": { @@ -2764,9 +3050,10 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": "Using this endpoint, you can programmatically create a login session for a user in ThoughtSpot.", + "description": "Creates a login session for a ThoughtSpot user with basic authentication. In the basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes.\n\nA successful login returns a session cookie that can be used in your subsequent API calls.\n\n Version: 9.0.0.cl or later", "tags": [ - "Authentication" + "Authentication", + "9.0.0.cl" ], "requestBody": { "content": { @@ -2852,9 +3139,10 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": " To programmatically create an object session token for a user in ThoughtSpot, use this endpoint.\n\nYou can generate the token for a user by providing username and password (basic authentication) or by using the cluster’s secret key (trusted authentication). \n\nYou need to enable trusted authentication to generate a secret key. To generate a secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click on Security Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request. ", + "description": "Gets authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot is valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Authentication" + "Authentication", + "9.0.0.cl" ], "requestBody": { "content": { @@ -2992,9 +3280,10 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": " To programmatically create a full session token for a user in ThoughtSpot, use this endpoint.\n\nYou can generate the token for a user by providing username and password (basic authentication) or by using the cluster’s secret key (trusted authentication). \n\n\n You need to enable trusted authentication to generate a secret key. To generate a secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click on Security Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request. ", + "description": "Gets authentication token that provides full access to ThoughtSpot application. By default, the token obtained remains valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Authentication" + "Authentication", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3126,9 +3415,10 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", + "description": "Logs a user out of their current session.\n\n Version: 9.0.0.cl or later", "tags": [ - "Authentication" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { @@ -3181,9 +3471,10 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "description": "Revokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo start the session, request for a new token from ThoughtSpot. See [Get Object Access Token](/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](http/api-endpoints/authentication/get-full-access-token).\n\n Version: 9.0.0.cl or later", "tags": [ - "Authentication" + "Authentication", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3255,9 +3546,10 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": "Allows creating a user in ThoughtSpot. The API endpoint also allows you to assign the user to specific groups,\nOrgs, and add favorite Liveboards and Answers. To create a user, you require administration privileges.", + "description": "Creates a user in ThoughtSpot. The API endpoint also allows you to add user properties such as email address, account status, share notification preferences, and sharing visibility. You can also assign the user to groups and Orgs, and set favorite objects.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3441,9 +3733,10 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": "Updates a given user object. Requires administrator privileges.", + "description": "Updates properties of a user object. You can modify username, reset password, assign groups or remove the user from a group, and modify user preferences.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3624,9 +3917,10 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": "Deletes a user. Requires administrator privileges.", + "description": "Deletes a user from the ThoughtSpot system.\n\nIf you want to remove a user from a specific Org, 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "parameters": [ { @@ -3690,9 +3984,10 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": "Imports user data from external databases to ThoughtSpot.", + "description": "Imports user data from external databases to ThoughtSpot.
Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3794,9 +4089,10 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": "Allows changing the password of a ThoughtSpot user account.", + "description": "Updates the current password of a ThoughtSpot user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3881,9 +4177,10 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": "Resets the password of a ThoughtSpot user account.", + "description": "Resets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3962,9 +4259,10 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": "Logs out a user from their current session. This API operation makes\na user session invalid and forces the user to re-login.", + "description": "Forces logout on user sessions. Note the following points. This API operation makes a user session invalid and forces the user to re-login.\n\n- Use this API with caution as it may invalidate active user sessions and force users to re-login.\n\n- 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Users" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4036,9 +4334,10 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": "Update cluster configuration", + "description": "Update cluster configuration
Version: 9.2.0.cl or later", "tags": [ - "System" + "System", + "9.2.0.cl" ], "requestBody": { "content": { @@ -4111,9 +4410,10 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": "Creates an Org. Requires cluster administration privileges.", + "description": "Creates an Org. Requires cluster administration privileges.
Version: 9.0.0.cl or later", "tags": [ - "Orgs" + "Orgs", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4148,6 +4448,17 @@ "application/json": { "schema": { "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } } } } @@ -4198,9 +4509,10 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": "Updates an Org. Requires cluster administration privileges.", + "description": "Updates an Org. Requires cluster administration privileges.
Version: 9.0.0.cl or later", "tags": [ - "Orgs" + "Orgs", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4304,9 +4616,10 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": "Deletes an Org. Requires cluster administration privileges.", + "description": "Deletes an Org. Requires cluster administration privileges.
Version: 9.0.0.cl or later", "tags": [ - "Orgs" + "Orgs", + "9.0.0.cl" ], "parameters": [ { @@ -4370,9 +4683,10 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "Creates a Tag. Requires administrator privileges.", + "description": "Creates a Tag. Requires administrator privileges.
Version: 9.0.0.cl or later", "tags": [ - "Tags" + "Tags", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4407,6 +4721,24 @@ "application/json": { "schema": { "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } } } } @@ -4457,9 +4789,10 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "Updates a Tag. Requires administrator privileges.", + "description": "Updates a Tag. Requires administrator privileges.
Version: 9.0.0.cl or later", "tags": [ - "Tags" + "Tags", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4544,9 +4877,10 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "Deletes a tag. Requires administrator privileges.", + "description": "Deletes a tag. Requires administrator privileges.
Version: 9.0.0.cl or later", "tags": [ - "Tags" + "Tags", + "9.0.0.cl" ], "parameters": [ { @@ -4610,9 +4944,10 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": "Assigns a tag to a metadata object.", + "description": "Assigns a tag to a metadata object.
Version: 9.0.0.cl or later", "tags": [ - "Tags" + "Tags", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4697,9 +5032,10 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": "Unassign a tag to a metadata object.", + "description": "Unassign a tag to a metadata object.
Version: 9.0.0.cl or later", "tags": [ - "Tags" + "Tags", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4784,9 +5120,10 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": "Create a group. Requires administrator privilege.", + "description": "Create a group. Requires administrator privilege.
Version: 9.0.0.cl or later", "tags": [ - "Groups" + "Groups", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4960,9 +5297,10 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": "Update group properties.", + "description": "Update group properties.
Version: 9.0.0.cl or later", "tags": [ - "Groups" + "Groups", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5144,9 +5482,10 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": "Deletes a group.", + "description": "Deletes a group.
Version: 9.0.0.cl or later", "tags": [ - "Groups" + "Groups", + "9.0.0.cl" ], "parameters": [ { @@ -5210,9 +5549,10 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": "Import groups to ThoughtSpot. Requires administrator privilege.", + "description": "Imports user data from external databases into ThoughtSpot. During the user import operation:\n\n- If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. The default_password definition in the API request is optional.\n- If the `delete_unspecified_users` property is set to `true`, users not specified in the API request, excluding `tsadmin`, `guest`, `system` and `su` users, are deleted.\n- If the specified user objects are already available in ThoughtSpot, the object properties of these users are modified and synchronized as per the input data in the API request.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", "tags": [ - "Groups" + "Groups", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5304,10 +5644,11 @@ }, "/api/rest/2.0/metadata/tml/import": { "post": { - "operationId": "importMetadata", - "description": "Imports TML representation of metadata objects. Requires data management privileges.", + "operationId": "importMetadataTML", + "description": "Imports TML representation of metadata objects. Requires data management privileges.
Version: 9.0.0.cl or later", "tags": [ - "Metadata" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5410,10 +5751,11 @@ }, "/api/rest/2.0/metadata/tml/export": { "post": { - "operationId": "exportMetadata", - "description": "Exports TML representation of metadata objects", + "operationId": "exportMetadataTML", + "description": "Exports TML representation of metadata objects
Version: 9.0.0.cl or later", "tags": [ - "Metadata" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5523,9 +5865,10 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": "Deletes metadata objects. Requires edit access to objects.", + "description": "Deletes metadata objects. Requires edit access to objects.
Version: 9.0.0.cl or later", "tags": [ - "Metadata" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5608,9 +5951,10 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": "Assigns a new author or transfers the ownership of the specified metadata objects.", + "description": "Assigns a new author or transfers the ownership of the specified metadata objects.
Version: 9.0.0.cl or later", "tags": [ - "Security" + "Security", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5697,9 +6041,10 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "Share one or several metadata objects with users or groups.\nRequires edit access to metadata objects.", + "description": "Share one or several metadata objects with users or groups.\nRequires edit access to metadata objects.
Version: 9.0.0.cl or later", "tags": [ - "Security" + "Security", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5852,7 +6197,7 @@ "deprecated": false }, "org_identifier": { - "description": "Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1
Version: 9.5.0.cl or later", + "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", "type": "string", "deprecated": false }, @@ -5865,9 +6210,9 @@ "deprecated": false }, "default_branch": { - "description": "Name of the default remote branch
Beta Version: 9.2.0.cl or later", + "description": " Name of the default remote branch\n \n\n*Deprecated since 9.3.0.cl : Replaced by default_branch_name *
Beta Version: 9.2.0.cl or later", "type": "string", - "deprecated": false + "deprecated": true }, "default_branch_name": { "description": "Name of the default remote branch
Beta Version: 9.3.0.cl or later", @@ -5882,7 +6227,7 @@ "nullable": true }, "guid_mapping_branch_name": { - "description": "Name of the branch where file containing guid mapping should be maintained
Beta Version: 9.4.0.cl or later", + "description": " Name of the branch where file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Beta Version: 9.4.0.cl or later", "type": "string", "deprecated": false } @@ -5977,7 +6322,7 @@ "deprecated": false }, "org_identifier": { - "description": "Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1
Version: 9.5.0.cl or later", + "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", "type": "string", "deprecated": false }, @@ -5990,9 +6335,9 @@ "deprecated": false }, "default_branch": { - "description": "Name of the default remote branch
Beta Version: 9.2.0.cl or later", + "description": " Name of the default remote branch\n \n\n*Deprecated since 9.3.0.cl : Replaced by default_branch_name *
Beta Version: 9.2.0.cl or later", "type": "string", - "deprecated": false + "deprecated": true }, "default_branch_name": { "description": "Name of the default remote branch
Beta Version: 9.3.0.cl or later", @@ -6006,7 +6351,7 @@ "nullable": true }, "guid_mapping_branch_name": { - "description": "Name of the branch where file containing guid mapping should be maintained
Beta Version: 9.4.0.cl or later", + "description": " Name of the branch where file containing guid mapping should be maintained This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Beta Version: 9.4.0.cl or later", "type": "string", "deprecated": false } @@ -6146,7 +6491,7 @@ "/api/rest/2.0/vcs/git/branches/{branch_name}/pull": { "post": { "operationId": "pullBranch", - "description": "Pull a branch from remote repository to local repository.
Beta Version: 9.2.0.cl or later", + "description": " Pull a branch from remote repository to local repository.\n \n\n*Deprecated since 9.3.0.cl : Replaced by /vcs/git/config/create *
Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6233,7 +6578,7 @@ "deprecated": false }, "branch_name": { - "description": "Name of the remote branch where object should be pushed", + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string", "deprecated": false }, @@ -6330,7 +6675,7 @@ "deprecated": false }, "branch_name": { - "description": "Name of the branch where the reverted version should be comitted", + "description": " Name of the branch where the reverted version should be comitted\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string", "deprecated": false }, @@ -6418,7 +6763,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "Before merging changes to target branch, pick the changes from source branch and validate the files
Beta Version: 9.2.0.cl or later", + "description": "The Validate Merge endpoint can be run from your target ThoughtSpot organization / cluster to ensure that the changes implemented in the source branch would function in the target ThoughtSpot environment prior to merging a source branch into a target branch.
Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6510,7 +6855,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "Deploy changes to a Thoughtspot environment from a commit point\"
Beta Version: 9.2.0.cl or later", + "description": "Deploy changes to a Thoughtspot environment from the latest version of a branch or a specific commit point.
Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6522,24 +6867,24 @@ "type": "object", "properties": { "commit_id": { - "description": "Commit_id against which the files should be picked to deploy", + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", "type": "string", "deprecated": false }, "branch_name": { - "description": "Name of the remote branch where changes should be picked
Beta Version: 9.3.0.cl or later", + "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.
Beta Version: 9.3.0.cl or later", "type": "string", "deprecated": false }, "import_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered
Beta Version: 9.2.0.cl or later", + "description": " Indicates if all files or only modified file at specified commit point should be considered\n \n\n*Deprecated since 9.3.0.cl : Replaced by deploy_type *
Beta Version: 9.2.0.cl or later", "default": "DELTA", "type": "string", "enum": [ "FULL", "DELTA" ], - "deprecated": false + "deprecated": true }, "deploy_type": { "description": "Indicates if all files or only modified file at specified commit point should be considered
Beta Version: 9.3.0.cl or later", @@ -6552,7 +6897,7 @@ "deprecated": false }, "deploy_policy": { - "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]
Beta Version: 9.3.0.cl or later", + "description": "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.
Beta Version: 9.3.0.cl or later", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -6627,9 +6972,10 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "Creates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.", + "description": "Creates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", "tags": [ - "Connections" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6748,9 +7094,10 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "Deletes a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.", + "description": "Deletes a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", "tags": [ - "Connections" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6823,9 +7170,10 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "Updates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.", + "description": "Updates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", "tags": [ - "Connections" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6920,9 +7268,10 @@ "/api/rest/2.0/roles/create": { "post": { "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", "tags": [ - "Roles" + "Roles", + "9.5.0.cl" ], "requestBody": { "content": { @@ -7036,9 +7385,10 @@ "/api/rest/2.0/roles/{role_identifier}/update": { "post": { "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", "tags": [ - "Roles" + "Roles", + "9.5.0.cl" ], "requestBody": { "content": { @@ -7163,9 +7513,10 @@ "/api/rest/2.0/roles/{role_identifier}/delete": { "post": { "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", "tags": [ - "Roles" + "Roles", + "9.5.0.cl" ], "parameters": [ { @@ -7229,9 +7580,10 @@ "/api/rest/2.0/schedules": { "post": { "operationId": "createSchedule", - "description": "Create schedule.", + "description": "Create schedule.
Version: 9.4.0.cl or later", "tags": [ - "Schedules" + "Schedules", + "9.4.0.cl" ], "requestBody": { "content": { @@ -7370,9 +7722,10 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "Deletes a schedule", + "description": "Deletes a schedule
Version: 9.4.0.cl or later", "tags": [ - "Schedules" + "Schedules", + "9.4.0.cl" ], "parameters": [ { @@ -7436,9 +7789,10 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "Search Schedules", + "description": "Search Schedules
Version: 9.4.0.cl or later", "tags": [ - "Schedules" + "Schedules", + "9.4.0.cl" ], "requestBody": { "content": { @@ -7475,6 +7829,14 @@ "description": "Options while fetching history runs wrt to the schedule.", "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput", "deprecated": false + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false } } } @@ -7542,9 +7904,10 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "Update schedule.", + "description": "Update schedule.
Version: 9.4.0.cl or later", "tags": [ - "Schedules" + "Schedules", + "9.4.0.cl" ], "requestBody": { "content": { @@ -7902,6 +8265,10 @@ "welcome_email_sent": { "type": "boolean", "description": "Indicates whether welcome email is sent for the user." + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org." } } }, @@ -9070,10 +9437,6 @@ }, "description": "Branches that have been pulled in local repository" }, - "remote_alias": { - "type": "string", - "description": "Alias name associated with the remote repository" - }, "enable_guid_mapping": { "type": "boolean", "description": "Maintain mapping of guid for the deployment to an instance" @@ -9533,11 +9896,6 @@ }, "CommitResponse": { "type": "object", - "required": [ - "committer", - "author", - "comment" - ], "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", @@ -9575,8 +9933,7 @@ "MetadataObject": { "type": "object", "required": [ - "identifier", - "type" + "identifier" ], "properties": { "identifier": { @@ -9596,11 +9953,6 @@ }, "RevertResponse": { "type": "object", - "required": [ - "committer", - "author", - "comment" - ], "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", @@ -10253,9 +10605,6 @@ }, "CommiterType": { "type": "object", - "required": [ - "username" - ], "properties": { "email": { "type": "string", @@ -10269,10 +10618,6 @@ }, "AuthorType": { "type": "object", - "required": [ - "email", - "username" - ], "properties": { "email": { "type": "string", @@ -10632,6 +10977,10 @@ "$ref": "#/components/schemas/SchemaObject" }, "description": "Schemas of the database." + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created." } } }, @@ -10725,6 +11074,29 @@ "$ref": "#/components/schemas/Column" }, "description": "Columns of the table." + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table" + }, + "description": { + "type": "string", + "description": "Description of the table" + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked" + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table" } } }, @@ -10742,6 +11114,22 @@ "data_type": { "type": "string", "description": "Data type of the column." + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate" + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported" + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked" } } } From 0885fb3257b1df405637bb47935a960e934f963f Mon Sep 17 00:00:00 2001 From: RijadR Date: Tue, 13 Jun 2023 14:20:02 +0530 Subject: [PATCH 025/410] Update openapiSpecv3-2_0.json Added Custom actions apis --- api-spec/openapiSpecv3-2_0.json | 944 +++++++++++++++++++++++++++++--- 1 file changed, 855 insertions(+), 89 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 72739d5ca..154e2ccfa 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3047,6 +3047,118 @@ } } }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "Search custom actions\n\nEquivalent to POST /customization/custom-actions/search
Version: 9.5.0.cl or later", + "tags": [ + "Custom Action", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or Id of the custom action.", + "type": "string", + "deprecated": false + }, + "default_action_config": { + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "$ref": "#/components/schemas/Default_action_config_Input", + "deprecated": false + }, + "include_group_associations": { + "description": "When set to true, returns associated groups for custom action.", + "type": "boolean", + "deprecated": false, + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns associated metadata for custom action.", + "type": "boolean", + "deprecated": false, + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataTypeInput" + }, + "deprecated": false + }, + "type": { + "description": "Filter the action objects based on type", + "$ref": "#/components/schemas/TypeInput", + "deprecated": false + } + } + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Response_Custom_Action" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", @@ -8044,101 +8156,387 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "Create a custom action\n\nEquivalent to POST /customization/custom-actions
Version: 9.5.0.cl or later", + "tags": [ + "Custom Action", + "9.5.0.cl" ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user." - }, - "can_change_password": { - "type": "boolean", - "description": "Indicates whether the user can change their password." - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the user." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds." - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged in Organizations of the user." + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string", + "deprecated": false + }, + "action_details": { + "description": "Action details includes Type and Configuration for Custom Actions", + "$ref": "#/components/schemas/Action_detailsInput", + "deprecated": false + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_metadataListItemInput" + }, + "deprecated": false + }, + "default_action_config": { + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "$ref": "#/components/schemas/Default_action_config_Input", + "deprecated": false + }, + "group_identifiers": { + "description": "Unique ID or name of the User groups who will be associated with the custom action.", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false + } + }, + "required": [ + "name", + "action_details" + ] + } + } }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted." + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response_Custom_Action" + } + } + } }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated." + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account." + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account." + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "email": { - "type": "string", - "description": "Email of the user." + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "Update a custom action for the current organization.\nEquivalent to PUT /customization/custom-actions/{custom_action_identifier}
Version: 9.5.0.cl or later", + "tags": [ + "Custom Action", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes Type and Configuration for Custom Actions", + "$ref": "#/components/schemas/Action_detailsInput", + "deprecated": false + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_metadataListItemInput" + }, + "deprecated": false + }, + "default_action_config": { + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "$ref": "#/components/schemas/Default_action_config_Input", + "deprecated": false + }, + "group_identifiers": { + "description": "Unique ID or name of the User groups who will be associated with the custom action.", + "type": "array", + "items": { + "type": "string" + }, + "deprecated": false + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string", + "deprecated": false + } + } + } + } + } + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action.", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "Deletes a custom action from the current organization\n\nEquivalent to DELETE /customization/custom-actions/{custom_action_identifier}
Version: 9.5.0.cl or later", + "tags": [ + "Custom Action", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Custom action.", + "deprecated": false + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user." + }, + "can_change_password": { + "type": "boolean", + "description": "Indicates whether the user can change their password." + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the user." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds." + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged in Organizations of the user." + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted." + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated." + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account." + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account." + }, + "email": { + "type": "string", + "description": "Email of the user." }, "expiration_time_in_millis": { "type": "number", @@ -9714,6 +10112,72 @@ }, "description": "Response for search role api should handle hidden privileges as well." }, + "Response_Custom_Action": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "Type and Configuration for Custom Actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_associationListItem" + }, + "description": "Metadata objects to which the custom action needs to be associated." + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action." + } + }, + "description": "Custom action details" + }, + "Default_action_config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, + "TypeInput": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type" + } + }, + "description": "Filter the action objects based on type" + }, "Token": { "type": "object", "required": [ @@ -10390,6 +10854,40 @@ } } }, + "Action_detailsInput": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type" + } + }, + "description": "Action details includes Type and Configuration for Custom Actions" + }, + "Associate_metadataListItemInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config_Input", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, "FavoriteMetadataItem": { "type": "object", "required": [ @@ -10665,6 +11163,86 @@ } } }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type" + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, + "Metadata_associationListItem": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action." + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url." + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + } + }, + "description": "URL Custom Action Type" + }, "Scope": { "type": "object", "required": [ @@ -10961,6 +11539,20 @@ } } }, + "Action_config_Input": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, "Database": { "type": "object", "required": [ @@ -10984,6 +11576,89 @@ } } }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action." + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url." + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + } + }, + "description": "URL Custom Action Type" + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key." + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization." + } + }, + "description": "Authorization type for the custom action." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter" + }, + "value": { + "type": "string", + "description": "Value for the url query parameter" + } + } + }, "CronExpression": { "type": "object", "required": [ @@ -11058,6 +11733,69 @@ } } }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key." + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization." + } + }, + "description": "Authorization type for the custom action." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter" + }, + "value": { + "type": "string", + "description": "Value for the url query parameter" + } + } + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name" + }, + "value": { + "type": "string", + "description": "Enter you key value" + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { + "type": "string", + "description": "Username for the basic authentication" + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, "Table": { "type": "object", "required": [ @@ -11100,6 +11838,34 @@ } } }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name" + }, + "value": { + "type": "string", + "description": "Enter you key value" + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { + "type": "string", + "description": "Username for the basic authentication" + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, "Column": { "type": "object", "required": [ From feaed02c8f8f6d6e37393f0f36bef80bd1eda825 Mon Sep 17 00:00:00 2001 From: RijadR Date: Wed, 14 Jun 2023 10:24:21 +0530 Subject: [PATCH 026/410] Update openapiSpecv3-2_0.json (#76) --- api-spec/openapiSpecv3-2_0.json | 302 +++++++++++++------------------- 1 file changed, 126 insertions(+), 176 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 154e2ccfa..bce889550 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -43,7 +43,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get session information for the currently logged-in user.\n\nAll users can view their session information. The API response varies according to user's access permissions and group privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGet session information for the currently logged-in user.\n\nAll users can view their session information. The API response varies according to user's access permissions and group privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -169,7 +169,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "Gets user details.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, user preference settings, user’s favorite objects, or home Liveboard setting.\n\nAvailable to all users. Users with `ADMINISTRATION` (Can administer ThoughtSpot) privileges can view all users properties.\n\n**Note**: If you are querying users by Org, user privileges may show null values in the API response.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets user details.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, user preference settings, user’s favorite objects, or home Liveboard setting.\n\nAvailable to all users. Users with `ADMINISTRATION` (Can administer ThoughtSpot) privileges can view all users properties.\n\n**Note**: If you are querying users by Org, user privileges may show null values in the API response.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -2510,10 +2510,9 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "Search existing Git configurations in the current cluster
Beta Version: 9.2.0.cl or later", + "description": "Search existing Git configurations in the current cluster", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -2595,10 +2594,9 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "List the commit history of a metadata object
Beta Version: 9.2.0.cl or later", + "description": "List the commit history of a metadata object", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -3068,7 +3066,7 @@ }, "default_action_config": { "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", - "$ref": "#/components/schemas/Default_action_config_Input", + "$ref": "#/components/schemas/Default_Action_Config_Search_Input", "deprecated": false }, "include_group_associations": { @@ -3087,7 +3085,7 @@ "description": "Search with a given metadata identifier.", "type": "array", "items": { - "$ref": "#/components/schemas/MetadataTypeInput" + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" }, "deprecated": false }, @@ -3110,7 +3108,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/Response_Custom_Action" + "$ref": "#/components/schemas/ResponseCustomAction" } } } @@ -3162,7 +3160,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": "Creates a login session for a ThoughtSpot user with basic authentication. In the basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes.\n\nA successful login returns a session cookie that can be used in your subsequent API calls.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a login session for a ThoughtSpot user with basic authentication. In the basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes.\n\nA successful login returns a session cookie that can be used in your subsequent API calls.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3251,7 +3249,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "Gets authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot is valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot is valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3392,7 +3390,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "Gets authentication token that provides full access to ThoughtSpot application. By default, the token obtained remains valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets authentication token that provides full access to ThoughtSpot application. By default, the token obtained remains valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3527,7 +3525,7 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": "Logs a user out of their current session.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nLogs a user out of their current session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3583,7 +3581,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": "Revokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo start the session, request for a new token from ThoughtSpot. See [Get Object Access Token](/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](http/api-endpoints/authentication/get-full-access-token).\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo start the session, request for a new token from ThoughtSpot. See [Get Object Access Token](/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3658,7 +3656,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": "Creates a user in ThoughtSpot. The API endpoint also allows you to add user properties such as email address, account status, share notification preferences, and sharing visibility. You can also assign the user to groups and Orgs, and set favorite objects.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot. The API endpoint also allows you to add user properties such as email address, account status, share notification preferences, and sharing visibility. You can also assign the user to groups and Orgs, and set favorite objects.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3845,7 +3843,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": "Updates properties of a user object. You can modify username, reset password, assign groups or remove the user from a group, and modify user preferences.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates properties of a user object. You can modify username, reset password, assign groups or remove the user from a group, and modify user preferences.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4029,7 +4027,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": "Deletes a user from the ThoughtSpot system.\n\nIf you want to remove a user from a specific Org, 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf you want to remove a user from a specific Org, 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4201,7 +4199,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": "Updates the current password of a ThoughtSpot user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of a ThoughtSpot user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4289,7 +4287,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": "Resets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4371,7 +4369,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": "Forces logout on user sessions. Note the following points. This API operation makes a user session invalid and forces the user to re-login.\n\n- Use this API with caution as it may invalidate active user sessions and force users to re-login.\n\n- 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nForces logout on user sessions. Note the following points. This API operation makes a user session invalid and forces the user to re-login.\n\n- Use this API with caution as it may invalidate active user sessions and force users to re-login.\n\n- 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -5661,7 +5659,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": "Imports user data from external databases into ThoughtSpot. During the user import operation:\n\n- If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. The default_password definition in the API request is optional.\n- If the `delete_unspecified_users` property is set to `true`, users not specified in the API request, excluding `tsadmin`, `guest`, `system` and `su` users, are deleted.\n- If the specified user objects are already available in ThoughtSpot, the object properties of these users are modified and synchronized as per the input data in the API request.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n- If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. The default_password definition in the API request is optional.\n- If the `delete_unspecified_users` property is set to `true`, users not specified in the API request, excluding `tsadmin`, `guest`, `system` and `su` users, are deleted.\n- If the specified user objects are already available in ThoughtSpot, the object properties of these users are modified and synchronized as per the input data in the API request.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -6282,10 +6280,9 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "Configure local repository to connect to remote repository
Beta Version: 9.2.0.cl or later", + "description": "Configure local repository to connect to remote repository", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -6321,25 +6318,20 @@ }, "deprecated": false }, - "default_branch": { - "description": " Name of the default remote branch\n \n\n*Deprecated since 9.3.0.cl : Replaced by default_branch_name *
Beta Version: 9.2.0.cl or later", - "type": "string", - "deprecated": true - }, "default_branch_name": { - "description": "Name of the default remote branch
Beta Version: 9.3.0.cl or later", + "description": "Name of the default remote branch", "type": "string", "deprecated": false }, "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Beta Version: 9.4.0.cl or later", + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "default": false, "type": "boolean", "deprecated": false, "nullable": true }, "guid_mapping_branch_name": { - "description": " Name of the branch where file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Beta Version: 9.4.0.cl or later", + "description": " Name of the branch where file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", "type": "string", "deprecated": false } @@ -6412,10 +6404,9 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "Update local repository configuration.
Beta Version: 9.2.0.cl or later", + "description": "Update local repository configuration.", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -6439,31 +6430,26 @@ "deprecated": false }, "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]
Beta Version: 9.3.0.cl or later", + "description": "List the remote branches to configure. Example:[development, production]", "type": "array", "items": { "type": "string" }, "deprecated": false }, - "default_branch": { - "description": " Name of the default remote branch\n \n\n*Deprecated since 9.3.0.cl : Replaced by default_branch_name *
Beta Version: 9.2.0.cl or later", - "type": "string", - "deprecated": true - }, "default_branch_name": { - "description": "Name of the default remote branch
Beta Version: 9.3.0.cl or later", + "description": "Name of the default remote branch", "type": "string", "deprecated": false }, "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Beta Version: 9.4.0.cl or later", + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", "deprecated": false, "nullable": true }, "guid_mapping_branch_name": { - "description": " Name of the branch where file containing guid mapping should be maintained This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Beta Version: 9.4.0.cl or later", + "description": " Name of the branch where file containing guid mapping should be maintained This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", "type": "string", "deprecated": false } @@ -6530,10 +6516,9 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "Delete local repository configuration
Beta Version: 9.2.0.cl or later", + "description": "Delete local repository configuration", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -6600,80 +6585,12 @@ } } }, - "/api/rest/2.0/vcs/git/branches/{branch_name}/pull": { - "post": { - "operationId": "pullBranch", - "description": " Pull a branch from remote repository to local repository.\n \n\n*Deprecated since 9.3.0.cl : Replaced by /vcs/git/config/create *
Beta Version: 9.2.0.cl or later", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "branch_name", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name of the branch to pull", - "deprecated": false - } - ], - "responses": { - "204": { - "description": "Remote branch pulled to local successfully" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "Commit the object from metadata to remote repository
Beta Version: 9.2.0.cl or later", + "description": "Commit the object from metadata to remote repository", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -6767,10 +6684,9 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "Revert an object to a specific commit id
Beta Version: 9.2.0.cl or later", + "description": "Revert an object to a specific commit id", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -6792,7 +6708,7 @@ "deprecated": false }, "revert_policy": { - "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]
Beta Version: 9.3.0.cl or later", + "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -6875,10 +6791,9 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "The Validate Merge endpoint can be run from your target ThoughtSpot organization / cluster to ensure that the changes implemented in the source branch would function in the target ThoughtSpot environment prior to merging a source branch into a target branch.
Beta Version: 9.2.0.cl or later", + "description": "The Validate Merge endpoint can be run from your target ThoughtSpot organization / cluster to ensure that the changes implemented in the source branch would function in the target ThoughtSpot environment prior to merging a source branch into a target branch.", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -6967,10 +6882,9 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "Deploy changes to a Thoughtspot environment from the latest version of a branch or a specific commit point.
Beta Version: 9.2.0.cl or later", + "description": "Deploy changes to a Thoughtspot environment from the latest version of a branch or a specific commit point.", "tags": [ - "Version Control", - "9.2.0.cl" + "Version Control" ], "requestBody": { "content": { @@ -6984,22 +6898,12 @@ "deprecated": false }, "branch_name": { - "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.
Beta Version: 9.3.0.cl or later", + "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string", "deprecated": false }, - "import_type": { - "description": " Indicates if all files or only modified file at specified commit point should be considered\n \n\n*Deprecated since 9.3.0.cl : Replaced by deploy_type *
Beta Version: 9.2.0.cl or later", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ], - "deprecated": true - }, "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered
Beta Version: 9.3.0.cl or later", + "description": "Indicates if all files or only modified file at specified commit point should be considered", "default": "DELTA", "type": "string", "enum": [ @@ -7009,7 +6913,7 @@ "deprecated": false }, "deploy_policy": { - "description": "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.
Beta Version: 9.3.0.cl or later", + "description": "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.", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -7689,7 +7593,7 @@ } } }, - "/api/rest/2.0/schedules": { + "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", "description": "Create schedule.
Version: 9.4.0.cl or later", @@ -8177,21 +8081,21 @@ "deprecated": false }, "action_details": { - "description": "Action details includes Type and Configuration for Custom Actions", - "$ref": "#/components/schemas/Action_detailsInput", + "description": "Action details includes Type and Configuration for Custom Actions,either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input", "deprecated": false }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", "type": "array", "items": { - "$ref": "#/components/schemas/Associate_metadataListItemInput" + "$ref": "#/components/schemas/Associate_Metadata_Input" }, "deprecated": false }, "default_action_config": { "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", - "$ref": "#/components/schemas/Default_action_config_Input", + "$ref": "#/components/schemas/Default_Action_Config_Input", "deprecated": false }, "group_identifiers": { @@ -8219,7 +8123,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Response_Custom_Action" + "$ref": "#/components/schemas/ResponseCustomAction" } } } @@ -8282,21 +8186,21 @@ "type": "object", "properties": { "action_details": { - "description": "Action details includes Type and Configuration for Custom Actions", - "$ref": "#/components/schemas/Action_detailsInput", + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input", "deprecated": false }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", "type": "array", "items": { - "$ref": "#/components/schemas/Associate_metadataListItemInput" + "$ref": "#/components/schemas/Associate_Metadata_Input" }, "deprecated": false }, "default_action_config": { "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", - "$ref": "#/components/schemas/Default_action_config_Input", + "$ref": "#/components/schemas/Default_Action_Config_Input", "deprecated": false }, "group_identifiers": { @@ -9112,6 +9016,43 @@ } } }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "type", + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The object representation with ID and Name." + }, "RiseSetter": { "type": "object", "required": [ @@ -10112,7 +10053,7 @@ }, "description": "Response for search role api should handle hidden privileges as well." }, - "Response_Custom_Action": { + "ResponseCustomAction": { "type": "object", "required": [ "action_details", @@ -10136,7 +10077,7 @@ "metadata_association": { "type": "array", "items": { - "$ref": "#/components/schemas/Metadata_associationListItem" + "$ref": "#/components/schemas/Metadata_Association_Item" }, "description": "Metadata objects to which the custom action needs to be associated." }, @@ -10154,7 +10095,7 @@ }, "description": "Custom action details" }, - "Default_action_config_Input": { + "Default_Action_Config_Search_Input": { "type": "object", "properties": { "visibility": { @@ -10854,7 +10795,7 @@ } } }, - "Action_detailsInput": { + "Action_Details_Input": { "type": "object", "properties": { "CALLBACK": { @@ -10866,16 +10807,16 @@ "description": "URL Custom Action Type" } }, - "description": "Action details includes Type and Configuration for Custom Actions" + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required." }, - "Associate_metadataListItemInput": { + "Associate_Metadata_Input": { "type": "object", "required": [ "identifier" ], "properties": { "action_config": { - "$ref": "#/components/schemas/Action_config_Input", + "$ref": "#/components/schemas/ActionConfigInput", "description": "Specify that the association is enabled for the metadata object" }, "identifier": { @@ -10884,10 +10825,25 @@ }, "type": { "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], "description": "Type of metadata." } } }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, "FavoriteMetadataItem": { "type": "object", "required": [ @@ -10921,20 +10877,6 @@ } } }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The object representation with ID and Name." - }, "ImportUserType": { "type": "object", "required": [ @@ -11187,7 +11129,7 @@ }, "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." }, - "Metadata_associationListItem": { + "Metadata_Association_Item": { "type": "object", "required": [ "action_config", @@ -11211,6 +11153,9 @@ }, "CALLBACKInput": { "type": "object", + "required": [ + "reference" + ], "properties": { "reference": { "type": "string", @@ -11539,16 +11484,21 @@ } } }, - "Action_config_Input": { + "ActionConfigInput": { "type": "object", "properties": { "position": { "type": "string", + "enum": [ + "CONTEXT_MENU", + "PRIMARY", + "MENU" + ], "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled\nDefault: true" } }, "description": "Specify that the association is enabled for the metadata object" From c53a6990824f30787cfc8f5e6acadc5f50df2012 Mon Sep 17 00:00:00 2001 From: RijadR Date: Tue, 20 Jun 2023 17:31:31 +0530 Subject: [PATCH 027/410] Update openapiSpecv3-2_0.json updated custom-action api updated documentation for the apis --- api-spec/openapiSpecv3-2_0.json | 2393 ++++++++++--------------------- 1 file changed, 754 insertions(+), 1639 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index bce889550..656972114 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8,34 +8,32 @@ { "name": "9.0.0.cl", "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], + "tags": ["9.0.0.cl"], "description": "Roles for version 9.0.0.cl" }, { "name": "9.2.0.cl", "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], + "tags": ["9.2.0.cl"], "description": "Roles for version 9.2.0.cl" }, { "name": "9.5.0.cl", "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], + "tags": ["9.5.0.cl"], "description": "Roles for version 9.5.0.cl" }, { "name": "9.4.0.cl", "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], + "tags": ["9.4.0.cl"], "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": ["9.6.0.cl"], + "description": "Roles for version 9.6.0.cl" } ], "tags": [], @@ -43,11 +41,8 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\nGet session information for the currently logged-in user.\n\nAll users can view their session information. The API response varies according to user's access permissions and group privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Authentication", "9.0.0.cl"], "parameters": [], "responses": { "200": { @@ -106,11 +101,8 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", - "tags": [ - "Authentication", - "9.4.0.cl" - ], + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Authentication", "9.4.0.cl"], "parameters": [], "responses": { "200": { @@ -169,11 +161,8 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets user details.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, user preference settings, user’s favorite objects, or home Liveboard setting.\n\nAvailable to all users. Users with `ADMINISTRATION` (Can administer ThoughtSpot) privileges can view all users properties.\n\n**Note**: If you are querying users by Org, user privileges may show null values in the API response.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -182,35 +171,27 @@ "properties": { "user_identifier": { "description": "GUID / name of the user to search", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "A unique display name string for the user account, usually their first and last name", - "type": "string", - "deprecated": false + "type": "string" }, "visibility": { "description": "Visibility of the user.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "deprecated": false + "enum": ["SHARABLE", "NON_SHARABLE"] }, "email": { "description": "Email of the user account", - "type": "string", - "deprecated": false + "type": "string" }, "group_identifiers": { "description": "GUID or name of the group to which the user belongs.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "privileges": { "description": "Privileges assigned to the user.", @@ -240,8 +221,7 @@ "LIVEBOARD_VERIFIER", "PREVIEW_THOUGHTSPOT_SAGE" ] - }, - "deprecated": false + } }, "account_type": { "description": "Type of the account.", @@ -252,8 +232,7 @@ "SAML_USER", "OIDC_USER", "REMOTE_USER" - ], - "deprecated": false + ] }, "account_status": { "description": "Current status of the user account.", @@ -264,25 +243,21 @@ "EXPIRED", "LOCKED", "PENDING" - ], - "deprecated": false + ] }, "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", "type": "boolean", - "deprecated": false, "nullable": true }, "show_onboarding_experience": { "description": "The user preference for revisiting the onboarding experience.", "type": "boolean", - "deprecated": false, "nullable": true }, "onboarding_experience_completed": { "description": "Indicates if the user has completed the onboarding walkthrough.", "type": "boolean", - "deprecated": false, "nullable": true }, "org_identifiers": { @@ -290,54 +265,46 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "home_liveboard_identifier": { "description": "Unique ID or name of the users home liveboard.", - "type": "string", - "deprecated": false + "type": "string" }, "favorite_metadata": { "description": "Metadata objects which are assigned as favorites of the user.", "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "deprecated": false + } }, "record_offset": { "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records that should be included.", "default": 10, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions", - "deprecated": false + "$ref": "#/components/schemas/SortOptions" }, "role_identifiers": { "description": "Filter with list of role assigned to the user.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "include_favorite_metadata": { "description": "Indicates if the user's favorite objects should be displayed.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } } @@ -406,11 +373,8 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": "Get system details
Version: 9.0.0.cl or later", - "tags": [ - "System", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": ["System", "9.0.0.cl"], "parameters": [], "responses": { "200": { @@ -498,11 +462,8 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": "Get system config information
Version: 9.0.0.cl or later", - "tags": [ - "System", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["System", "9.0.0.cl"], "parameters": [], "responses": { "200": { @@ -568,11 +529,8 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": "Get cluster override info.
Version: 9.2.0.cl or later", - "tags": [ - "System", - "9.2.0.cl" - ], + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": ["System", "9.2.0.cl"], "parameters": [], "responses": { "200": { @@ -631,11 +589,8 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": "Gets Orgs configured on a ThoughtSpot instance. Requires cluster administration privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Orgs", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -644,39 +599,28 @@ "properties": { "org_identifier": { "description": "ID or name of the Org.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the Org.", - "type": "string", - "deprecated": false + "type": "string" }, "visibility": { "description": "Visibility of the Org.", "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "deprecated": false + "enum": ["SHOW", "HIDDEN"] }, "status": { "description": "Status of the Org.", "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "deprecated": false + "enum": ["ACTIVE", "IN_ACTIVE"] }, "user_identifiers": { "description": "GUIDs or names of the users for which you want to retrieve the Orgs data.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } } } @@ -764,11 +708,8 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": "Allows searching tags.
Version: 9.0.0.cl or later", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -777,13 +718,11 @@ "properties": { "tag_identifier": { "description": "Name or Id of the tag.", - "type": "string", - "deprecated": false + "type": "string" }, "color": { "description": "Color of the tag.", - "type": "string", - "deprecated": false + "type": "string" } } } @@ -885,11 +824,8 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "Allows searching groups. Requires administrator privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -901,31 +837,26 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "description": { "description": "Description of the group.", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "Display name of the group", - "type": "string", - "deprecated": false + "type": "string" }, "group_identifier": { "description": "GUID or name of the group", - "type": "string", - "deprecated": false + "type": "string" }, "org_identifiers": { "description": "ID or name of the Org to which the group belongs.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "privileges": { "description": "Privileges assigned to the group.", @@ -955,69 +886,54 @@ "LIVEBOARD_VERIFIER", "PREVIEW_THOUGHTSPOT_SAGE" ] - }, - "deprecated": false + } }, "sub_group_identifiers": { "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "type": { "description": "Group type.", "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "deprecated": false + "enum": ["LOCAL_GROUP", "LDAP_GROUP"] }, "user_identifiers": { "description": "GUID or name of the users assigned to the group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "visibility": { "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "deprecated": false + "enum": ["SHARABLE", "NON_SHARABLE"] }, "role_identifiers": { "description": "Filter groups with a list of roles assigned to a group", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "record_offset": { "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records that should be included.", "default": 10, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "sort_options": { "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions", - "deprecated": false + "$ref": "#/components/schemas/SortOptions" } } } @@ -1085,11 +1001,8 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "Allows searching for metadata objects. You can search for metadata objects\nsuch as Liveboard, Answer. Requires at least view access to the metadata object.
Version: 9.0.0.cl or later", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1101,101 +1014,84 @@ "type": "array", "items": { "$ref": "#/components/schemas/MetadataListItemInput" - }, - "deprecated": false + } }, "permissions": { "description": "Object permission details to search by.", "type": "array", "items": { "$ref": "#/components/schemas/PermissionInput" - }, - "deprecated": false + } }, "created_by_user_identifiers": { "description": "GUID or name of user who created the metadata object.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "dependent_object_version": { "description": "Version of the dependent table of the metadata like worksheets.", "default": "V1", "type": "string", - "enum": [ - "V1", - "V2" - ], - "deprecated": false + "enum": ["V1", "V2"] }, "exclude_objects": { "description": "List of metadata objects to exclude from search.", "type": "array", "items": { "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - }, - "deprecated": false + } }, "favorite_object_options": { "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" }, "include_auto_created_objects": { "description": "Includes system-generated metadata objects.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "include_dependent_objects": { "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "include_details": { "description": "Includes complete details of the metadata objects.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "include_headers": { "description": "Includes headers of the metadata objects.", "default": true, "type": "boolean", - "deprecated": false, "nullable": true }, "include_hidden_objects": { "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "include_incomplete_objects": { "description": "Includes objects with incomplete metadata.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "include_visualization_headers": { "description": "Includes visualization headers of the specified Liveboard object.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "include_worksheet_search_assist_data": { "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", "type": "boolean", - "deprecated": false, "nullable": true }, "modified_by_user_identifiers": { @@ -1203,41 +1099,35 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "record_offset": { "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records that should be included.", "default": 10, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "sort_options": { "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions", - "deprecated": false + "$ref": "#/components/schemas/MetadataSearchSortOptions" }, "tag_identifiers": { "description": "Tags to filter metadata objects by", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "include_stats": { "description": "Indicates whether to include stats of the metadata objects.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } } @@ -1306,11 +1196,8 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": "Fetches SQL query data for Liveboard and its visualizations.
Version: 9.0.0.cl or later", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1319,21 +1206,17 @@ "properties": { "metadata_identifier": { "description": "ID or name of an Liveboard.", - "type": "string", - "deprecated": false + "type": "string" }, "visualization_identifiers": { "description": "Unique ID or name of visualizations.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1397,11 +1280,8 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": "Fetches SQL query data for an Answer.
Version: 9.0.0.cl or later", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1410,13 +1290,10 @@ "properties": { "metadata_identifier": { "description": "ID or name of an Answer.", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1480,11 +1357,8 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "Exports Liveboard and visualization data in PDF, PNG, XLS, or CSV format.\nRequires at least view access to the Liveboard.
Version: 9.0.0.cl or later", - "tags": [ - "Reports", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Reports", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1493,63 +1367,47 @@ "properties": { "metadata_identifier": { "description": "GUID or name of the Liveboard object.", - "type": "string", - "deprecated": false + "type": "string" }, "visualization_identifiers": { "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "transient_content": { "description": "Transient content of the Liveboard.", - "type": "string", - "deprecated": false + "type": "string" }, "file_format": { "description": "Export file format.", "default": "CSV", "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ], - "deprecated": false + "enum": ["CSV", "PDF", "XLSX", "PNG"] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:'region', op1: 'EQ', val1: 'northeast' }", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_sort": { "description": "JSON string representing runtime sort.\n{ sortCol1: 'region', asc1 : true, sortCol2 : 'date' }", - "type": "object", - "deprecated": false + "type": "object" }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/PdfOptionsInput" }, "png_options": { "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/PngOptionsInput" }, "runtime_param_override": { "description": "JSON object for setting values of parameters in runtime.", - "type": "object", - "deprecated": false + "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1613,11 +1471,8 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "Export report file for Answer data.
Version: 9.0.0.cl or later", - "tags": [ - "Reports", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Reports", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1626,40 +1481,28 @@ "properties": { "metadata_identifier": { "description": "Unique ID or name of the metadata.", - "type": "string", - "deprecated": false + "type": "string" }, "file_format": { "description": "Export file format.", "default": "CSV", "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ], - "deprecated": false + "enum": ["CSV", "PDF", "XLSX", "PNG"] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_sort": { "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_param_override": { "description": "JSON object for setting values of parameters in runtime.", - "type": "object", - "deprecated": false + "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1723,11 +1566,8 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": "Fetch permission details for principal objects, such as users and groups.
Version: 9.0.0.cl or later", - "tags": [ - "Security", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1739,21 +1579,17 @@ "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" - }, - "deprecated": false + } }, "metadata": { "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", "type": "array", "items": { "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - }, - "deprecated": false + } } }, - "required": [ - "principals" - ] + "required": ["principals"] } } }, @@ -1861,11 +1697,8 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": "Fetch permission details for metadata objects
Version: 9.0.0.cl or later", - "tags": [ - "Security", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1877,28 +1710,23 @@ "type": "array", "items": { "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - }, - "deprecated": false + } }, "principals": { "description": "Principal objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" - }, - "deprecated": false + } }, "include_dependent_objects": { "description": "Indicates whether to fetch permissions of depedent metadata objects.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } }, - "required": [ - "metadata" - ] + "required": ["metadata"] } } }, @@ -2027,11 +1855,8 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "Allows passing a search query string and retrieving data from ThoughtSpot.
Version: 9.0.0.cl or later", - "tags": [ - "Data", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Data", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -2040,57 +1865,44 @@ "properties": { "query_string": { "description": "Data search query string token.", - "type": "string", - "deprecated": false + "type": "string" }, "logical_table_identifier": { "description": "GUID of the data source object, such as a worksheet, view, or table.", - "type": "string", - "deprecated": false + "type": "string" }, "data_format": { "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": [ - "COMPACT" - ], - "deprecated": false + "enum": ["COMPACT"] }, "record_offset": { "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records to include in a batch.", "default": 10, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "runtime_filter": { "description": "JSON object representing filter condition to filter the data.", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_sort": { "description": "JSON object representing columns to sort the data.", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_param_override": { "description": "JSON object for setting values of parameters in runtime.", - "type": "object", - "deprecated": false + "type": "object" } }, - "required": [ - "query_string", - "logical_table_identifier" - ] + "required": ["query_string", "logical_table_identifier"] } } }, @@ -2154,11 +1966,8 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "Fetches Liveboard data. Requires at least view access to the Liveboard.
Version: 9.0.0.cl or later", - "tags": [ - "Data", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Data", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -2167,64 +1976,51 @@ "properties": { "metadata_identifier": { "description": "GUID or name of the Liveboard.", - "type": "string", - "deprecated": false + "type": "string" }, "visualization_identifiers": { "description": "GUIDs or names of the visualizations on the Liveboard.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "transient_content": { "description": "Transient content of the Liveboard.", - "type": "string", - "deprecated": false + "type": "string" }, "data_format": { "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": [ - "COMPACT" - ], - "deprecated": false + "enum": ["COMPACT"] }, "record_offset": { "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records to include in a batch.", "default": 10, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "runtime_filter": { "description": "JSON object representing filter condition to filter the data.", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_sort": { "description": "JSON object representing columns to sort the data.", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_param_override": { "description": "JSON object for setting values of parameters in runtime.", - "type": "object", - "deprecated": false + "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -2288,11 +2084,8 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "Fetches data from a saved Answer. Requires at least view access to the Answer object.
Version: 9.0.0.cl or later", - "tags": [ - "Data", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Data", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -2301,51 +2094,40 @@ "properties": { "metadata_identifier": { "description": "GUID or name of the Answer.", - "type": "string", - "deprecated": false + "type": "string" }, "data_format": { "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": [ - "COMPACT" - ], - "deprecated": false + "enum": ["COMPACT"] }, "record_offset": { "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records to include in a batch.", "default": 10, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "runtime_filter": { "description": "JSON object representing filter condition to filter the data.", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_sort": { "description": "JSON object representing columns to sort the data.", - "type": "object", - "deprecated": false + "type": "object" }, "runtime_param_override": { "description": "JSON object for setting values of parameters in runtime.", - "type": "object", - "deprecated": false + "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -2409,11 +2191,8 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "Fetches security audit logs. Requires administrator privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Log", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Log", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -2423,27 +2202,20 @@ "log_type": { "description": "Name of the log type.", "type": "string", - "enum": [ - "SECURITY_AUDIT" - ], - "deprecated": false + "enum": ["SECURITY_AUDIT"] }, "start_epoch_time_in_millis": { "description": "Start time in EPOCH format", "type": "number", - "format": "float", - "deprecated": false + "format": "float" }, "end_epoch_time_in_millis": { "description": "End time in EPOCH format", "type": "number", - "format": "float", - "deprecated": false + "format": "float" } }, - "required": [ - "log_type" - ] + "required": ["log_type"] } } }, @@ -2510,10 +2282,8 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "Search existing Git configurations in the current cluster", - "tags": [ - "Version Control" - ], + "description": "\n\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -2525,8 +2295,7 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } } } @@ -2594,10 +2363,8 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "List the commit history of a metadata object", - "tags": [ - "Version Control" - ], + "description": "\n\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -2606,40 +2373,29 @@ "properties": { "metadata_identifier": { "description": "Unique ID or name of the metadata.", - "type": "string", - "deprecated": false + "type": "string" }, "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "deprecated": false + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] }, "branch_name": { "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string", - "deprecated": false + "type": "string" }, "record_offset": { "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -2706,11 +2462,8 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "Search connection objects. Requires DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects configured on the ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n* To get a list of all connection objects available in the ThoughtSpot system, send a `POST` request with no attributes in the request body.\n* To get the connection objects created for a specific type of data warehouse, set the type in `data_warehouse_types`.\n* To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n* To get details of the database, schemas, tables, or columns from a data connection object, specify the `data_warehouse_object_type` attribute.\n* To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. \nNote that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n* To include more details about connection objects in the API response, set `include_details` to `true`.\n* You can also sort the output by field names and filter connections by tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -2722,8 +2475,7 @@ "type": "array", "items": { "$ref": "#/components/schemas/ConnectionInput" - }, - "deprecated": false + } }, "data_warehouse_types": { "description": "Array of types of data warehouse defined for the connection.", @@ -2745,69 +2497,50 @@ "TRINO", "PRESTO" ] - }, - "deprecated": false + } }, "record_offset": { "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records that should be included.", "default": 10, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "tag_identifiers": { "description": "Unique ID or name of tags.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "data_warehouse_object_type": { "description": "Data warehouse object type.", "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ], - "deprecated": false + "enum": ["DATABASE", "SCHEMA", "TABLE", "COLUMN"] }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput", - "deprecated": false + "$ref": "#/components/schemas/SortOptionInput" }, "include_details": { "description": "Indicates whether to include complete details of the connection objects.", "type": "boolean", - "deprecated": false, "nullable": true }, "configuration": { "description": "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.", - "type": "object", - "deprecated": false + "type": "object" }, "authentication_type": { "description": "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.", "default": "SERVICE_ACCOUNT", "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ], - "deprecated": false + "enum": ["SERVICE_ACCOUNT", "OAUTH", "IAM", "EXTOAUTH"] } } } @@ -2876,10 +2609,7 @@ "post": { "operationId": "searchRoles", "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "requestBody": { "content": { "application/json": { @@ -2891,24 +2621,21 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "org_identifiers": { "description": "Unique Id or name of the Organisation", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "group_identifiers": { "description": "Unique Id or name of the User Group", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "privileges": { "description": "Privileges assigned to the Role.", @@ -2948,25 +2675,21 @@ "BILLING_INFO_ADMINISTRATION", "PREVIEW_THOUGHTSPOT_SAGE" ] - }, - "deprecated": false + } }, "deprecated": { "description": "Indicates whether the role is deprecated.", "type": "boolean", - "deprecated": false, "nullable": true }, "external": { "description": "Indicates whether the Role is external", "type": "boolean", - "deprecated": false, "nullable": true }, "shared_via_connection": { "description": "Indicates whether the role is shared via connection", "type": "boolean", - "deprecated": false, "nullable": true }, "permissions": { @@ -2974,13 +2697,8 @@ "type": "array", "items": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": false + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"] + } } } } @@ -3048,11 +2766,8 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": "Search custom actions\n\nEquivalent to POST /customization/custom-actions/search
Version: 9.5.0.cl or later", - "tags": [ - "Custom Action", - "9.5.0.cl" - ], + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Custom Action", "9.6.0.cl"], "requestBody": { "content": { "application/json": { @@ -3061,24 +2776,22 @@ "properties": { "custom_action_identifier": { "description": "Name or Id of the custom action.", - "type": "string", - "deprecated": false + "type": "string" }, "default_action_config": { "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input", - "deprecated": false + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" }, "include_group_associations": { "description": "When set to true, returns associated groups for custom action.", + "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "include_metadata_associations": { "description": "When set to true, returns associated metadata for custom action.", + "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "metadata": { @@ -3086,13 +2799,11 @@ "type": "array", "items": { "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - }, - "deprecated": false + } }, "type": { "description": "Filter the action objects based on type", - "$ref": "#/components/schemas/TypeInput", - "deprecated": false + "$ref": "#/components/schemas/TypeInput" } } } @@ -3110,6 +2821,24 @@ "items": { "$ref": "#/components/schemas/ResponseCustomAction" } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } } } } @@ -3160,11 +2889,8 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a login session for a ThoughtSpot user with basic authentication. In the basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes.\n\nA successful login returns a session cookie that can be used in your subsequent API calls.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3173,24 +2899,20 @@ "properties": { "username": { "description": "Username of the user account", - "type": "string", - "deprecated": false + "type": "string" }, "password": { "description": "The password of the user account", - "type": "string", - "deprecated": false + "type": "string" }, "org_identifier": { "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", - "type": "string", - "deprecated": false + "type": "string" }, "remember_me": { "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } } @@ -3249,11 +2971,8 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot is valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3262,55 +2981,46 @@ "properties": { "username": { "description": "Username of the user account", - "type": "string", - "deprecated": false + "type": "string" }, "object_id": { "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false + "type": "string" }, "password": { "description": "The password of the user account", "default": "", - "type": "string", - "deprecated": false + "type": "string" }, "secret_key": { "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", "default": "", - "type": "string", - "deprecated": false + "type": "string" }, "validity_time_in_sec": { "description": "Duration in seconds after which the token expires", "default": 300, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "org_id": { "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "email": { "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string", - "deprecated": false + "type": "string" }, "auto_create": { "description": "“Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT) \n\n\nNote: This is only available for clusters with trusted authentication enabled. ", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "group_identifiers": { @@ -3318,14 +3028,10 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } }, - "required": [ - "username", - "object_id" - ] + "required": ["username", "object_id"] } } }, @@ -3390,11 +3096,8 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets authentication token that provides full access to ThoughtSpot application. By default, the token obtained remains valid for 5 mins.\n\nYou can generate the token for a user by providing `username` and `password` (Basic authentication), or by using the cluster’s secret key (Trusted authentication). To generate a `secret_key` on your cluster, 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).\n\nWhen both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n- `auto_create`\n- `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is only available for clusters with trusted authentication enabled.\n\nTo provision a new user, you need `ADMINISTRATION` (Can administer ThoughtSpot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3403,50 +3106,42 @@ "properties": { "username": { "description": "Username of the user account", - "type": "string", - "deprecated": false + "type": "string" }, "password": { "description": "The password of the user account", "default": "", - "type": "string", - "deprecated": false + "type": "string" }, "secret_key": { "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", "default": "", - "type": "string", - "deprecated": false + "type": "string" }, "validity_time_in_sec": { "description": "Duration in seconds after which the token expires", "default": 300, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "org_id": { "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "email": { "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string", - "deprecated": false + "type": "string" }, "auto_create": { "description": " Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT). \n\nNote: This is only available for clusters with trusted authentication enabled.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "group_identifiers": { @@ -3454,13 +3149,10 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } }, - "required": [ - "username" - ] + "required": ["username"] } } }, @@ -3525,11 +3217,8 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\nLogs a user out of their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Authentication", "9.0.0.cl"], "parameters": [], "responses": { "204": { @@ -3581,11 +3270,8 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo start the session, request for a new token from ThoughtSpot. See [Get Object Access Token](/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3593,12 +3279,10 @@ "type": "object", "properties": { "user_identifier": { - "type": "string", - "deprecated": false + "type": "string" }, "token": { - "type": "string", - "deprecated": false + "type": "string" } } } @@ -3656,11 +3340,8 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot. The API endpoint also allows you to add user properties such as email address, account status, share notification preferences, and sharing visibility. You can also assign the user to groups and Orgs, and set favorite objects.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3669,23 +3350,19 @@ "properties": { "name": { "description": "Name of the user. The username string must be unique.", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "A unique display name string for the user account, usually their first and last name", - "type": "string", - "deprecated": false + "type": "string" }, "password": { "description": "Password for the user account.", - "type": "string", - "deprecated": false + "type": "string" }, "email": { "description": "Email of the user account", - "type": "string", - "deprecated": false + "type": "string" }, "account_type": { "description": "Type of the account.", @@ -3697,8 +3374,7 @@ "SAML_USER", "OIDC_USER", "REMOTE_USER" - ], - "deprecated": false + ] }, "account_status": { "description": "Current status of the user account.", @@ -3710,76 +3386,59 @@ "EXPIRED", "LOCKED", "PENDING" - ], - "deprecated": false + ] }, "org_identifiers": { "description": "List of Org IDs to which the user belongs.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "group_identifiers": { "description": "GUIDs or names of the groups to which the newly created user belongs.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "visibility": { "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "default": "SHARABLE", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "deprecated": false + "enum": ["SHARABLE", "NON_SHARABLE"] }, "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", "default": true, "type": "boolean", - "deprecated": false, "nullable": true }, "show_onboarding_experience": { "description": "The user preference for revisiting the onboarding experience.", "default": true, "type": "boolean", - "deprecated": false, "nullable": true }, "onboarding_experience_completed": { "description": "flag to get the on-boarding experience is completed or not.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "home_liveboard_identifier": { "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string", - "deprecated": false + "type": "string" }, "favorite_metadata": { "description": "Metadata objects to add to the user's favorites list.", "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "deprecated": false + } } }, - "required": [ - "name", - "display_name", - "password", - "email" - ] + "required": ["name", "display_name", "password", "email"] } } }, @@ -3843,11 +3502,8 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates properties of a user object. You can modify username, reset password, assign groups or remove the user from a group, and modify user preferences.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3856,27 +3512,20 @@ "properties": { "name": { "description": "Name of the user. The username string must be unique.", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "A unique display name string for the user account, usually their first and last name", - "type": "string", - "deprecated": false + "type": "string" }, "visibility": { "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "deprecated": false + "enum": ["SHARABLE", "NON_SHARABLE"] }, "email": { "description": "Email of the user account", - "type": "string", - "deprecated": false + "type": "string" }, "account_status": { "description": "Current status of the user account.", @@ -3887,25 +3536,21 @@ "EXPIRED", "LOCKED", "PENDING" - ], - "deprecated": false + ] }, "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", "type": "boolean", - "deprecated": false, "nullable": true }, "show_onboarding_experience": { "description": "The user preference for revisiting the onboarding experience.", "type": "boolean", - "deprecated": false, "nullable": true }, "onboarding_experience_completed": { "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", "type": "boolean", - "deprecated": false, "nullable": true }, "account_type": { @@ -3917,48 +3562,38 @@ "SAML_USER", "OIDC_USER", "REMOTE_USER" - ], - "deprecated": false + ] }, "group_identifiers": { "description": "GUIDs or names of the groups.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "home_liveboard_identifier": { "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string", - "deprecated": false + "type": "string" }, "favorite_metadata": { "description": "Metadata objects to add to the user's favorites list.", "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "deprecated": false + } }, "org_identifiers": { "description": "IDs of the Orgs.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "operation": { "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ], - "deprecated": false + "enum": ["ADD", "REMOVE", "REPLACE"] } } } @@ -3973,8 +3608,7 @@ "schema": { "type": "string" }, - "description": "GUID / name of the user", - "deprecated": false + "description": "GUID / name of the user" } ], "responses": { @@ -4027,11 +3661,8 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf you want to remove a user from a specific Org, 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -4040,8 +3671,7 @@ "schema": { "type": "string" }, - "description": "GUID / name of the user", - "deprecated": false + "description": "GUID / name of the user" } ], "responses": { @@ -4094,11 +3724,8 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": "Imports user data from external databases to ThoughtSpot.
Version: 9.0.0.cl or later", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4110,32 +3737,26 @@ "type": "array", "items": { "$ref": "#/components/schemas/ImportUser" - }, - "deprecated": false + } }, "default_password": { "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string", - "deprecated": false + "type": "string" }, "dry_run": { "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", "default": true, "type": "boolean", - "deprecated": false, "nullable": true }, "delete_unspecified_users": { "description": "If set to true, removes the users that are not specified in the API request.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } }, - "required": [ - "users" - ] + "required": ["users"] } } }, @@ -4199,11 +3820,8 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of a ThoughtSpot user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4212,18 +3830,15 @@ "properties": { "current_password": { "description": "Current password of the user.", - "type": "string", - "deprecated": false + "type": "string" }, "new_password": { "description": "New password for the user.", - "type": "string", - "deprecated": false + "type": "string" }, "user_identifier": { "description": "GUID or name of the user.", - "type": "string", - "deprecated": false + "type": "string" } }, "required": [ @@ -4287,11 +3902,8 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4300,19 +3912,14 @@ "properties": { "new_password": { "description": "New password for the user.", - "type": "string", - "deprecated": false + "type": "string" }, "user_identifier": { "description": "GUID or name of the user.", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "new_password", - "user_identifier" - ] + "required": ["new_password", "user_identifier"] } } }, @@ -4369,11 +3976,8 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nForces logout on user sessions. Note the following points. This API operation makes a user session invalid and forces the user to re-login.\n\n- Use this API with caution as it may invalidate active user sessions and force users to re-login.\n\n- 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.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4385,8 +3989,7 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } } } @@ -4444,11 +4047,8 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": "Update cluster configuration
Version: 9.2.0.cl or later", - "tags": [ - "System", - "9.2.0.cl" - ], + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["System", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -4457,13 +4057,10 @@ "properties": { "configuration": { "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object", - "deprecated": false + "type": "object" } }, - "required": [ - "configuration" - ] + "required": ["configuration"] } } }, @@ -4520,11 +4117,8 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": "Creates an Org. Requires cluster administration privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Orgs", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4533,18 +4127,14 @@ "properties": { "name": { "description": "Name of the Org.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the Org.", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -4619,11 +4209,8 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": "Updates an Org. Requires cluster administration privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Orgs", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4632,32 +4219,24 @@ "properties": { "name": { "description": "Name of the Org.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the Org.", - "type": "string", - "deprecated": false + "type": "string" }, "user_identifiers": { "description": "Add Users to an Org.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "operation": { "description": "Type of update operation. Default operation type is ADD", "default": "ADD", "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ], - "deprecated": false + "enum": ["ADD", "REMOVE", "REPLACE"] } } } @@ -4672,8 +4251,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org.", - "deprecated": false + "description": "ID or name of the Org." } ], "responses": { @@ -4726,11 +4304,8 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": "Deletes an Org. Requires cluster administration privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Orgs", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -4739,8 +4314,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org.", - "deprecated": false + "description": "ID or name of the Org." } ], "responses": { @@ -4793,11 +4367,8 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "Creates a Tag. Requires administrator privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4806,18 +4377,14 @@ "properties": { "name": { "description": "Name of the tag.", - "type": "string", - "deprecated": false + "type": "string" }, "color": { "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -4899,11 +4466,8 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "Updates a Tag. Requires administrator privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4912,13 +4476,11 @@ "properties": { "name": { "description": "Name of the tag.", - "type": "string", - "deprecated": false + "type": "string" }, "color": { "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string", - "deprecated": false + "type": "string" } } } @@ -4933,8 +4495,7 @@ "schema": { "type": "string" }, - "description": "Name or Id of the tag.", - "deprecated": false + "description": "Name or Id of the tag." } ], "responses": { @@ -4987,11 +4548,8 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "Deletes a tag. Requires administrator privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Tags", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -5000,8 +4558,7 @@ "schema": { "type": "string" }, - "description": "Tag identifier Tag name or Tag id.", - "deprecated": false + "description": "Tag identifier Tag name or Tag id." } ], "responses": { @@ -5054,11 +4611,8 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": "Assigns a tag to a metadata object.
Version: 9.0.0.cl or later", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5070,22 +4624,17 @@ "type": "array", "items": { "$ref": "#/components/schemas/TagMetadataTypeInput" - }, - "deprecated": false + } }, "tag_identifiers": { "description": "GUID or name of the tag.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } }, - "required": [ - "metadata", - "tag_identifiers" - ] + "required": ["metadata", "tag_identifiers"] } } }, @@ -5142,11 +4691,8 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": "Unassign a tag to a metadata object.
Version: 9.0.0.cl or later", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5158,22 +4704,17 @@ "type": "array", "items": { "$ref": "#/components/schemas/TagMetadataTypeInput" - }, - "deprecated": false + } }, "tag_identifiers": { "description": "GUID or name of the tag.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } }, - "required": [ - "metadata", - "tag_identifiers" - ] + "required": ["metadata", "tag_identifiers"] } } }, @@ -5230,11 +4771,8 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": "Create a group. Requires administrator privilege.
Version: 9.0.0.cl or later", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5243,26 +4781,22 @@ "properties": { "name": { "description": "Name of the group. The group name must be unique.", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "Unique display name for the group.", - "type": "string", - "deprecated": false + "type": "string" }, "default_liveboard_identifiers": { "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "description": { "description": "Description of the group.", - "type": "string", - "deprecated": false + "type": "string" }, "privileges": { "description": "Privileges to assign to the group.", @@ -5292,58 +4826,43 @@ "LIVEBOARD_VERIFIER", "PREVIEW_THOUGHTSPOT_SAGE" ] - }, - "deprecated": false + } }, "sub_group_identifiers": { "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "type": { "description": "Group type.", "default": "LOCAL_GROUP", "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "deprecated": false + "enum": ["LOCAL_GROUP", "LDAP_GROUP"] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "visibility": { "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "default": "SHARABLE", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "deprecated": false + "enum": ["SHARABLE", "NON_SHARABLE"] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } }, - "required": [ - "name", - "display_name" - ] + "required": ["name", "display_name"] } } }, @@ -5407,11 +4926,8 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": "Update group properties.
Version: 9.0.0.cl or later", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5420,26 +4936,22 @@ "properties": { "name": { "description": "Name of the group to modify.", - "type": "string", - "deprecated": false + "type": "string" }, "default_liveboard_identifiers": { "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "description": { "description": "Description for the group.", - "type": "string", - "deprecated": false + "type": "string" }, "display_name": { "description": "Display name of the group.", - "type": "string", - "deprecated": false + "type": "string" }, "privileges": { "description": "Privileges to assign to the group.", @@ -5469,61 +4981,44 @@ "LIVEBOARD_VERIFIER", "PREVIEW_THOUGHTSPOT_SAGE" ] - }, - "deprecated": false + } }, "sub_group_identifiers": { "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "type": { "description": "Type of the user group.", "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "deprecated": false + "enum": ["LOCAL_GROUP", "LDAP_GROUP"] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "visibility": { "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "deprecated": false + "enum": ["SHARABLE", "NON_SHARABLE"] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "operation": { "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ], - "deprecated": false + "enum": ["ADD", "REMOVE", "REPLACE"] } } } @@ -5538,8 +5033,7 @@ "schema": { "type": "string" }, - "description": "GUID or name of the group.", - "deprecated": false + "description": "GUID or name of the group." } ], "responses": { @@ -5592,11 +5086,8 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": "Deletes a group.
Version: 9.0.0.cl or later", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Groups", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -5605,8 +5096,7 @@ "schema": { "type": "string" }, - "description": "GUID or name of the group.", - "deprecated": false + "description": "GUID or name of the group." } ], "responses": { @@ -5659,11 +5149,8 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n- If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. The default_password definition in the API request is optional.\n- If the `delete_unspecified_users` property is set to `true`, users not specified in the API request, excluding `tsadmin`, `guest`, `system` and `su` users, are deleted.\n- If the specified user objects are already available in ThoughtSpot, the object properties of these users are modified and synchronized as per the input data in the API request.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires ADMINISTRATION (Can administer Thoughtspot) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5675,21 +5162,18 @@ "type": "array", "items": { "$ref": "#/components/schemas/GroupsImportListInput" - }, - "deprecated": false + } }, "delete_unspecified_groups": { "description": "If set to true, removes groups that are not specified in the API request.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "dry_run": { "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", "default": true, "type": "boolean", - "deprecated": false, "nullable": true } } @@ -5755,11 +5239,8 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": "Imports TML representation of metadata objects. Requires data management privileges.
Version: 9.0.0.cl or later", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5771,31 +5252,22 @@ "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "import_policy": { "description": "Specifies the import policy for the TML import.", "default": "PARTIAL", "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY" - ], - "deprecated": false + "enum": ["PARTIAL", "ALL_OR_NONE", "VALIDATE_ONLY"] }, "create_new": { "description": "If selected, creates TML objects with new GUIDs.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } }, - "required": [ - "metadata_tmls" - ] + "required": ["metadata_tmls"] } } }, @@ -5862,11 +5334,8 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": "Exports TML representation of metadata objects
Version: 9.0.0.cl or later", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5878,37 +5347,28 @@ "type": "array", "items": { "$ref": "#/components/schemas/ExportMetadataTypeInput" - }, - "deprecated": false + } }, "export_associated": { "description": "Indicates whether to export associated metadata objects of specified metadata objects.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "export_fqn": { "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "edoc_format": { "description": "TML EDOC content format.", - "default": "YAML", + "default": "JSON", "type": "string", - "enum": [ - "JSON", - "YAML" - ], - "deprecated": false + "enum": ["JSON", "YAML"] } }, - "required": [ - "metadata" - ] + "required": ["metadata"] } } }, @@ -5975,11 +5435,8 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": "Deletes metadata objects. Requires edit access to objects.
Version: 9.0.0.cl or later", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5991,20 +5448,16 @@ "type": "array", "items": { "$ref": "#/components/schemas/DeleteMetadataTypeInput" - }, - "deprecated": false + } }, "delete_disabled_objects": { "description": "Indicates whether to delete disabled metadata objects.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } }, - "required": [ - "metadata" - ] + "required": ["metadata"] } } }, @@ -6061,11 +5514,8 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": "Assigns a new author or transfers the ownership of the specified metadata objects.
Version: 9.0.0.cl or later", - "tags": [ - "Security", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -6077,24 +5527,18 @@ "type": "array", "items": { "$ref": "#/components/schemas/AuthorMetadataTypeInput" - }, - "deprecated": false + } }, "user_identifier": { "description": "GUID or name of the user who you want to assign as the author.", - "type": "string", - "deprecated": false + "type": "string" }, "current_owner_identifier": { "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "metadata", - "user_identifier" - ] + "required": ["metadata", "user_identifier"] } } }, @@ -6151,11 +5595,8 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "Share one or several metadata objects with users or groups.\nRequires edit access to metadata objects.
Version: 9.0.0.cl or later", - "tags": [ - "Security", - "9.0.0.cl" - ], + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -6165,55 +5606,44 @@ "metadata_type": { "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "deprecated": false + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] }, "metadata_identifiers": { "description": "Unique ID or name of metadata objects.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "permissions": { "description": "Permission details for sharing the objects.", "type": "array", "items": { "$ref": "#/components/schemas/SharePermissionsInput" - }, - "deprecated": false + } }, "visualization_identifiers": { "description": "Options to specify details of Liveboard.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "emails": { "description": "Email IDs to which notifications will be sent.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "message": { "description": "Message to be included in notification.", - "type": "string", - "deprecated": false + "type": "string" }, "enable_custom_url": { "description": "Sends object URLs in the customized format in email notifications.", "default": false, "type": "boolean", - "deprecated": false, "nullable": true } }, @@ -6280,10 +5710,8 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "Configure local repository to connect to remote repository", - "tags": [ - "Version Control" - ], + "description": "\n\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6292,55 +5720,43 @@ "properties": { "repository_url": { "description": "URL for connecting to remote repository", - "type": "string", - "deprecated": false + "type": "string" }, "username": { "description": "Username to authenticate connection to remote repository", - "type": "string", - "deprecated": false + "type": "string" }, "access_token": { "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string", - "deprecated": false + "type": "string" }, "org_identifier": { "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", - "type": "string", - "deprecated": false + "type": "string" }, "branch_names": { "description": "List the remote branches to configure. Example:[development, production]", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "default_branch_name": { "description": "Name of the default remote branch", - "type": "string", - "deprecated": false + "type": "string" }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "default": false, "type": "boolean", - "deprecated": false, "nullable": true }, "guid_mapping_branch_name": { "description": " Name of the branch where file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "repository_url", - "username", - "access_token" - ] + "required": ["repository_url", "username", "access_token"] } } }, @@ -6404,10 +5820,8 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "Update local repository configuration.", - "tags": [ - "Version Control" - ], + "description": "\n\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6416,42 +5830,35 @@ "properties": { "username": { "description": "Username to authenticate connection to vcs", - "type": "string", - "deprecated": false + "type": "string" }, "access_token": { "description": "Access token corresponding to the user to authenticate connection to vcs", - "type": "string", - "deprecated": false + "type": "string" }, "org_identifier": { "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", - "type": "string", - "deprecated": false + "type": "string" }, "branch_names": { "description": "List the remote branches to configure. Example:[development, production]", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "default_branch_name": { "description": "Name of the default remote branch", - "type": "string", - "deprecated": false + "type": "string" }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", - "deprecated": false, "nullable": true }, "guid_mapping_branch_name": { "description": " Name of the branch where file containing guid mapping should be maintained This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": false + "type": "string" } } } @@ -6516,10 +5923,8 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "Delete local repository configuration", - "tags": [ - "Version Control" - ], + "description": "\n\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6529,7 +5934,6 @@ "cluster_level": { "description": "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", "type": "boolean", - "deprecated": false, "nullable": true } } @@ -6588,10 +5992,8 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "Commit the object from metadata to remote repository", - "tags": [ - "Version Control" - ], + "description": "\n\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6603,24 +6005,18 @@ "type": "array", "items": { "$ref": "#/components/schemas/MetadataObject" - }, - "deprecated": false + } }, "branch_name": { "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", - "type": "string", - "deprecated": false + "type": "string" }, "comment": { "description": "Comment to be added to the commit", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "metadata", - "comment" - ] + "required": ["metadata", "comment"] } } }, @@ -6684,10 +6080,8 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "Revert an object to a specific commit id", - "tags": [ - "Version Control" - ], + "description": "\n\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6699,23 +6093,17 @@ "type": "array", "items": { "$ref": "#/components/schemas/MetadataObject" - }, - "deprecated": false + } }, "branch_name": { "description": " Name of the branch where the reverted version should be comitted\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", - "type": "string", - "deprecated": false + "type": "string" }, "revert_policy": { "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ], - "deprecated": false + "enum": ["ALL_OR_NONE", "PARTIAL"] } } } @@ -6730,8 +6118,7 @@ "schema": { "type": "string" }, - "description": "Commit id to which the object should be reverted", - "deprecated": false + "description": "Commit id to which the object should be reverted" } ], "responses": { @@ -6791,10 +6178,8 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "The Validate Merge endpoint can be run from your target ThoughtSpot organization / cluster to ensure that the changes implemented in the source branch would function in the target ThoughtSpot environment prior to merging a source branch into a target branch.", - "tags": [ - "Version Control" - ], + "description": "\n\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6803,19 +6188,14 @@ "properties": { "source_branch_name": { "description": "Name of the branch from which changes need to be picked for validation", - "type": "string", - "deprecated": false + "type": "string" }, "target_branch_name": { "description": "Name of the branch where files will be merged", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "source_branch_name", - "target_branch_name" - ] + "required": ["source_branch_name", "target_branch_name"] } } }, @@ -6882,10 +6262,8 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "Deploy changes to a Thoughtspot environment from the latest version of a branch or a specific commit point.", - "tags": [ - "Version Control" - ], + "description": "\n\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6894,33 +6272,23 @@ "properties": { "commit_id": { "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string", - "deprecated": false + "type": "string" }, "branch_name": { "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", - "type": "string", - "deprecated": false + "type": "string" }, "deploy_type": { "description": "Indicates if all files or only modified file at specified commit point should be considered", "default": "DELTA", "type": "string", - "enum": [ - "FULL", - "DELTA" - ], - "deprecated": false + "enum": ["FULL", "DELTA"] }, "deploy_policy": { "description": "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.", "default": "ALL_OR_NONE", "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ], - "deprecated": false + "enum": ["ALL_OR_NONE", "PARTIAL"] } } } @@ -6988,11 +6356,8 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "Creates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -7001,13 +6366,11 @@ "properties": { "name": { "description": "Unique name for the connection.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the connection.", - "type": "string", - "deprecated": false + "type": "string" }, "data_warehouse_type": { "description": "Type of the data warehouse.", @@ -7026,19 +6389,16 @@ "DREMIO", "TRINO", "PRESTO" - ], - "deprecated": false + ] }, "data_warehouse_config": { "description": "Configuration of the data warehouse in JSON.", - "type": "object", - "deprecated": false + "type": "object" }, "validate": { "description": "Indicates whether to validate the connection details.", "default": true, "type": "boolean", - "deprecated": false, "nullable": true } }, @@ -7110,11 +6470,8 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "Deletes a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -7123,13 +6480,10 @@ "properties": { "connection_identifier": { "description": "Unique ID or name of the connection.", - "type": "string", - "deprecated": false + "type": "string" } }, - "required": [ - "connection_identifier" - ] + "required": ["connection_identifier"] } } }, @@ -7186,11 +6540,8 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "Updates a connection to a Data WareHouse. Requires ADMINSITRATION or DATAMANAGEMENT privilege.
Version: 9.2.0.cl or later", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -7199,35 +6550,28 @@ "properties": { "connection_identifier": { "description": "Unique ID or name of the connection.", - "type": "string", - "deprecated": false + "type": "string" }, "name": { "description": "Updated name of the connection.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Updated description of the connection.", - "type": "string", - "deprecated": false + "type": "string" }, "data_warehouse_config": { "description": "Configuration of the data warehouse in JSON.", - "type": "object", - "deprecated": false + "type": "object" }, "validate": { "description": "Indicates whether to validate the connection details.", "default": true, "type": "boolean", - "deprecated": false, "nullable": true } }, - "required": [ - "connection_identifier" - ] + "required": ["connection_identifier"] } } }, @@ -7285,10 +6629,7 @@ "post": { "operationId": "createRole", "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "requestBody": { "content": { "application/json": { @@ -7297,13 +6638,11 @@ "properties": { "name": { "description": "Unique name of the role.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the role.", - "type": "string", - "deprecated": false + "type": "string" }, "privileges": { "description": "Privileges granted to the role.", @@ -7331,13 +6670,10 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION" ] - }, - "deprecated": false + } } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -7402,10 +6738,7 @@ "post": { "operationId": "updateRole", "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "requestBody": { "content": { "application/json": { @@ -7414,13 +6747,11 @@ "properties": { "name": { "description": "Name of the Role.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the Role", - "type": "string", - "deprecated": false + "type": "string" }, "privileges": { "description": "Privileges granted to the role.", @@ -7448,13 +6779,10 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION" ] - }, - "deprecated": false + } } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -7468,8 +6796,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the role.", - "deprecated": false + "description": "Unique ID or name of the role." } ], "responses": { @@ -7530,10 +6857,7 @@ "post": { "operationId": "deleteRole", "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "parameters": [ { "in": "path", @@ -7542,8 +6866,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the role.", - "deprecated": false + "description": "Unique ID or name of the role." } ], "responses": { @@ -7597,10 +6920,7 @@ "post": { "operationId": "createSchedule", "description": "Create schedule.
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "requestBody": { "content": { "application/json": { @@ -7609,62 +6929,47 @@ "properties": { "name": { "description": "Name of the scheduled job.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the job.", - "type": "string", - "deprecated": false + "type": "string" }, "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": [ - "LIVEBOARD" - ], - "deprecated": false + "enum": ["LIVEBOARD"] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", - "type": "string", - "deprecated": false + "type": "string" }, "file_format": { "description": "Export file format.", "default": "PDF", "type": "string", - "enum": [ - "CSV", - "PDF" - ], - "deprecated": false + "enum": ["CSV", "PDF"] }, "liveboard_options": { "description": "Options to specify details of liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { "description": "Time zone", "default": "America/Los_Angeles", - "type": "string", - "deprecated": false + "type": "string" }, "frequency": { "description": "Configuration of schedule with cron expression", - "$ref": "#/components/schemas/FrequencyInput", - "deprecated": false + "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { "description": "Recipient configuration which includes emails and recipients of the schedule", - "$ref": "#/components/schemas/RecipientDetailsInput", - "deprecated": false + "$ref": "#/components/schemas/RecipientDetailsInput" } }, "required": [ @@ -7739,10 +7044,7 @@ "post": { "operationId": "deleteSchedule", "description": "Deletes a schedule
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "parameters": [ { "in": "path", @@ -7751,8 +7053,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the schedule.", - "deprecated": false + "description": "Unique ID or name of the schedule." } ], "responses": { @@ -7806,10 +7107,7 @@ "post": { "operationId": "searchSchedules", "description": "Search Schedules
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "requestBody": { "content": { "application/json": { @@ -7821,38 +7119,32 @@ "type": "array", "items": { "$ref": "#/components/schemas/MetadataInput" - }, - "deprecated": false + } }, "record_offset": { "description": "The starting record number from where the records should be included.", "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "record_size": { "description": "The number of records that should be included.", "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions", - "deprecated": false + "$ref": "#/components/schemas/SortingOptions" }, "history_runs_options": { "description": "Options while fetching history runs wrt to the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" }, "schedule_identifiers": { "description": "unique ID or name of the Schedule", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } } } @@ -7921,10 +7213,7 @@ "post": { "operationId": "updateSchedule", "description": "Update schedule.
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "requestBody": { "content": { "application/json": { @@ -7933,69 +7222,50 @@ "properties": { "name": { "description": "Name of the scheduled job.", - "type": "string", - "deprecated": false + "type": "string" }, "description": { "description": "Description of the job.", - "type": "string", - "deprecated": false + "type": "string" }, "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": [ - "LIVEBOARD" - ], - "deprecated": false + "enum": ["LIVEBOARD"] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", - "type": "string", - "deprecated": false + "type": "string" }, "file_format": { "description": "Export file format.", "type": "string", - "enum": [ - "CSV", - "PDF" - ], - "deprecated": false + "enum": ["CSV", "PDF"] }, "liveboard_options": { "description": "Options to specify details of liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput", - "deprecated": false + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { "description": "Time zone", - "type": "string", - "deprecated": false + "type": "string" }, "frequency": { "description": "Configuration of schedule with cron expression", - "$ref": "#/components/schemas/FrequencyInput", - "deprecated": false + "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { "description": "Recipient configuration which includes emails and recipients of the schedule", - "$ref": "#/components/schemas/RecipientDetailsInput", - "deprecated": false + "$ref": "#/components/schemas/RecipientDetailsInput" }, "status": { "description": "Status of the schedule", "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ], - "deprecated": false + "enum": ["ACTIVE", "PAUSE"] } } } @@ -8010,8 +7280,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the schedule.", - "deprecated": false + "description": "Unique ID or name of the schedule." } ], "responses": { @@ -8064,11 +7333,8 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": "Create a custom action\n\nEquivalent to POST /customization/custom-actions
Version: 9.5.0.cl or later", - "tags": [ - "Custom Action", - "9.5.0.cl" - ], + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Custom Action", "9.6.0.cl"], "requestBody": { "content": { "application/json": { @@ -8077,40 +7343,32 @@ "properties": { "name": { "description": "Name of the custom action. The custom action name must be unique.", - "type": "string", - "deprecated": false + "type": "string" }, "action_details": { "description": "Action details includes Type and Configuration for Custom Actions,either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input", - "deprecated": false + "$ref": "#/components/schemas/Action_Details_Input_Create" }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", "type": "array", "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - }, - "deprecated": false + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } }, "default_action_config": { "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", - "$ref": "#/components/schemas/Default_Action_Config_Input", - "deprecated": false + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" }, "group_identifiers": { "description": "Unique ID or name of the User groups who will be associated with the custom action.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } } }, - "required": [ - "name", - "action_details" - ] + "required": ["name", "action_details"] } } }, @@ -8124,6 +7382,24 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } } } } @@ -8174,11 +7450,8 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": "Update a custom action for the current organization.\nEquivalent to PUT /customization/custom-actions/{custom_action_identifier}
Version: 9.5.0.cl or later", - "tags": [ - "Custom Action", - "9.5.0.cl" - ], + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Custom Action", "9.6.0.cl"], "requestBody": { "content": { "application/json": { @@ -8187,34 +7460,35 @@ "properties": { "action_details": { "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input", - "deprecated": false + "$ref": "#/components/schemas/Action_Details_Input" }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", "type": "array", "items": { "$ref": "#/components/schemas/Associate_Metadata_Input" - }, - "deprecated": false + } }, "default_action_config": { "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", - "$ref": "#/components/schemas/Default_Action_Config_Input", - "deprecated": false + "$ref": "#/components/schemas/Default_Action_Config_Input" }, "group_identifiers": { "description": "Unique ID or name of the User groups who will be associated with the custom action.", "type": "array", "items": { "type": "string" - }, - "deprecated": false + } }, "name": { "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", "type": "string", - "deprecated": false + "enum": ["ADD", "REMOVE"] } } } @@ -8229,8 +7503,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the custom action.", - "deprecated": false + "description": "Unique ID or name of the custom action." } ], "responses": { @@ -8283,11 +7556,8 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": "Deletes a custom action from the current organization\n\nEquivalent to DELETE /customization/custom-actions/{custom_action_identifier}
Version: 9.5.0.cl or later", - "tags": [ - "Custom Action", - "9.5.0.cl" - ], + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": ["Custom Action", "9.6.0.cl"], "parameters": [ { "in": "path", @@ -8296,8 +7566,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the Custom action.", - "deprecated": false + "description": "Unique ID or name of the Custom action." } ], "responses": { @@ -8360,12 +7629,7 @@ }, "User": { "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], + "required": ["id", "name", "display_name", "visibility"], "properties": { "id": { "type": "string", @@ -8381,10 +7645,7 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." }, "author_id": { @@ -8429,13 +7690,7 @@ }, "account_status": { "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], + "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], "description": "Status of the user account." }, "email": { @@ -8514,10 +7769,7 @@ }, "parent_type": { "type": "string", - "enum": [ - "USER", - "GROUP" - ], + "enum": ["USER", "GROUP"], "description": "Parent type of the user." }, "privileges": { @@ -8583,22 +7835,14 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], "description": "Type of metadata." } } }, "ImportUser": { "type": "object", - "required": [ - "user_identifier", - "display_name" - ], + "required": ["user_identifier", "display_name"], "properties": { "user_identifier": { "type": "string", @@ -8621,17 +7865,13 @@ "OIDC_USER", "REMOTE_USER" ], + "default": "LOCAL_USER", "description": "Type of the user account." }, "account_status": { "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], + "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], + "default": "ACTIVE", "description": "Status of the user account." }, "email": { @@ -8654,14 +7894,12 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups,\nand thus allows them to share objects." }, "notify_on_share": { "type": "boolean", + "default": true, "description": "User preference for receiving email notifications on shared answers or liveboard." }, "show_onboarding_experience": { @@ -8713,21 +7951,12 @@ "properties": { "field_name": { "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], + "enum": ["NAME", "DISPLAY_NAME", "AUTHOR", "CREATED", "MODIFIED"], "description": "Name of the field to apply the sort on." }, "order": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], + "enum": ["ASC", "DESC"], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -8755,9 +7984,7 @@ }, "MetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", @@ -8783,18 +8010,11 @@ }, "ExportMetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { @@ -8806,9 +8026,7 @@ }, "DeleteMetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", @@ -8830,10 +8048,7 @@ }, "PrincipalsInput": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -8841,28 +8056,18 @@ }, "type": { "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], + "enum": ["USER", "USER_GROUP"], "description": "Principal type." } } }, "AuthorMetadataTypeInput": { "type": "object", - "required": [ - "type", - "identifier" - ], + "required": ["type", "identifier"], "properties": { "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], "description": "Type of metadata." }, "identifier": { @@ -8874,10 +8079,7 @@ }, "PermissionsMetadataTypeInput": { "type": "object", - "required": [ - "type", - "identifier" - ], + "required": ["type", "identifier"], "properties": { "type": { "type": "string", @@ -8899,10 +8101,7 @@ }, "SharePermissionsInput": { "type": "object", - "required": [ - "principal", - "share_mode" - ], + "required": ["principal", "share_mode"], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -8910,20 +8109,14 @@ }, "share_mode": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Object share mode." } } }, "SearchDataResponse": { "type": "object", - "required": [ - "contents" - ], + "required": ["contents"], "properties": { "contents": { "type": "array", @@ -8937,11 +8130,7 @@ }, "AnswerDataResponse": { "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], + "required": ["metadata_id", "metadata_name", "contents"], "properties": { "metadata_id": { "type": "string", @@ -8963,11 +8152,7 @@ }, "LiveboardDataResponse": { "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], + "required": ["metadata_id", "metadata_name", "contents"], "properties": { "metadata_id": { "type": "string", @@ -8988,10 +8173,7 @@ }, "Org": { "type": "object", - "required": [ - "id", - "name" - ], + "required": ["id", "name"], "properties": { "id": { "type": "integer", @@ -9018,18 +8200,11 @@ }, "CustomActionMetadataTypeInput": { "type": "object", - "required": [ - "type", - "identifier" - ], + "required": ["type", "identifier"], "properties": { "type": { "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], + "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], "description": "Type of metadata." }, "identifier": { @@ -9055,10 +8230,7 @@ }, "RiseSetter": { "type": "object", - "required": [ - "field", - "path" - ], + "required": ["field", "path"], "properties": { "field": { "type": "string" @@ -9223,10 +8395,7 @@ }, "status": { "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], + "enum": ["ACTIVE", "IN_ACTIVE"], "description": "Status of the organization." }, "description": { @@ -9235,20 +8404,14 @@ }, "visibility": { "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], + "enum": ["SHOW", "HIDDEN"], "description": "Visibility of the organization." } } }, "Tag": { "type": "object", - "required": [ - "name", - "id" - ], + "required": ["name", "id"], "properties": { "name": { "type": "string" @@ -9292,12 +8455,7 @@ }, "UserGroupResponse": { "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], + "required": ["display_name", "id", "name", "visibility"], "properties": { "author_id": { "type": "string", @@ -9397,10 +8555,7 @@ }, "parent_type": { "type": "string", - "enum": [ - "USER", - "GROUP" - ], + "enum": ["USER", "GROUP"], "description": "Parent type of the user group." }, "privileges": { @@ -9430,10 +8585,7 @@ }, "type": { "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], + "enum": ["LOCAL_GROUP", "LDAP_GROUP"], "description": "Type of the user group." }, "users": { @@ -9445,10 +8597,7 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." }, "roles": { @@ -9462,9 +8611,7 @@ }, "MetadataSearchResponse": { "type": "object", - "required": [ - "metadata_type" - ], + "required": ["metadata_type"], "properties": { "metadata_id": { "type": "string", @@ -9552,10 +8699,7 @@ }, "PermissionInput": { "type": "object", - "required": [ - "principal", - "share_mode" - ], + "required": ["principal", "share_mode"], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -9563,11 +8707,7 @@ }, "share_mode": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Object share mode." } }, @@ -9575,10 +8715,7 @@ }, "ExcludeMetadataListItemInput": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -9606,6 +8743,7 @@ "properties": { "include": { "type": "boolean", + "default": false, "description": "Includes objects marked as favorite for the specified user GUIDs." }, "user_identifiers": { @@ -9637,10 +8775,7 @@ }, "order": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], + "enum": ["ASC", "DESC"], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -9692,30 +8827,33 @@ "properties": { "include_cover_page": { "type": "boolean", + "default": true, "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", + "default": true, "description": "Indicates whether to include customized wide logo in the footer if available." }, "include_filter_page": { "type": "boolean", + "default": true, "description": "Indicates whether to include a page with all applied filters." }, "include_page_number": { "type": "boolean", + "default": true, "description": "Indicates whether to include page number in the footer of each page." }, "page_orientation": { "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], + "enum": ["PORTRAIT", "LANDSCAPE"], + "default": "PORTRAIT", "description": "Page orientation of the PDF." }, "truncate_table": { "type": "boolean", + "default": false, "description": "Indicates whether to include only first page of the tables." }, "page_footer_text": { @@ -9729,20 +8867,19 @@ "properties": { "include_cover_page": { "type": "boolean", + "default": false, "description": "Indicates whether to include cover page with the Liveboard title." }, "include_filter_page": { "type": "boolean", + "default": false, "description": "Indicates whether to include a page with all applied filters." } } }, "LogResponse": { "type": "object", - "required": [ - "date", - "log" - ], + "required": ["date", "log"], "properties": { "date": { "type": "string", @@ -9829,11 +8966,7 @@ }, "SearchConnectionResponse": { "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], + "required": ["id", "name", "data_warehouse_type"], "properties": { "id": { "type": "string", @@ -9917,22 +9050,14 @@ }, "order": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], + "enum": ["ASC", "DESC"], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } } }, "SearchRoleResponse": { "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], + "required": ["id", "name", "description", "privileges"], "properties": { "id": { "type": "string", @@ -10007,11 +9132,7 @@ }, "permission": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Permission details of the Role" }, "author_id": { @@ -10055,12 +9176,7 @@ }, "ResponseCustomAction": { "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], + "required": ["action_details", "default_action_config", "id", "name"], "properties": { "action_details": { "$ref": "#/components/schemas/Action_details", @@ -10160,9 +9276,7 @@ }, "TagMetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", @@ -10170,7 +9284,8 @@ "LIVEBOARD", "ANSWER", "LOGICAL_TABLE", - "LOGICAL_COLUMN" + "LOGICAL_COLUMN", + "CONNECTION" ], "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." }, @@ -10182,11 +9297,7 @@ }, "ImportUserGroupsResponse": { "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], + "required": ["groups_added", "groups_deleted", "groups_updated"], "properties": { "groups_added": { "type": "array", @@ -10213,10 +9324,7 @@ }, "GroupsImportListInput": { "type": "object", - "required": [ - "display_name", - "group_identifier" - ], + "required": ["display_name", "group_identifier"], "properties": { "display_name": { "type": "string", @@ -10276,10 +9384,7 @@ }, "type": { "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], + "enum": ["LOCAL_GROUP", "LDAP_GROUP"], "description": "Type of the user group." }, "user_identifiers": { @@ -10291,10 +9396,7 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." } } @@ -10337,9 +9439,7 @@ }, "MetadataObject": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "identifier": { "type": "string", @@ -10347,11 +9447,7 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], "description": "Type of metadata." } } @@ -10426,11 +9522,7 @@ }, "CreateConnectionResponse": { "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], + "required": ["id", "name", "data_warehouse_type"], "properties": { "id": { "type": "string", @@ -10467,12 +9559,7 @@ }, "RoleResponse": { "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], + "required": ["id", "name", "description", "privileges"], "properties": { "id": { "type": "string", @@ -10535,11 +9622,7 @@ }, "permission": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Permission details of the Role" }, "author_id": { @@ -10656,9 +9739,7 @@ }, "LiveboardOptionsInput": { "type": "object", - "required": [ - "visualization_identifiers" - ], + "required": ["visualization_identifiers"], "properties": { "visualization_identifiers": { "type": "array", @@ -10703,9 +9784,7 @@ }, "page_size": { "type": "string", - "enum": [ - "A4" - ], + "enum": ["A4"], "description": "Page size." }, "truncate_table": { @@ -10717,9 +9796,7 @@ }, "FrequencyInput": { "type": "object", - "required": [ - "cron_expression" - ], + "required": ["cron_expression"], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpressionInput", @@ -10756,9 +9833,7 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD" - ] + "enum": ["LIVEBOARD"] } } }, @@ -10781,20 +9856,67 @@ "properties": { "include_history_runs": { "type": "boolean", + "default": false, "description": "Indicates whether to fetch history runs wrt to the schedule or not." }, "record_size": { "type": "integer", "format": "int32", + "default": 10, "description": "Indicates the max number of records that can be fetched as history runs wrt any scheduled job." }, "record_offset": { "type": "integer", "format": "int32", + "default": 0, "description": "Indicates the starting record number from where history runs records should be fetched." } } }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type" + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required." + }, + "Associate_Metadata_Input_Create": { + "type": "object", + "required": ["identifier"], + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], + "description": "Type of metadata." + } + } + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\n\nDefault: true" + } + }, + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, "Action_Details_Input": { "type": "object", "properties": { @@ -10811,9 +9933,6 @@ }, "Associate_Metadata_Input": { "type": "object", - "required": [ - "identifier" - ], "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInput", @@ -10825,11 +9944,7 @@ }, "type": { "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], + "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], "description": "Type of metadata." } } @@ -10846,11 +9961,7 @@ }, "FavoriteMetadataItem": { "type": "object", - "required": [ - "id", - "name", - "type" - ], + "required": ["id", "name", "type"], "properties": { "id": { "type": "string", @@ -10879,9 +9990,7 @@ }, "ImportUserType": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "id": { "type": "string", @@ -11022,11 +10131,7 @@ }, "SqlQuery": { "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], + "required": ["metadata_id", "metadata_name", "sql_query"], "properties": { "metadata_id": { "type": "string", @@ -11071,9 +10176,7 @@ }, "DataWarehouseObjects": { "type": "object", - "required": [ - "databases" - ], + "required": ["databases"], "properties": { "databases": { "type": "array", @@ -11131,11 +10234,7 @@ }, "Metadata_Association_Item": { "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], + "required": ["action_config", "identifier", "type"], "properties": { "action_config": { "$ref": "#/components/schemas/Action_config", @@ -11153,9 +10252,6 @@ }, "CALLBACKInput": { "type": "object", - "required": [ - "reference" - ], "properties": { "reference": { "type": "string", @@ -11166,9 +10262,6 @@ }, "URLInput": { "type": "object", - "required": [ - "url" - ], "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", @@ -11184,15 +10277,17 @@ "url": { "type": "string", "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" } }, "description": "URL Custom Action Type" }, "Scope": { "type": "object", - "required": [ - "access_type" - ], + "required": ["access_type"], "properties": { "access_type": { "type": "string", @@ -11211,10 +10306,7 @@ }, "CommitFileType": { "type": "object", - "required": [ - "file_name", - "status_code" - ], + "required": ["file_name", "status_code"], "properties": { "file_name": { "type": "string", @@ -11264,10 +10356,7 @@ }, "Author": { "type": "object", - "required": [ - "id", - "name" - ], + "required": ["id", "name"], "properties": { "id": { "type": "string", @@ -11282,9 +10371,7 @@ }, "Frequency": { "type": "object", - "required": [ - "cron_expression" - ], + "required": ["cron_expression"], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpression", @@ -11295,9 +10382,7 @@ }, "LiveboardOptions": { "type": "object", - "required": [ - "visualization_identifiers" - ], + "required": ["visualization_identifiers"], "properties": { "visualization_identifiers": { "type": "array", @@ -11311,10 +10396,7 @@ }, "MetadataResponse": { "type": "object", - "required": [ - "id", - "type" - ], + "required": ["id", "type"], "properties": { "name": { "type": "string" @@ -11324,9 +10406,7 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD" - ] + "enum": ["LIVEBOARD"] } } }, @@ -11363,9 +10443,7 @@ }, "page_size": { "type": "string", - "enum": [ - "A4" - ], + "enum": ["A4"], "description": "Page size." }, "truncate_table": { @@ -11469,10 +10547,7 @@ }, "PrincipalsListItemInput": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -11484,30 +10559,78 @@ } } }, + "CALLBACKInputMandatory": { + "type": "object", + "required": ["reference"], + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { + "type": "object", + "required": ["url"], + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action." + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url." + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" + } + }, + "description": "URL Custom Action Type" + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, "ActionConfigInput": { "type": "object", "properties": { "position": { "type": "string", - "enum": [ - "CONTEXT_MENU", - "PRIMARY", - "MENU" - ], + "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled\nDefault: true" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, - "description": "Specify that the association is enabled for the metadata object" + "description": "Specify that the association is enabled for the metadata object Default" }, "Database": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "name": { "type": "string", @@ -11538,9 +10661,7 @@ }, "URL": { "type": "object", - "required": [ - "url" - ], + "required": ["url"], "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", @@ -11556,6 +10677,10 @@ "url": { "type": "string", "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" } }, "description": "URL Custom Action Type" @@ -11649,10 +10774,7 @@ }, "PrincipalsListItem": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -11666,9 +10788,7 @@ }, "SchemaObject": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "name": { "type": "string", @@ -11748,9 +10868,7 @@ }, "Table": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "name": { "type": "string", @@ -11818,10 +10936,7 @@ }, "Column": { "type": "object", - "required": [ - "name", - "data_type" - ], + "required": ["name", "data_type"], "properties": { "name": { "type": "string", From 94e3185d9175f5ab481d33436a24bd713dce9803 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 21 Jun 2023 09:58:02 +0000 Subject: [PATCH 028/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1188 ++++++++++++++++++++++++------- 1 file changed, 949 insertions(+), 239 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 656972114..2bf8e0cdd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8,31 +8,41 @@ { "name": "9.0.0.cl", "id": "9.0.0.cl", - "tags": ["9.0.0.cl"], + "tags": [ + "9.0.0.cl" + ], "description": "Roles for version 9.0.0.cl" }, { "name": "9.2.0.cl", "id": "9.2.0.cl", - "tags": ["9.2.0.cl"], + "tags": [ + "9.2.0.cl" + ], "description": "Roles for version 9.2.0.cl" }, { "name": "9.5.0.cl", "id": "9.5.0.cl", - "tags": ["9.5.0.cl"], + "tags": [ + "9.5.0.cl" + ], "description": "Roles for version 9.5.0.cl" }, { "name": "9.4.0.cl", "id": "9.4.0.cl", - "tags": ["9.4.0.cl"], + "tags": [ + "9.4.0.cl" + ], "description": "Roles for version 9.4.0.cl" }, { "name": "9.6.0.cl", "id": "9.6.0.cl", - "tags": ["9.6.0.cl"], + "tags": [ + "9.6.0.cl" + ], "description": "Roles for version 9.6.0.cl" } ], @@ -42,7 +52,10 @@ "get": { "operationId": "getCurrentUserInfo", "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "parameters": [], "responses": { "200": { @@ -102,7 +115,10 @@ "get": { "operationId": "getCurrentUserToken", "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.4.0.cl"], + "tags": [ + "Authentication", + "9.4.0.cl" + ], "parameters": [], "responses": { "200": { @@ -162,7 +178,10 @@ "post": { "operationId": "searchUsers", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -180,7 +199,10 @@ "visibility": { "description": "Visibility of the user.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "email": { "description": "Email of the user account", @@ -374,7 +396,10 @@ "get": { "operationId": "getSystemInformation", "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.0.0.cl"], + "tags": [ + "System", + "9.0.0.cl" + ], "parameters": [], "responses": { "200": { @@ -463,7 +488,10 @@ "get": { "operationId": "getSystemConfig", "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.0.0.cl"], + "tags": [ + "System", + "9.0.0.cl" + ], "parameters": [], "responses": { "200": { @@ -530,7 +558,10 @@ "get": { "operationId": "getSystemOverrideInfo", "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.2.0.cl"], + "tags": [ + "System", + "9.2.0.cl" + ], "parameters": [], "responses": { "200": { @@ -590,7 +621,10 @@ "post": { "operationId": "searchOrgs", "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -608,12 +642,18 @@ "visibility": { "description": "Visibility of the Org.", "type": "string", - "enum": ["SHOW", "HIDDEN"] + "enum": [ + "SHOW", + "HIDDEN" + ] }, "status": { "description": "Status of the Org.", "type": "string", - "enum": ["ACTIVE", "IN_ACTIVE"] + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] }, "user_identifiers": { "description": "GUIDs or names of the users for which you want to retrieve the Orgs data.", @@ -709,7 +749,10 @@ "post": { "operationId": "searchTags", "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -825,7 +868,10 @@ "post": { "operationId": "searchUserGroups", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -898,7 +944,10 @@ "type": { "description": "Group type.", "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"] + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, "user_identifiers": { "description": "GUID or name of the users assigned to the group.", @@ -910,7 +959,10 @@ "visibility": { "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "role_identifiers": { "description": "Filter groups with a list of roles assigned to a group", @@ -1002,7 +1054,10 @@ "post": { "operationId": "searchMetadata", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1034,7 +1089,10 @@ "description": "Version of the dependent table of the metadata like worksheets.", "default": "V1", "type": "string", - "enum": ["V1", "V2"] + "enum": [ + "V1", + "V2" + ] }, "exclude_objects": { "description": "List of metadata objects to exclude from search.", @@ -1197,7 +1255,10 @@ "post": { "operationId": "fetchLiveboardSqlQuery", "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1216,7 +1277,9 @@ } } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1281,7 +1344,10 @@ "post": { "operationId": "fetchAnswerSqlQuery", "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1293,7 +1359,9 @@ "type": "string" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1358,7 +1426,10 @@ "post": { "operationId": "exportLiveboardReport", "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Reports", "9.0.0.cl"], + "tags": [ + "Reports", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1384,7 +1455,12 @@ "description": "Export file format.", "default": "CSV", "type": "string", - "enum": ["CSV", "PDF", "XLSX", "PNG"] + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:'region', op1: 'EQ', val1: 'northeast' }", @@ -1407,7 +1483,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1472,7 +1550,10 @@ "post": { "operationId": "exportAnswerReport", "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Reports", "9.0.0.cl"], + "tags": [ + "Reports", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1487,7 +1568,12 @@ "description": "Export file format.", "default": "CSV", "type": "string", - "enum": ["CSV", "PDF", "XLSX", "PNG"] + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", @@ -1502,7 +1588,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1567,7 +1655,10 @@ "post": { "operationId": "fetchPermissionsOfPrincipals", "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1589,7 +1680,9 @@ } } }, - "required": ["principals"] + "required": [ + "principals" + ] } } }, @@ -1698,7 +1791,10 @@ "post": { "operationId": "fetchPermissionsOnMetadata", "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1726,7 +1822,9 @@ "nullable": true } }, - "required": ["metadata"] + "required": [ + "metadata" + ] } } }, @@ -1856,7 +1954,10 @@ "post": { "operationId": "searchData", "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Data", "9.0.0.cl"], + "tags": [ + "Data", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1875,7 +1976,9 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": ["COMPACT"] + "enum": [ + "COMPACT" + ] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -1902,7 +2005,10 @@ "type": "object" } }, - "required": ["query_string", "logical_table_identifier"] + "required": [ + "query_string", + "logical_table_identifier" + ] } } }, @@ -1967,7 +2073,10 @@ "post": { "operationId": "fetchLiveboardData", "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Data", "9.0.0.cl"], + "tags": [ + "Data", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1993,7 +2102,9 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": ["COMPACT"] + "enum": [ + "COMPACT" + ] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -2020,7 +2131,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -2085,7 +2198,10 @@ "post": { "operationId": "fetchAnswerData", "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Data", "9.0.0.cl"], + "tags": [ + "Data", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2100,7 +2216,9 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": ["COMPACT"] + "enum": [ + "COMPACT" + ] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -2127,7 +2245,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -2192,7 +2312,10 @@ "post": { "operationId": "fetchLogs", "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Log", "9.0.0.cl"], + "tags": [ + "Log", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2202,7 +2325,9 @@ "log_type": { "description": "Name of the log type.", "type": "string", - "enum": ["SECURITY_AUDIT"] + "enum": [ + "SECURITY_AUDIT" + ] }, "start_epoch_time_in_millis": { "description": "Start time in EPOCH format", @@ -2215,7 +2340,9 @@ "format": "float" } }, - "required": ["log_type"] + "required": [ + "log_type" + ] } } }, @@ -2283,7 +2410,9 @@ "post": { "operationId": "searchConfig", "description": "\n\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -2364,7 +2493,9 @@ "post": { "operationId": "searchCommits", "description": "\n\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -2378,7 +2509,11 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] }, "branch_name": { "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", @@ -2395,7 +2530,9 @@ "format": "int32" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -2463,7 +2600,10 @@ "post": { "operationId": "searchConnection", "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects configured on the ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n* To get a list of all connection objects available in the ThoughtSpot system, send a `POST` request with no attributes in the request body.\n* To get the connection objects created for a specific type of data warehouse, set the type in `data_warehouse_types`.\n* To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n* To get details of the database, schemas, tables, or columns from a data connection object, specify the `data_warehouse_object_type` attribute.\n* To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. \nNote that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n* To include more details about connection objects in the API response, set `include_details` to `true`.\n* You can also sort the output by field names and filter connections by tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2521,7 +2661,12 @@ "data_warehouse_object_type": { "description": "Data warehouse object type.", "type": "string", - "enum": ["DATABASE", "SCHEMA", "TABLE", "COLUMN"] + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] }, "sort_options": { "description": "Sort options.", @@ -2540,7 +2685,12 @@ "description": "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.", "default": "SERVICE_ACCOUNT", "type": "string", - "enum": ["SERVICE_ACCOUNT", "OAUTH", "IAM", "EXTOAUTH"] + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] } } } @@ -2609,7 +2759,10 @@ "post": { "operationId": "searchRoles", "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2697,7 +2850,11 @@ "type": "array", "items": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"] + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] } } } @@ -2767,7 +2924,10 @@ "post": { "operationId": "searchCustomActions", "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2890,7 +3050,10 @@ "post": { "operationId": "login", "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2972,7 +3135,10 @@ "post": { "operationId": "getObjectAccessToken", "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3031,7 +3197,10 @@ } } }, - "required": ["username", "object_id"] + "required": [ + "username", + "object_id" + ] } } }, @@ -3097,7 +3266,10 @@ "post": { "operationId": "getFullAccessToken", "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3152,7 +3324,9 @@ } } }, - "required": ["username"] + "required": [ + "username" + ] } } }, @@ -3218,7 +3392,10 @@ "post": { "operationId": "logout", "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "parameters": [], "responses": { "204": { @@ -3271,7 +3448,10 @@ "post": { "operationId": "revokeToken", "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3341,7 +3521,10 @@ "post": { "operationId": "createUser", "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3406,7 +3589,10 @@ "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "default": "SHARABLE", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", @@ -3438,7 +3624,12 @@ } } }, - "required": ["name", "display_name", "password", "email"] + "required": [ + "name", + "display_name", + "password", + "email" + ] } } }, @@ -3503,7 +3694,10 @@ "post": { "operationId": "updateUser", "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3521,7 +3715,10 @@ "visibility": { "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "email": { "description": "Email of the user account", @@ -3593,7 +3790,11 @@ "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": ["ADD", "REMOVE", "REPLACE"] + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } } } @@ -3662,7 +3863,10 @@ "post": { "operationId": "deleteUser", "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -3725,7 +3929,10 @@ "post": { "operationId": "importUsers", "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3756,7 +3963,9 @@ "nullable": true } }, - "required": ["users"] + "required": [ + "users" + ] } } }, @@ -3821,7 +4030,10 @@ "post": { "operationId": "changeUserPassword", "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3903,7 +4115,10 @@ "post": { "operationId": "resetUserPassword", "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3919,7 +4134,10 @@ "type": "string" } }, - "required": ["new_password", "user_identifier"] + "required": [ + "new_password", + "user_identifier" + ] } } }, @@ -3977,7 +4195,10 @@ "post": { "operationId": "forceLogoutUsers", "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4048,7 +4269,10 @@ "post": { "operationId": "updateSystemConfig", "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.2.0.cl"], + "tags": [ + "System", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4060,7 +4284,9 @@ "type": "object" } }, - "required": ["configuration"] + "required": [ + "configuration" + ] } } }, @@ -4118,7 +4344,10 @@ "post": { "operationId": "createOrg", "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4134,7 +4363,9 @@ "type": "string" } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -4210,7 +4441,10 @@ "post": { "operationId": "updateOrg", "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4236,7 +4470,11 @@ "description": "Type of update operation. Default operation type is ADD", "default": "ADD", "type": "string", - "enum": ["ADD", "REMOVE", "REPLACE"] + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } } } @@ -4305,7 +4543,10 @@ "post": { "operationId": "deleteOrg", "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -4368,7 +4609,10 @@ "post": { "operationId": "createTag", "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4384,7 +4628,9 @@ "type": "string" } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -4467,7 +4713,10 @@ "post": { "operationId": "updateTag", "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4549,7 +4798,10 @@ "post": { "operationId": "deleteTag", "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -4612,7 +4864,10 @@ "post": { "operationId": "assignTag", "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4634,7 +4889,10 @@ } } }, - "required": ["metadata", "tag_identifiers"] + "required": [ + "metadata", + "tag_identifiers" + ] } } }, @@ -4692,7 +4950,10 @@ "post": { "operationId": "unassignTag", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4714,7 +4975,10 @@ } } }, - "required": ["metadata", "tag_identifiers"] + "required": [ + "metadata", + "tag_identifiers" + ] } } }, @@ -4772,7 +5036,10 @@ "post": { "operationId": "createUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4839,7 +5106,10 @@ "description": "Group type.", "default": "LOCAL_GROUP", "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"] + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", @@ -4852,7 +5122,10 @@ "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "default": "SHARABLE", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", @@ -4862,7 +5135,10 @@ } } }, - "required": ["name", "display_name"] + "required": [ + "name", + "display_name" + ] } } }, @@ -4927,7 +5203,10 @@ "post": { "operationId": "updateUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4993,7 +5272,10 @@ "type": { "description": "Type of the user group.", "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"] + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", @@ -5005,7 +5287,10 @@ "visibility": { "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", @@ -5018,7 +5303,11 @@ "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": ["ADD", "REMOVE", "REPLACE"] + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } } } @@ -5087,7 +5376,10 @@ "post": { "operationId": "deleteUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -5150,7 +5442,10 @@ "post": { "operationId": "importUserGroups", "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5240,7 +5535,10 @@ "post": { "operationId": "importMetadataTML", "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5258,7 +5556,11 @@ "description": "Specifies the import policy for the TML import.", "default": "PARTIAL", "type": "string", - "enum": ["PARTIAL", "ALL_OR_NONE", "VALIDATE_ONLY"] + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY" + ] }, "create_new": { "description": "If selected, creates TML objects with new GUIDs.", @@ -5267,7 +5569,9 @@ "nullable": true } }, - "required": ["metadata_tmls"] + "required": [ + "metadata_tmls" + ] } } }, @@ -5335,7 +5639,10 @@ "post": { "operationId": "exportMetadataTML", "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5365,10 +5672,15 @@ "description": "TML EDOC content format.", "default": "JSON", "type": "string", - "enum": ["JSON", "YAML"] + "enum": [ + "JSON", + "YAML" + ] } }, - "required": ["metadata"] + "required": [ + "metadata" + ] } } }, @@ -5436,7 +5748,10 @@ "post": { "operationId": "deleteMetadata", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5457,7 +5772,9 @@ "nullable": true } }, - "required": ["metadata"] + "required": [ + "metadata" + ] } } }, @@ -5515,7 +5832,10 @@ "post": { "operationId": "assignChangeAuthor", "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5538,7 +5858,10 @@ "type": "string" } }, - "required": ["metadata", "user_identifier"] + "required": [ + "metadata", + "user_identifier" + ] } } }, @@ -5596,7 +5919,10 @@ "post": { "operationId": "shareMetadata", "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5606,7 +5932,11 @@ "metadata_type": { "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] }, "metadata_identifiers": { "description": "Unique ID or name of metadata objects.", @@ -5711,7 +6041,9 @@ "post": { "operationId": "createConfig", "description": "\n\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -5756,7 +6088,11 @@ "type": "string" } }, - "required": ["repository_url", "username", "access_token"] + "required": [ + "repository_url", + "username", + "access_token" + ] } } }, @@ -5821,7 +6157,9 @@ "post": { "operationId": "updateConfig", "description": "\n\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -5924,7 +6262,9 @@ "post": { "operationId": "deleteConfig", "description": "\n\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -5993,7 +6333,9 @@ "post": { "operationId": "commitBranch", "description": "\n\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6016,7 +6358,10 @@ "type": "string" } }, - "required": ["metadata", "comment"] + "required": [ + "metadata", + "comment" + ] } } }, @@ -6081,7 +6426,9 @@ "post": { "operationId": "revertCommit", "description": "\n\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6103,7 +6450,10 @@ "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", - "enum": ["ALL_OR_NONE", "PARTIAL"] + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] } } } @@ -6179,7 +6529,9 @@ "post": { "operationId": "validateMerge", "description": "\n\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6195,7 +6547,10 @@ "type": "string" } }, - "required": ["source_branch_name", "target_branch_name"] + "required": [ + "source_branch_name", + "target_branch_name" + ] } } }, @@ -6263,7 +6618,9 @@ "post": { "operationId": "deployCommit", "description": "\n\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6282,13 +6639,19 @@ "description": "Indicates if all files or only modified file at specified commit point should be considered", "default": "DELTA", "type": "string", - "enum": ["FULL", "DELTA"] + "enum": [ + "FULL", + "DELTA" + ] }, "deploy_policy": { "description": "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.", "default": "ALL_OR_NONE", "type": "string", - "enum": ["ALL_OR_NONE", "PARTIAL"] + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] } } } @@ -6357,7 +6720,10 @@ "post": { "operationId": "createConnection", "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6471,7 +6837,10 @@ "post": { "operationId": "deleteConnection", "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6483,7 +6852,9 @@ "type": "string" } }, - "required": ["connection_identifier"] + "required": [ + "connection_identifier" + ] } } }, @@ -6541,7 +6912,10 @@ "post": { "operationId": "updateConnection", "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6571,7 +6945,9 @@ "nullable": true } }, - "required": ["connection_identifier"] + "required": [ + "connection_identifier" + ] } } }, @@ -6629,7 +7005,10 @@ "post": { "operationId": "createRole", "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6673,7 +7052,9 @@ } } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -6738,7 +7119,10 @@ "post": { "operationId": "updateRole", "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6782,7 +7166,9 @@ } } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -6857,7 +7243,10 @@ "post": { "operationId": "deleteRole", "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "parameters": [ { "in": "path", @@ -6920,7 +7309,10 @@ "post": { "operationId": "createSchedule", "description": "Create schedule.
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6938,7 +7330,9 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", @@ -6948,7 +7342,10 @@ "description": "Export file format.", "default": "PDF", "type": "string", - "enum": ["CSV", "PDF"] + "enum": [ + "CSV", + "PDF" + ] }, "liveboard_options": { "description": "Options to specify details of liveboard.", @@ -7044,7 +7441,10 @@ "post": { "operationId": "deleteSchedule", "description": "Deletes a schedule
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "parameters": [ { "in": "path", @@ -7107,7 +7507,10 @@ "post": { "operationId": "searchSchedules", "description": "Search Schedules
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7213,7 +7616,10 @@ "post": { "operationId": "updateSchedule", "description": "Update schedule.
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7231,7 +7637,9 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", @@ -7240,7 +7648,10 @@ "file_format": { "description": "Export file format.", "type": "string", - "enum": ["CSV", "PDF"] + "enum": [ + "CSV", + "PDF" + ] }, "liveboard_options": { "description": "Options to specify details of liveboard.", @@ -7265,7 +7676,10 @@ "status": { "description": "Status of the schedule", "type": "string", - "enum": ["ACTIVE", "PAUSE"] + "enum": [ + "ACTIVE", + "PAUSE" + ] } } } @@ -7334,7 +7748,10 @@ "post": { "operationId": "createCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7368,7 +7785,10 @@ } } }, - "required": ["name", "action_details"] + "required": [ + "name", + "action_details" + ] } } }, @@ -7451,7 +7871,10 @@ "post": { "operationId": "updateCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7488,7 +7911,10 @@ "description": "Type of update operation. Default operation type is ADD", "default": "ADD", "type": "string", - "enum": ["ADD", "REMOVE"] + "enum": [ + "ADD", + "REMOVE" + ] } } } @@ -7557,7 +7983,10 @@ "post": { "operationId": "deleteCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "parameters": [ { "in": "path", @@ -7629,7 +8058,12 @@ }, "User": { "type": "object", - "required": ["id", "name", "display_name", "visibility"], + "required": [ + "id", + "name", + "display_name", + "visibility" + ], "properties": { "id": { "type": "string", @@ -7645,7 +8079,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." }, "author_id": { @@ -7690,7 +8127,13 @@ }, "account_status": { "type": "string", - "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], "description": "Status of the user account." }, "email": { @@ -7769,7 +8212,10 @@ }, "parent_type": { "type": "string", - "enum": ["USER", "GROUP"], + "enum": [ + "USER", + "GROUP" + ], "description": "Parent type of the user." }, "privileges": { @@ -7835,14 +8281,22 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION" + ], "description": "Type of metadata." } } }, "ImportUser": { "type": "object", - "required": ["user_identifier", "display_name"], + "required": [ + "user_identifier", + "display_name" + ], "properties": { "user_identifier": { "type": "string", @@ -7870,7 +8324,13 @@ }, "account_status": { "type": "string", - "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], "default": "ACTIVE", "description": "Status of the user account." }, @@ -7894,7 +8354,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups,\nand thus allows them to share objects." }, "notify_on_share": { @@ -7951,12 +8414,21 @@ "properties": { "field_name": { "type": "string", - "enum": ["NAME", "DISPLAY_NAME", "AUTHOR", "CREATED", "MODIFIED"], + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], "description": "Name of the field to apply the sort on." }, "order": { "type": "string", - "enum": ["ASC", "DESC"], + "enum": [ + "ASC", + "DESC" + ], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -7984,7 +8456,9 @@ }, "MetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", @@ -8010,11 +8484,18 @@ }, "ExportMetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION" + ], "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { @@ -8026,7 +8507,9 @@ }, "DeleteMetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", @@ -8048,7 +8531,10 @@ }, "PrincipalsInput": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -8056,18 +8542,28 @@ }, "type": { "type": "string", - "enum": ["USER", "USER_GROUP"], + "enum": [ + "USER", + "USER_GROUP" + ], "description": "Principal type." } } }, "AuthorMetadataTypeInput": { "type": "object", - "required": ["type", "identifier"], + "required": [ + "type", + "identifier" + ], "properties": { "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], "description": "Type of metadata." }, "identifier": { @@ -8079,7 +8575,10 @@ }, "PermissionsMetadataTypeInput": { "type": "object", - "required": ["type", "identifier"], + "required": [ + "type", + "identifier" + ], "properties": { "type": { "type": "string", @@ -8101,7 +8600,10 @@ }, "SharePermissionsInput": { "type": "object", - "required": ["principal", "share_mode"], + "required": [ + "principal", + "share_mode" + ], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -8109,14 +8611,20 @@ }, "share_mode": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Object share mode." } } }, "SearchDataResponse": { "type": "object", - "required": ["contents"], + "required": [ + "contents" + ], "properties": { "contents": { "type": "array", @@ -8130,7 +8638,11 @@ }, "AnswerDataResponse": { "type": "object", - "required": ["metadata_id", "metadata_name", "contents"], + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], "properties": { "metadata_id": { "type": "string", @@ -8152,7 +8664,11 @@ }, "LiveboardDataResponse": { "type": "object", - "required": ["metadata_id", "metadata_name", "contents"], + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], "properties": { "metadata_id": { "type": "string", @@ -8173,7 +8689,10 @@ }, "Org": { "type": "object", - "required": ["id", "name"], + "required": [ + "id", + "name" + ], "properties": { "id": { "type": "integer", @@ -8200,11 +8719,18 @@ }, "CustomActionMetadataTypeInput": { "type": "object", - "required": ["type", "identifier"], + "required": [ + "type", + "identifier" + ], "properties": { "type": { "type": "string", - "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], "description": "Type of metadata." }, "identifier": { @@ -8230,7 +8756,10 @@ }, "RiseSetter": { "type": "object", - "required": ["field", "path"], + "required": [ + "field", + "path" + ], "properties": { "field": { "type": "string" @@ -8395,7 +8924,10 @@ }, "status": { "type": "string", - "enum": ["ACTIVE", "IN_ACTIVE"], + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], "description": "Status of the organization." }, "description": { @@ -8404,14 +8936,20 @@ }, "visibility": { "type": "string", - "enum": ["SHOW", "HIDDEN"], + "enum": [ + "SHOW", + "HIDDEN" + ], "description": "Visibility of the organization." } } }, "Tag": { "type": "object", - "required": ["name", "id"], + "required": [ + "name", + "id" + ], "properties": { "name": { "type": "string" @@ -8455,7 +8993,12 @@ }, "UserGroupResponse": { "type": "object", - "required": ["display_name", "id", "name", "visibility"], + "required": [ + "display_name", + "id", + "name", + "visibility" + ], "properties": { "author_id": { "type": "string", @@ -8555,7 +9098,10 @@ }, "parent_type": { "type": "string", - "enum": ["USER", "GROUP"], + "enum": [ + "USER", + "GROUP" + ], "description": "Parent type of the user group." }, "privileges": { @@ -8585,7 +9131,10 @@ }, "type": { "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"], + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], "description": "Type of the user group." }, "users": { @@ -8597,7 +9146,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." }, "roles": { @@ -8611,7 +9163,9 @@ }, "MetadataSearchResponse": { "type": "object", - "required": ["metadata_type"], + "required": [ + "metadata_type" + ], "properties": { "metadata_id": { "type": "string", @@ -8699,7 +9253,10 @@ }, "PermissionInput": { "type": "object", - "required": ["principal", "share_mode"], + "required": [ + "principal", + "share_mode" + ], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -8707,7 +9264,11 @@ }, "share_mode": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Object share mode." } }, @@ -8715,7 +9276,10 @@ }, "ExcludeMetadataListItemInput": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -8775,7 +9339,10 @@ }, "order": { "type": "string", - "enum": ["ASC", "DESC"], + "enum": [ + "ASC", + "DESC" + ], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -8847,7 +9414,10 @@ }, "page_orientation": { "type": "string", - "enum": ["PORTRAIT", "LANDSCAPE"], + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], "default": "PORTRAIT", "description": "Page orientation of the PDF." }, @@ -8879,7 +9449,10 @@ }, "LogResponse": { "type": "object", - "required": ["date", "log"], + "required": [ + "date", + "log" + ], "properties": { "date": { "type": "string", @@ -8966,7 +9539,11 @@ }, "SearchConnectionResponse": { "type": "object", - "required": ["id", "name", "data_warehouse_type"], + "required": [ + "id", + "name", + "data_warehouse_type" + ], "properties": { "id": { "type": "string", @@ -9050,14 +9627,22 @@ }, "order": { "type": "string", - "enum": ["ASC", "DESC"], + "enum": [ + "ASC", + "DESC" + ], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } } }, "SearchRoleResponse": { "type": "object", - "required": ["id", "name", "description", "privileges"], + "required": [ + "id", + "name", + "description", + "privileges" + ], "properties": { "id": { "type": "string", @@ -9132,7 +9717,11 @@ }, "permission": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Permission details of the Role" }, "author_id": { @@ -9176,7 +9765,12 @@ }, "ResponseCustomAction": { "type": "object", - "required": ["action_details", "default_action_config", "id", "name"], + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], "properties": { "action_details": { "$ref": "#/components/schemas/Action_details", @@ -9276,7 +9870,9 @@ }, "TagMetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", @@ -9297,7 +9893,11 @@ }, "ImportUserGroupsResponse": { "type": "object", - "required": ["groups_added", "groups_deleted", "groups_updated"], + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], "properties": { "groups_added": { "type": "array", @@ -9324,7 +9924,10 @@ }, "GroupsImportListInput": { "type": "object", - "required": ["display_name", "group_identifier"], + "required": [ + "display_name", + "group_identifier" + ], "properties": { "display_name": { "type": "string", @@ -9384,7 +9987,10 @@ }, "type": { "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"], + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], "description": "Type of the user group." }, "user_identifiers": { @@ -9396,7 +10002,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." } } @@ -9439,7 +10048,9 @@ }, "MetadataObject": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "identifier": { "type": "string", @@ -9447,7 +10058,11 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], "description": "Type of metadata." } } @@ -9522,7 +10137,11 @@ }, "CreateConnectionResponse": { "type": "object", - "required": ["id", "name", "data_warehouse_type"], + "required": [ + "id", + "name", + "data_warehouse_type" + ], "properties": { "id": { "type": "string", @@ -9559,7 +10178,12 @@ }, "RoleResponse": { "type": "object", - "required": ["id", "name", "description", "privileges"], + "required": [ + "id", + "name", + "description", + "privileges" + ], "properties": { "id": { "type": "string", @@ -9622,7 +10246,11 @@ }, "permission": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Permission details of the Role" }, "author_id": { @@ -9739,7 +10367,9 @@ }, "LiveboardOptionsInput": { "type": "object", - "required": ["visualization_identifiers"], + "required": [ + "visualization_identifiers" + ], "properties": { "visualization_identifiers": { "type": "array", @@ -9784,7 +10414,9 @@ }, "page_size": { "type": "string", - "enum": ["A4"], + "enum": [ + "A4" + ], "description": "Page size." }, "truncate_table": { @@ -9796,7 +10428,9 @@ }, "FrequencyInput": { "type": "object", - "required": ["cron_expression"], + "required": [ + "cron_expression" + ], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpressionInput", @@ -9833,7 +10467,9 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] } } }, @@ -9889,7 +10525,9 @@ }, "Associate_Metadata_Input_Create": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", @@ -9901,7 +10539,11 @@ }, "type": { "type": "string", - "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], "description": "Type of metadata." } } @@ -9944,7 +10586,11 @@ }, "type": { "type": "string", - "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], "description": "Type of metadata." } } @@ -9961,7 +10607,11 @@ }, "FavoriteMetadataItem": { "type": "object", - "required": ["id", "name", "type"], + "required": [ + "id", + "name", + "type" + ], "properties": { "id": { "type": "string", @@ -9990,7 +10640,9 @@ }, "ImportUserType": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "id": { "type": "string", @@ -10131,7 +10783,11 @@ }, "SqlQuery": { "type": "object", - "required": ["metadata_id", "metadata_name", "sql_query"], + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], "properties": { "metadata_id": { "type": "string", @@ -10176,7 +10832,9 @@ }, "DataWarehouseObjects": { "type": "object", - "required": ["databases"], + "required": [ + "databases" + ], "properties": { "databases": { "type": "array", @@ -10234,7 +10892,11 @@ }, "Metadata_Association_Item": { "type": "object", - "required": ["action_config", "identifier", "type"], + "required": [ + "action_config", + "identifier", + "type" + ], "properties": { "action_config": { "$ref": "#/components/schemas/Action_config", @@ -10287,7 +10949,9 @@ }, "Scope": { "type": "object", - "required": ["access_type"], + "required": [ + "access_type" + ], "properties": { "access_type": { "type": "string", @@ -10306,7 +10970,10 @@ }, "CommitFileType": { "type": "object", - "required": ["file_name", "status_code"], + "required": [ + "file_name", + "status_code" + ], "properties": { "file_name": { "type": "string", @@ -10356,7 +11023,10 @@ }, "Author": { "type": "object", - "required": ["id", "name"], + "required": [ + "id", + "name" + ], "properties": { "id": { "type": "string", @@ -10371,7 +11041,9 @@ }, "Frequency": { "type": "object", - "required": ["cron_expression"], + "required": [ + "cron_expression" + ], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpression", @@ -10382,7 +11054,9 @@ }, "LiveboardOptions": { "type": "object", - "required": ["visualization_identifiers"], + "required": [ + "visualization_identifiers" + ], "properties": { "visualization_identifiers": { "type": "array", @@ -10396,7 +11070,10 @@ }, "MetadataResponse": { "type": "object", - "required": ["id", "type"], + "required": [ + "id", + "type" + ], "properties": { "name": { "type": "string" @@ -10406,7 +11083,9 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] } } }, @@ -10443,7 +11122,9 @@ }, "page_size": { "type": "string", - "enum": ["A4"], + "enum": [ + "A4" + ], "description": "Page size." }, "truncate_table": { @@ -10547,7 +11228,10 @@ }, "PrincipalsListItemInput": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -10561,7 +11245,9 @@ }, "CALLBACKInputMandatory": { "type": "object", - "required": ["reference"], + "required": [ + "reference" + ], "properties": { "reference": { "type": "string", @@ -10572,7 +11258,9 @@ }, "URLInputMandatory": { "type": "object", - "required": ["url"], + "required": [ + "url" + ], "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", @@ -10601,7 +11289,11 @@ "properties": { "position": { "type": "string", - "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], "default": "MENU", "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, @@ -10618,7 +11310,11 @@ "properties": { "position": { "type": "string", - "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { @@ -10630,7 +11326,9 @@ }, "Database": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "name": { "type": "string", @@ -10661,7 +11359,9 @@ }, "URL": { "type": "object", - "required": ["url"], + "required": [ + "url" + ], "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", @@ -10774,7 +11474,10 @@ }, "PrincipalsListItem": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -10788,7 +11491,9 @@ }, "SchemaObject": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "name": { "type": "string", @@ -10868,7 +11573,9 @@ }, "Table": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "name": { "type": "string", @@ -10936,7 +11643,10 @@ }, "Column": { "type": "object", - "required": ["name", "data_type"], + "required": [ + "name", + "data_type" + ], "properties": { "name": { "type": "string", From 4992782a422d88e2c5d98b5b8cb94f4728f3a0a4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 22 Jun 2023 04:50:09 +0000 Subject: [PATCH 029/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1346 +++++++------------------------ 1 file changed, 311 insertions(+), 1035 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2bf8e0cdd..2d3c4772a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8,41 +8,31 @@ { "name": "9.0.0.cl", "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], + "tags": ["9.0.0.cl"], "description": "Roles for version 9.0.0.cl" }, { "name": "9.2.0.cl", "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], + "tags": ["9.2.0.cl"], "description": "Roles for version 9.2.0.cl" }, { "name": "9.5.0.cl", "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], + "tags": ["9.5.0.cl"], "description": "Roles for version 9.5.0.cl" }, { "name": "9.4.0.cl", "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], + "tags": ["9.4.0.cl"], "description": "Roles for version 9.4.0.cl" }, { "name": "9.6.0.cl", "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], + "tags": ["9.6.0.cl"], "description": "Roles for version 9.6.0.cl" } ], @@ -52,10 +42,7 @@ "get": { "operationId": "getCurrentUserInfo", "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "tags": ["Authentication", "9.0.0.cl"], "parameters": [], "responses": { "200": { @@ -115,10 +102,7 @@ "get": { "operationId": "getCurrentUserToken", "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.4.0.cl" - ], + "tags": ["Authentication", "9.4.0.cl"], "parameters": [], "responses": { "200": { @@ -178,10 +162,7 @@ "post": { "operationId": "searchUsers", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -199,10 +180,7 @@ "visibility": { "description": "Visibility of the user.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] + "enum": ["SHARABLE", "NON_SHARABLE"] }, "email": { "description": "Email of the user account", @@ -396,10 +374,7 @@ "get": { "operationId": "getSystemInformation", "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], + "tags": ["System", "9.0.0.cl"], "parameters": [], "responses": { "200": { @@ -488,10 +463,7 @@ "get": { "operationId": "getSystemConfig", "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], + "tags": ["System", "9.0.0.cl"], "parameters": [], "responses": { "200": { @@ -558,10 +530,7 @@ "get": { "operationId": "getSystemOverrideInfo", "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], + "tags": ["System", "9.2.0.cl"], "parameters": [], "responses": { "200": { @@ -621,10 +590,7 @@ "post": { "operationId": "searchOrgs", "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "tags": ["Orgs", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -642,18 +608,12 @@ "visibility": { "description": "Visibility of the Org.", "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] + "enum": ["SHOW", "HIDDEN"] }, "status": { "description": "Status of the Org.", "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] + "enum": ["ACTIVE", "IN_ACTIVE"] }, "user_identifiers": { "description": "GUIDs or names of the users for which you want to retrieve the Orgs data.", @@ -749,10 +709,7 @@ "post": { "operationId": "searchTags", "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -868,10 +825,7 @@ "post": { "operationId": "searchUserGroups", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -944,10 +898,7 @@ "type": { "description": "Group type.", "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] + "enum": ["LOCAL_GROUP", "LDAP_GROUP"] }, "user_identifiers": { "description": "GUID or name of the users assigned to the group.", @@ -959,10 +910,7 @@ "visibility": { "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] + "enum": ["SHARABLE", "NON_SHARABLE"] }, "role_identifiers": { "description": "Filter groups with a list of roles assigned to a group", @@ -1054,10 +1002,7 @@ "post": { "operationId": "searchMetadata", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1089,10 +1034,7 @@ "description": "Version of the dependent table of the metadata like worksheets.", "default": "V1", "type": "string", - "enum": [ - "V1", - "V2" - ] + "enum": ["V1", "V2"] }, "exclude_objects": { "description": "List of metadata objects to exclude from search.", @@ -1255,10 +1197,7 @@ "post": { "operationId": "fetchLiveboardSqlQuery", "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1277,9 +1216,7 @@ } } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1344,10 +1281,7 @@ "post": { "operationId": "fetchAnswerSqlQuery", "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1359,9 +1293,7 @@ "type": "string" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1426,10 +1358,7 @@ "post": { "operationId": "exportLiveboardReport", "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], + "tags": ["Reports", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1455,12 +1384,7 @@ "description": "Export file format.", "default": "CSV", "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] + "enum": ["CSV", "PDF", "XLSX", "PNG"] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:'region', op1: 'EQ', val1: 'northeast' }", @@ -1483,9 +1407,7 @@ "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1550,10 +1472,7 @@ "post": { "operationId": "exportAnswerReport", "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], + "tags": ["Reports", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1568,12 +1487,7 @@ "description": "Export file format.", "default": "CSV", "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] + "enum": ["CSV", "PDF", "XLSX", "PNG"] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", @@ -1588,9 +1502,7 @@ "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -1655,10 +1567,7 @@ "post": { "operationId": "fetchPermissionsOfPrincipals", "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1680,9 +1589,7 @@ } } }, - "required": [ - "principals" - ] + "required": ["principals"] } } }, @@ -1791,10 +1698,7 @@ "post": { "operationId": "fetchPermissionsOnMetadata", "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1822,9 +1726,7 @@ "nullable": true } }, - "required": [ - "metadata" - ] + "required": ["metadata"] } } }, @@ -1954,10 +1856,7 @@ "post": { "operationId": "searchData", "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], + "tags": ["Data", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -1976,9 +1875,7 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": [ - "COMPACT" - ] + "enum": ["COMPACT"] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -2005,10 +1902,7 @@ "type": "object" } }, - "required": [ - "query_string", - "logical_table_identifier" - ] + "required": ["query_string", "logical_table_identifier"] } } }, @@ -2073,10 +1967,7 @@ "post": { "operationId": "fetchLiveboardData", "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], + "tags": ["Data", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -2102,9 +1993,7 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": [ - "COMPACT" - ] + "enum": ["COMPACT"] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -2131,9 +2020,7 @@ "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -2198,10 +2085,7 @@ "post": { "operationId": "fetchAnswerData", "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], + "tags": ["Data", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -2216,9 +2100,7 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": [ - "COMPACT" - ] + "enum": ["COMPACT"] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -2245,9 +2127,7 @@ "type": "object" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -2312,10 +2192,7 @@ "post": { "operationId": "fetchLogs", "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], + "tags": ["Log", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -2325,9 +2202,7 @@ "log_type": { "description": "Name of the log type.", "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] + "enum": ["SECURITY_AUDIT"] }, "start_epoch_time_in_millis": { "description": "Start time in EPOCH format", @@ -2340,9 +2215,7 @@ "format": "float" } }, - "required": [ - "log_type" - ] + "required": ["log_type"] } } }, @@ -2410,9 +2283,7 @@ "post": { "operationId": "searchConfig", "description": "\n\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -2493,9 +2364,7 @@ "post": { "operationId": "searchCommits", "description": "\n\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -2509,11 +2378,7 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] }, "branch_name": { "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", @@ -2530,9 +2395,7 @@ "format": "int32" } }, - "required": [ - "metadata_identifier" - ] + "required": ["metadata_identifier"] } } }, @@ -2600,10 +2463,7 @@ "post": { "operationId": "searchConnection", "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects configured on the ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n* To get a list of all connection objects available in the ThoughtSpot system, send a `POST` request with no attributes in the request body.\n* To get the connection objects created for a specific type of data warehouse, set the type in `data_warehouse_types`.\n* To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n* To get details of the database, schemas, tables, or columns from a data connection object, specify the `data_warehouse_object_type` attribute.\n* To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. \nNote that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n* To include more details about connection objects in the API response, set `include_details` to `true`.\n* You can also sort the output by field names and filter connections by tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -2661,12 +2521,7 @@ "data_warehouse_object_type": { "description": "Data warehouse object type.", "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] + "enum": ["DATABASE", "SCHEMA", "TABLE", "COLUMN"] }, "sort_options": { "description": "Sort options.", @@ -2685,12 +2540,7 @@ "description": "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.", "default": "SERVICE_ACCOUNT", "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] + "enum": ["SERVICE_ACCOUNT", "OAUTH", "IAM", "EXTOAUTH"] } } } @@ -2759,10 +2609,7 @@ "post": { "operationId": "searchRoles", "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "requestBody": { "content": { "application/json": { @@ -2850,11 +2697,7 @@ "type": "array", "items": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"] } } } @@ -2924,10 +2767,7 @@ "post": { "operationId": "searchCustomActions", "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], + "tags": ["Custom Action", "9.6.0.cl"], "requestBody": { "content": { "application/json": { @@ -2963,7 +2803,8 @@ }, "type": { "description": "Filter the action objects based on type", - "$ref": "#/components/schemas/TypeInput" + "type": "string", + "enum": ["CALLBACK", "URL"] } } } @@ -3050,10 +2891,7 @@ "post": { "operationId": "login", "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3135,10 +2973,7 @@ "post": { "operationId": "getObjectAccessToken", "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3197,10 +3032,7 @@ } } }, - "required": [ - "username", - "object_id" - ] + "required": ["username", "object_id"] } } }, @@ -3266,10 +3098,7 @@ "post": { "operationId": "getFullAccessToken", "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3324,9 +3153,7 @@ } } }, - "required": [ - "username" - ] + "required": ["username"] } } }, @@ -3392,10 +3219,7 @@ "post": { "operationId": "logout", "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "tags": ["Authentication", "9.0.0.cl"], "parameters": [], "responses": { "204": { @@ -3448,10 +3272,7 @@ "post": { "operationId": "revokeToken", "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], + "tags": ["Authentication", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3521,10 +3342,7 @@ "post": { "operationId": "createUser", "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3589,10 +3407,7 @@ "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "default": "SHARABLE", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] + "enum": ["SHARABLE", "NON_SHARABLE"] }, "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", @@ -3624,12 +3439,7 @@ } } }, - "required": [ - "name", - "display_name", - "password", - "email" - ] + "required": ["name", "display_name", "password", "email"] } } }, @@ -3694,10 +3504,7 @@ "post": { "operationId": "updateUser", "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3715,10 +3522,7 @@ "visibility": { "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] + "enum": ["SHARABLE", "NON_SHARABLE"] }, "email": { "description": "Email of the user account", @@ -3790,11 +3594,7 @@ "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] + "enum": ["ADD", "REMOVE", "REPLACE"] } } } @@ -3863,10 +3663,7 @@ "post": { "operationId": "deleteUser", "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -3929,10 +3726,7 @@ "post": { "operationId": "importUsers", "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -3963,9 +3757,7 @@ "nullable": true } }, - "required": [ - "users" - ] + "required": ["users"] } } }, @@ -4030,10 +3822,7 @@ "post": { "operationId": "changeUserPassword", "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4115,10 +3904,7 @@ "post": { "operationId": "resetUserPassword", "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4134,10 +3920,7 @@ "type": "string" } }, - "required": [ - "new_password", - "user_identifier" - ] + "required": ["new_password", "user_identifier"] } } }, @@ -4195,10 +3978,7 @@ "post": { "operationId": "forceLogoutUsers", "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], + "tags": ["Users", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4269,10 +4049,7 @@ "post": { "operationId": "updateSystemConfig", "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], + "tags": ["System", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -4284,9 +4061,7 @@ "type": "object" } }, - "required": [ - "configuration" - ] + "required": ["configuration"] } } }, @@ -4344,10 +4119,7 @@ "post": { "operationId": "createOrg", "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "tags": ["Orgs", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4363,9 +4135,7 @@ "type": "string" } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -4441,10 +4211,7 @@ "post": { "operationId": "updateOrg", "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "tags": ["Orgs", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4470,11 +4237,7 @@ "description": "Type of update operation. Default operation type is ADD", "default": "ADD", "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] + "enum": ["ADD", "REMOVE", "REPLACE"] } } } @@ -4543,10 +4306,7 @@ "post": { "operationId": "deleteOrg", "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], + "tags": ["Orgs", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -4609,10 +4369,7 @@ "post": { "operationId": "createTag", "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4628,9 +4385,7 @@ "type": "string" } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -4713,10 +4468,7 @@ "post": { "operationId": "updateTag", "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4798,10 +4550,7 @@ "post": { "operationId": "deleteTag", "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "tags": ["Tags", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -4864,10 +4613,7 @@ "post": { "operationId": "assignTag", "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4889,10 +4635,7 @@ } } }, - "required": [ - "metadata", - "tag_identifiers" - ] + "required": ["metadata", "tag_identifiers"] } } }, @@ -4950,10 +4693,7 @@ "post": { "operationId": "unassignTag", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], + "tags": ["Tags", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -4975,10 +4715,7 @@ } } }, - "required": [ - "metadata", - "tag_identifiers" - ] + "required": ["metadata", "tag_identifiers"] } } }, @@ -5036,10 +4773,7 @@ "post": { "operationId": "createUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5106,10 +4840,7 @@ "description": "Group type.", "default": "LOCAL_GROUP", "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] + "enum": ["LOCAL_GROUP", "LDAP_GROUP"] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", @@ -5122,10 +4853,7 @@ "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "default": "SHARABLE", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] + "enum": ["SHARABLE", "NON_SHARABLE"] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", @@ -5135,10 +4863,7 @@ } } }, - "required": [ - "name", - "display_name" - ] + "required": ["name", "display_name"] } } }, @@ -5203,10 +4928,7 @@ "post": { "operationId": "updateUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5272,10 +4994,7 @@ "type": { "description": "Type of the user group.", "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] + "enum": ["LOCAL_GROUP", "LDAP_GROUP"] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", @@ -5287,10 +5006,7 @@ "visibility": { "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] + "enum": ["SHARABLE", "NON_SHARABLE"] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", @@ -5303,11 +5019,7 @@ "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] + "enum": ["ADD", "REMOVE", "REPLACE"] } } } @@ -5376,10 +5088,7 @@ "post": { "operationId": "deleteUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "tags": ["Groups", "9.0.0.cl"], "parameters": [ { "in": "path", @@ -5442,10 +5151,7 @@ "post": { "operationId": "importUserGroups", "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], + "tags": ["Groups", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5535,10 +5241,7 @@ "post": { "operationId": "importMetadataTML", "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5556,11 +5259,7 @@ "description": "Specifies the import policy for the TML import.", "default": "PARTIAL", "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY" - ] + "enum": ["PARTIAL", "ALL_OR_NONE", "VALIDATE_ONLY"] }, "create_new": { "description": "If selected, creates TML objects with new GUIDs.", @@ -5569,9 +5268,7 @@ "nullable": true } }, - "required": [ - "metadata_tmls" - ] + "required": ["metadata_tmls"] } } }, @@ -5639,10 +5336,7 @@ "post": { "operationId": "exportMetadataTML", "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5672,15 +5366,10 @@ "description": "TML EDOC content format.", "default": "JSON", "type": "string", - "enum": [ - "JSON", - "YAML" - ] + "enum": ["JSON", "YAML"] } }, - "required": [ - "metadata" - ] + "required": ["metadata"] } } }, @@ -5748,10 +5437,7 @@ "post": { "operationId": "deleteMetadata", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], + "tags": ["Metadata", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5772,9 +5458,7 @@ "nullable": true } }, - "required": [ - "metadata" - ] + "required": ["metadata"] } } }, @@ -5832,10 +5516,7 @@ "post": { "operationId": "assignChangeAuthor", "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5858,10 +5539,7 @@ "type": "string" } }, - "required": [ - "metadata", - "user_identifier" - ] + "required": ["metadata", "user_identifier"] } } }, @@ -5919,10 +5597,7 @@ "post": { "operationId": "shareMetadata", "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], + "tags": ["Security", "9.0.0.cl"], "requestBody": { "content": { "application/json": { @@ -5932,11 +5607,7 @@ "metadata_type": { "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] }, "metadata_identifiers": { "description": "Unique ID or name of metadata objects.", @@ -6041,9 +5712,7 @@ "post": { "operationId": "createConfig", "description": "\n\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6088,11 +5757,7 @@ "type": "string" } }, - "required": [ - "repository_url", - "username", - "access_token" - ] + "required": ["repository_url", "username", "access_token"] } } }, @@ -6157,9 +5822,7 @@ "post": { "operationId": "updateConfig", "description": "\n\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6262,9 +5925,7 @@ "post": { "operationId": "deleteConfig", "description": "\n\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6333,9 +5994,7 @@ "post": { "operationId": "commitBranch", "description": "\n\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6358,10 +6017,7 @@ "type": "string" } }, - "required": [ - "metadata", - "comment" - ] + "required": ["metadata", "comment"] } } }, @@ -6426,9 +6082,7 @@ "post": { "operationId": "revertCommit", "description": "\n\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6450,10 +6104,7 @@ "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] + "enum": ["ALL_OR_NONE", "PARTIAL"] } } } @@ -6529,9 +6180,7 @@ "post": { "operationId": "validateMerge", "description": "\n\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6547,10 +6196,7 @@ "type": "string" } }, - "required": [ - "source_branch_name", - "target_branch_name" - ] + "required": ["source_branch_name", "target_branch_name"] } } }, @@ -6618,9 +6264,7 @@ "post": { "operationId": "deployCommit", "description": "\n\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control" - ], + "tags": ["Version Control"], "requestBody": { "content": { "application/json": { @@ -6639,19 +6283,13 @@ "description": "Indicates if all files or only modified file at specified commit point should be considered", "default": "DELTA", "type": "string", - "enum": [ - "FULL", - "DELTA" - ] + "enum": ["FULL", "DELTA"] }, "deploy_policy": { "description": "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.", "default": "ALL_OR_NONE", "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] + "enum": ["ALL_OR_NONE", "PARTIAL"] } } } @@ -6720,10 +6358,7 @@ "post": { "operationId": "createConnection", "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -6837,10 +6472,7 @@ "post": { "operationId": "deleteConnection", "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -6852,9 +6484,7 @@ "type": "string" } }, - "required": [ - "connection_identifier" - ] + "required": ["connection_identifier"] } } }, @@ -6912,10 +6542,7 @@ "post": { "operationId": "updateConnection", "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], + "tags": ["Connections", "9.2.0.cl"], "requestBody": { "content": { "application/json": { @@ -6945,9 +6572,7 @@ "nullable": true } }, - "required": [ - "connection_identifier" - ] + "required": ["connection_identifier"] } } }, @@ -7005,10 +6630,7 @@ "post": { "operationId": "createRole", "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "requestBody": { "content": { "application/json": { @@ -7052,9 +6674,7 @@ } } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -7119,10 +6739,7 @@ "post": { "operationId": "updateRole", "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "requestBody": { "content": { "application/json": { @@ -7166,9 +6783,7 @@ } } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -7243,10 +6858,7 @@ "post": { "operationId": "deleteRole", "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], + "tags": ["Roles", "9.5.0.cl"], "parameters": [ { "in": "path", @@ -7309,10 +6921,7 @@ "post": { "operationId": "createSchedule", "description": "Create schedule.
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "requestBody": { "content": { "application/json": { @@ -7330,9 +6939,7 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": [ - "LIVEBOARD" - ] + "enum": ["LIVEBOARD"] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", @@ -7342,10 +6949,7 @@ "description": "Export file format.", "default": "PDF", "type": "string", - "enum": [ - "CSV", - "PDF" - ] + "enum": ["CSV", "PDF"] }, "liveboard_options": { "description": "Options to specify details of liveboard.", @@ -7441,10 +7045,7 @@ "post": { "operationId": "deleteSchedule", "description": "Deletes a schedule
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "parameters": [ { "in": "path", @@ -7507,10 +7108,7 @@ "post": { "operationId": "searchSchedules", "description": "Search Schedules
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "requestBody": { "content": { "application/json": { @@ -7616,10 +7214,7 @@ "post": { "operationId": "updateSchedule", "description": "Update schedule.
Version: 9.4.0.cl or later", - "tags": [ - "Schedules", - "9.4.0.cl" - ], + "tags": ["Schedules", "9.4.0.cl"], "requestBody": { "content": { "application/json": { @@ -7637,9 +7232,7 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": [ - "LIVEBOARD" - ] + "enum": ["LIVEBOARD"] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", @@ -7648,10 +7241,7 @@ "file_format": { "description": "Export file format.", "type": "string", - "enum": [ - "CSV", - "PDF" - ] + "enum": ["CSV", "PDF"] }, "liveboard_options": { "description": "Options to specify details of liveboard.", @@ -7676,10 +7266,7 @@ "status": { "description": "Status of the schedule", "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] + "enum": ["ACTIVE", "PAUSE"] } } } @@ -7748,10 +7335,7 @@ "post": { "operationId": "createCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], + "tags": ["Custom Action", "9.6.0.cl"], "requestBody": { "content": { "application/json": { @@ -7785,10 +7369,7 @@ } } }, - "required": [ - "name", - "action_details" - ] + "required": ["name", "action_details"] } } }, @@ -7871,10 +7452,7 @@ "post": { "operationId": "updateCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], + "tags": ["Custom Action", "9.6.0.cl"], "requestBody": { "content": { "application/json": { @@ -7911,10 +7489,7 @@ "description": "Type of update operation. Default operation type is ADD", "default": "ADD", "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] + "enum": ["ADD", "REMOVE"] } } } @@ -7983,10 +7558,7 @@ "post": { "operationId": "deleteCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], + "tags": ["Custom Action", "9.6.0.cl"], "parameters": [ { "in": "path", @@ -8058,12 +7630,7 @@ }, "User": { "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], + "required": ["id", "name", "display_name", "visibility"], "properties": { "id": { "type": "string", @@ -8079,10 +7646,7 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." }, "author_id": { @@ -8127,13 +7691,7 @@ }, "account_status": { "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], + "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], "description": "Status of the user account." }, "email": { @@ -8212,10 +7770,7 @@ }, "parent_type": { "type": "string", - "enum": [ - "USER", - "GROUP" - ], + "enum": ["USER", "GROUP"], "description": "Parent type of the user." }, "privileges": { @@ -8281,22 +7836,14 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], "description": "Type of metadata." } } }, "ImportUser": { "type": "object", - "required": [ - "user_identifier", - "display_name" - ], + "required": ["user_identifier", "display_name"], "properties": { "user_identifier": { "type": "string", @@ -8324,13 +7871,7 @@ }, "account_status": { "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], + "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], "default": "ACTIVE", "description": "Status of the user account." }, @@ -8354,10 +7895,7 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups,\nand thus allows them to share objects." }, "notify_on_share": { @@ -8414,21 +7952,12 @@ "properties": { "field_name": { "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], + "enum": ["NAME", "DISPLAY_NAME", "AUTHOR", "CREATED", "MODIFIED"], "description": "Name of the field to apply the sort on." }, "order": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], + "enum": ["ASC", "DESC"], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -8456,9 +7985,7 @@ }, "MetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", @@ -8484,18 +8011,11 @@ }, "ExportMetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { @@ -8507,9 +8027,7 @@ }, "DeleteMetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", @@ -8531,10 +8049,7 @@ }, "PrincipalsInput": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -8542,28 +8057,18 @@ }, "type": { "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], + "enum": ["USER", "USER_GROUP"], "description": "Principal type." } } }, "AuthorMetadataTypeInput": { "type": "object", - "required": [ - "type", - "identifier" - ], + "required": ["type", "identifier"], "properties": { "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], "description": "Type of metadata." }, "identifier": { @@ -8575,10 +8080,7 @@ }, "PermissionsMetadataTypeInput": { "type": "object", - "required": [ - "type", - "identifier" - ], + "required": ["type", "identifier"], "properties": { "type": { "type": "string", @@ -8600,10 +8102,7 @@ }, "SharePermissionsInput": { "type": "object", - "required": [ - "principal", - "share_mode" - ], + "required": ["principal", "share_mode"], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -8611,20 +8110,14 @@ }, "share_mode": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Object share mode." } } }, "SearchDataResponse": { "type": "object", - "required": [ - "contents" - ], + "required": ["contents"], "properties": { "contents": { "type": "array", @@ -8638,11 +8131,7 @@ }, "AnswerDataResponse": { "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], + "required": ["metadata_id", "metadata_name", "contents"], "properties": { "metadata_id": { "type": "string", @@ -8664,11 +8153,7 @@ }, "LiveboardDataResponse": { "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], + "required": ["metadata_id", "metadata_name", "contents"], "properties": { "metadata_id": { "type": "string", @@ -8689,10 +8174,7 @@ }, "Org": { "type": "object", - "required": [ - "id", - "name" - ], + "required": ["id", "name"], "properties": { "id": { "type": "integer", @@ -8719,18 +8201,11 @@ }, "CustomActionMetadataTypeInput": { "type": "object", - "required": [ - "type", - "identifier" - ], + "required": ["type", "identifier"], "properties": { "type": { "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], + "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], "description": "Type of metadata." }, "identifier": { @@ -8756,10 +8231,7 @@ }, "RiseSetter": { "type": "object", - "required": [ - "field", - "path" - ], + "required": ["field", "path"], "properties": { "field": { "type": "string" @@ -8924,10 +8396,7 @@ }, "status": { "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], + "enum": ["ACTIVE", "IN_ACTIVE"], "description": "Status of the organization." }, "description": { @@ -8936,20 +8405,14 @@ }, "visibility": { "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], + "enum": ["SHOW", "HIDDEN"], "description": "Visibility of the organization." } } }, "Tag": { "type": "object", - "required": [ - "name", - "id" - ], + "required": ["name", "id"], "properties": { "name": { "type": "string" @@ -8993,12 +8456,7 @@ }, "UserGroupResponse": { "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], + "required": ["display_name", "id", "name", "visibility"], "properties": { "author_id": { "type": "string", @@ -9098,10 +8556,7 @@ }, "parent_type": { "type": "string", - "enum": [ - "USER", - "GROUP" - ], + "enum": ["USER", "GROUP"], "description": "Parent type of the user group." }, "privileges": { @@ -9131,10 +8586,7 @@ }, "type": { "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], + "enum": ["LOCAL_GROUP", "LDAP_GROUP"], "description": "Type of the user group." }, "users": { @@ -9146,10 +8598,7 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." }, "roles": { @@ -9163,9 +8612,7 @@ }, "MetadataSearchResponse": { "type": "object", - "required": [ - "metadata_type" - ], + "required": ["metadata_type"], "properties": { "metadata_id": { "type": "string", @@ -9253,10 +8700,7 @@ }, "PermissionInput": { "type": "object", - "required": [ - "principal", - "share_mode" - ], + "required": ["principal", "share_mode"], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -9264,11 +8708,7 @@ }, "share_mode": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Object share mode." } }, @@ -9276,10 +8716,7 @@ }, "ExcludeMetadataListItemInput": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -9339,10 +8776,7 @@ }, "order": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], + "enum": ["ASC", "DESC"], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -9414,10 +8848,7 @@ }, "page_orientation": { "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], + "enum": ["PORTRAIT", "LANDSCAPE"], "default": "PORTRAIT", "description": "Page orientation of the PDF." }, @@ -9449,10 +8880,7 @@ }, "LogResponse": { "type": "object", - "required": [ - "date", - "log" - ], + "required": ["date", "log"], "properties": { "date": { "type": "string", @@ -9539,11 +8967,7 @@ }, "SearchConnectionResponse": { "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], + "required": ["id", "name", "data_warehouse_type"], "properties": { "id": { "type": "string", @@ -9627,22 +9051,14 @@ }, "order": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], + "enum": ["ASC", "DESC"], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } } }, "SearchRoleResponse": { "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], + "required": ["id", "name", "description", "privileges"], "properties": { "id": { "type": "string", @@ -9717,11 +9133,7 @@ }, "permission": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Permission details of the Role" }, "author_id": { @@ -9765,12 +9177,7 @@ }, "ResponseCustomAction": { "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], + "required": ["action_details", "default_action_config", "id", "name"], "properties": { "action_details": { "$ref": "#/components/schemas/Action_details", @@ -9815,20 +9222,6 @@ }, "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." }, - "TypeInput": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type" - } - }, - "description": "Filter the action objects based on type" - }, "Token": { "type": "object", "required": [ @@ -9870,9 +9263,7 @@ }, "TagMetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "type": { "type": "string", @@ -9893,11 +9284,7 @@ }, "ImportUserGroupsResponse": { "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], + "required": ["groups_added", "groups_deleted", "groups_updated"], "properties": { "groups_added": { "type": "array", @@ -9924,10 +9311,7 @@ }, "GroupsImportListInput": { "type": "object", - "required": [ - "display_name", - "group_identifier" - ], + "required": ["display_name", "group_identifier"], "properties": { "display_name": { "type": "string", @@ -9987,10 +9371,7 @@ }, "type": { "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], + "enum": ["LOCAL_GROUP", "LDAP_GROUP"], "description": "Type of the user group." }, "user_identifiers": { @@ -10002,10 +9383,7 @@ }, "visibility": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], + "enum": ["SHARABLE", "NON_SHARABLE"], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." } } @@ -10048,9 +9426,7 @@ }, "MetadataObject": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "identifier": { "type": "string", @@ -10058,11 +9434,7 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], + "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], "description": "Type of metadata." } } @@ -10137,11 +9509,7 @@ }, "CreateConnectionResponse": { "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], + "required": ["id", "name", "data_warehouse_type"], "properties": { "id": { "type": "string", @@ -10178,12 +9546,7 @@ }, "RoleResponse": { "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], + "required": ["id", "name", "description", "privileges"], "properties": { "id": { "type": "string", @@ -10246,11 +9609,7 @@ }, "permission": { "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], + "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], "description": "Permission details of the Role" }, "author_id": { @@ -10367,9 +9726,7 @@ }, "LiveboardOptionsInput": { "type": "object", - "required": [ - "visualization_identifiers" - ], + "required": ["visualization_identifiers"], "properties": { "visualization_identifiers": { "type": "array", @@ -10414,9 +9771,7 @@ }, "page_size": { "type": "string", - "enum": [ - "A4" - ], + "enum": ["A4"], "description": "Page size." }, "truncate_table": { @@ -10428,9 +9783,7 @@ }, "FrequencyInput": { "type": "object", - "required": [ - "cron_expression" - ], + "required": ["cron_expression"], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpressionInput", @@ -10467,9 +9820,7 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD" - ] + "enum": ["LIVEBOARD"] } } }, @@ -10521,13 +9872,11 @@ "description": "URL Custom Action Type" } }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required." + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" }, "Associate_Metadata_Input_Create": { "type": "object", - "required": [ - "identifier" - ], + "required": ["identifier"], "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", @@ -10539,11 +9888,7 @@ }, "type": { "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], + "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], "description": "Type of metadata." } } @@ -10586,11 +9931,7 @@ }, "type": { "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], + "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], "description": "Type of metadata." } } @@ -10607,11 +9948,7 @@ }, "FavoriteMetadataItem": { "type": "object", - "required": [ - "id", - "name", - "type" - ], + "required": ["id", "name", "type"], "properties": { "id": { "type": "string", @@ -10640,9 +9977,7 @@ }, "ImportUserType": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "id": { "type": "string", @@ -10783,11 +10118,7 @@ }, "SqlQuery": { "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], + "required": ["metadata_id", "metadata_name", "sql_query"], "properties": { "metadata_id": { "type": "string", @@ -10832,9 +10163,7 @@ }, "DataWarehouseObjects": { "type": "object", - "required": [ - "databases" - ], + "required": ["databases"], "properties": { "databases": { "type": "array", @@ -10892,11 +10221,7 @@ }, "Metadata_Association_Item": { "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], + "required": ["action_config", "identifier", "type"], "properties": { "action_config": { "$ref": "#/components/schemas/Action_config", @@ -10912,46 +10237,9 @@ } } }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { - "type": "object", - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url." - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" - } - }, - "description": "URL Custom Action Type" - }, "Scope": { "type": "object", - "required": [ - "access_type" - ], + "required": ["access_type"], "properties": { "access_type": { "type": "string", @@ -10970,10 +10258,7 @@ }, "CommitFileType": { "type": "object", - "required": [ - "file_name", - "status_code" - ], + "required": ["file_name", "status_code"], "properties": { "file_name": { "type": "string", @@ -11023,10 +10308,7 @@ }, "Author": { "type": "object", - "required": [ - "id", - "name" - ], + "required": ["id", "name"], "properties": { "id": { "type": "string", @@ -11041,9 +10323,7 @@ }, "Frequency": { "type": "object", - "required": [ - "cron_expression" - ], + "required": ["cron_expression"], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpression", @@ -11054,9 +10334,7 @@ }, "LiveboardOptions": { "type": "object", - "required": [ - "visualization_identifiers" - ], + "required": ["visualization_identifiers"], "properties": { "visualization_identifiers": { "type": "array", @@ -11070,10 +10348,7 @@ }, "MetadataResponse": { "type": "object", - "required": [ - "id", - "type" - ], + "required": ["id", "type"], "properties": { "name": { "type": "string" @@ -11083,9 +10358,7 @@ }, "type": { "type": "string", - "enum": [ - "LIVEBOARD" - ] + "enum": ["LIVEBOARD"] } } }, @@ -11122,9 +10395,7 @@ }, "page_size": { "type": "string", - "enum": [ - "A4" - ], + "enum": ["A4"], "description": "Page size." }, "truncate_table": { @@ -11228,10 +10499,7 @@ }, "PrincipalsListItemInput": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -11245,9 +10513,6 @@ }, "CALLBACKInputMandatory": { "type": "object", - "required": [ - "reference" - ], "properties": { "reference": { "type": "string", @@ -11258,9 +10523,7 @@ }, "URLInputMandatory": { "type": "object", - "required": [ - "url" - ], + "required": ["url"], "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", @@ -11289,11 +10552,7 @@ "properties": { "position": { "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], + "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], "default": "MENU", "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, @@ -11305,16 +10564,47 @@ }, "description": "Specify that the association is enabled for the metadata object Default" }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action." + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url." + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" + } + }, + "description": "URL Custom Action Type" + }, "ActionConfigInput": { "type": "object", "properties": { "position": { "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], + "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { @@ -11326,9 +10616,7 @@ }, "Database": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "name": { "type": "string", @@ -11359,9 +10647,7 @@ }, "URL": { "type": "object", - "required": [ - "url" - ], + "required": ["url"], "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", @@ -11399,41 +10685,6 @@ }, "description": "Specify that the association is enabled for the metadata object" }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization." - } - }, - "description": "Authorization type for the custom action." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter" - }, - "value": { - "type": "string", - "description": "Value for the url query parameter" - } - } - }, "CronExpression": { "type": "object", "required": [ @@ -11474,10 +10725,7 @@ }, "PrincipalsListItem": { "type": "object", - "required": [ - "identifier", - "type" - ], + "required": ["identifier", "type"], "properties": { "identifier": { "type": "string", @@ -11489,11 +10737,44 @@ } } }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key." + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization." + } + }, + "description": "Authorization type for the custom action." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter" + }, + "value": { + "type": "string", + "description": "Value for the url query parameter" + } + } + }, "SchemaObject": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "name": { "type": "string", @@ -11573,9 +10854,7 @@ }, "Table": { "type": "object", - "required": [ - "name" - ], + "required": ["name"], "properties": { "name": { "type": "string", @@ -11643,10 +10922,7 @@ }, "Column": { "type": "object", - "required": [ - "name", - "data_type" - ], + "required": ["name", "data_type"], "properties": { "name": { "type": "string", From 03cb9bf09db53c7f6de0b00bd842dac05a0cea1b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 22 Jun 2023 06:27:03 +0000 Subject: [PATCH 030/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1191 ++++++++++++++++++++++++------- 1 file changed, 951 insertions(+), 240 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2d3c4772a..f693d01e3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8,31 +8,41 @@ { "name": "9.0.0.cl", "id": "9.0.0.cl", - "tags": ["9.0.0.cl"], + "tags": [ + "9.0.0.cl" + ], "description": "Roles for version 9.0.0.cl" }, { "name": "9.2.0.cl", "id": "9.2.0.cl", - "tags": ["9.2.0.cl"], + "tags": [ + "9.2.0.cl" + ], "description": "Roles for version 9.2.0.cl" }, { "name": "9.5.0.cl", "id": "9.5.0.cl", - "tags": ["9.5.0.cl"], + "tags": [ + "9.5.0.cl" + ], "description": "Roles for version 9.5.0.cl" }, { "name": "9.4.0.cl", "id": "9.4.0.cl", - "tags": ["9.4.0.cl"], + "tags": [ + "9.4.0.cl" + ], "description": "Roles for version 9.4.0.cl" }, { "name": "9.6.0.cl", "id": "9.6.0.cl", - "tags": ["9.6.0.cl"], + "tags": [ + "9.6.0.cl" + ], "description": "Roles for version 9.6.0.cl" } ], @@ -42,7 +52,10 @@ "get": { "operationId": "getCurrentUserInfo", "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "parameters": [], "responses": { "200": { @@ -102,7 +115,10 @@ "get": { "operationId": "getCurrentUserToken", "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.4.0.cl"], + "tags": [ + "Authentication", + "9.4.0.cl" + ], "parameters": [], "responses": { "200": { @@ -162,7 +178,10 @@ "post": { "operationId": "searchUsers", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -180,7 +199,10 @@ "visibility": { "description": "Visibility of the user.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "email": { "description": "Email of the user account", @@ -374,7 +396,10 @@ "get": { "operationId": "getSystemInformation", "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.0.0.cl"], + "tags": [ + "System", + "9.0.0.cl" + ], "parameters": [], "responses": { "200": { @@ -463,7 +488,10 @@ "get": { "operationId": "getSystemConfig", "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.0.0.cl"], + "tags": [ + "System", + "9.0.0.cl" + ], "parameters": [], "responses": { "200": { @@ -530,7 +558,10 @@ "get": { "operationId": "getSystemOverrideInfo", "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.2.0.cl"], + "tags": [ + "System", + "9.2.0.cl" + ], "parameters": [], "responses": { "200": { @@ -590,7 +621,10 @@ "post": { "operationId": "searchOrgs", "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -608,12 +642,18 @@ "visibility": { "description": "Visibility of the Org.", "type": "string", - "enum": ["SHOW", "HIDDEN"] + "enum": [ + "SHOW", + "HIDDEN" + ] }, "status": { "description": "Status of the Org.", "type": "string", - "enum": ["ACTIVE", "IN_ACTIVE"] + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] }, "user_identifiers": { "description": "GUIDs or names of the users for which you want to retrieve the Orgs data.", @@ -709,7 +749,10 @@ "post": { "operationId": "searchTags", "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -825,7 +868,10 @@ "post": { "operationId": "searchUserGroups", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -898,7 +944,10 @@ "type": { "description": "Group type.", "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"] + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, "user_identifiers": { "description": "GUID or name of the users assigned to the group.", @@ -910,7 +959,10 @@ "visibility": { "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "role_identifiers": { "description": "Filter groups with a list of roles assigned to a group", @@ -1002,7 +1054,10 @@ "post": { "operationId": "searchMetadata", "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1034,7 +1089,10 @@ "description": "Version of the dependent table of the metadata like worksheets.", "default": "V1", "type": "string", - "enum": ["V1", "V2"] + "enum": [ + "V1", + "V2" + ] }, "exclude_objects": { "description": "List of metadata objects to exclude from search.", @@ -1197,7 +1255,10 @@ "post": { "operationId": "fetchLiveboardSqlQuery", "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1216,7 +1277,9 @@ } } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1281,7 +1344,10 @@ "post": { "operationId": "fetchAnswerSqlQuery", "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1293,7 +1359,9 @@ "type": "string" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1358,7 +1426,10 @@ "post": { "operationId": "exportLiveboardReport", "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Reports", "9.0.0.cl"], + "tags": [ + "Reports", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1384,7 +1455,12 @@ "description": "Export file format.", "default": "CSV", "type": "string", - "enum": ["CSV", "PDF", "XLSX", "PNG"] + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:'region', op1: 'EQ', val1: 'northeast' }", @@ -1407,7 +1483,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1472,7 +1550,10 @@ "post": { "operationId": "exportAnswerReport", "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Reports", "9.0.0.cl"], + "tags": [ + "Reports", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1487,7 +1568,12 @@ "description": "Export file format.", "default": "CSV", "type": "string", - "enum": ["CSV", "PDF", "XLSX", "PNG"] + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] }, "runtime_filter": { "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", @@ -1502,7 +1588,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -1567,7 +1655,10 @@ "post": { "operationId": "fetchPermissionsOfPrincipals", "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1589,7 +1680,9 @@ } } }, - "required": ["principals"] + "required": [ + "principals" + ] } } }, @@ -1698,7 +1791,10 @@ "post": { "operationId": "fetchPermissionsOnMetadata", "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1726,7 +1822,9 @@ "nullable": true } }, - "required": ["metadata"] + "required": [ + "metadata" + ] } } }, @@ -1856,7 +1954,10 @@ "post": { "operationId": "searchData", "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Data", "9.0.0.cl"], + "tags": [ + "Data", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1875,7 +1976,9 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": ["COMPACT"] + "enum": [ + "COMPACT" + ] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -1902,7 +2005,10 @@ "type": "object" } }, - "required": ["query_string", "logical_table_identifier"] + "required": [ + "query_string", + "logical_table_identifier" + ] } } }, @@ -1967,7 +2073,10 @@ "post": { "operationId": "fetchLiveboardData", "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Data", "9.0.0.cl"], + "tags": [ + "Data", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -1993,7 +2102,9 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": ["COMPACT"] + "enum": [ + "COMPACT" + ] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -2020,7 +2131,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -2085,7 +2198,10 @@ "post": { "operationId": "fetchAnswerData", "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Data", "9.0.0.cl"], + "tags": [ + "Data", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2100,7 +2216,9 @@ "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", - "enum": ["COMPACT"] + "enum": [ + "COMPACT" + ] }, "record_offset": { "description": "The starting record number from where the records should be included.", @@ -2127,7 +2245,9 @@ "type": "object" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -2192,7 +2312,10 @@ "post": { "operationId": "fetchLogs", "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Log", "9.0.0.cl"], + "tags": [ + "Log", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2202,7 +2325,9 @@ "log_type": { "description": "Name of the log type.", "type": "string", - "enum": ["SECURITY_AUDIT"] + "enum": [ + "SECURITY_AUDIT" + ] }, "start_epoch_time_in_millis": { "description": "Start time in EPOCH format", @@ -2215,7 +2340,9 @@ "format": "float" } }, - "required": ["log_type"] + "required": [ + "log_type" + ] } } }, @@ -2283,7 +2410,9 @@ "post": { "operationId": "searchConfig", "description": "\n\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -2364,7 +2493,9 @@ "post": { "operationId": "searchCommits", "description": "\n\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -2378,7 +2509,11 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] }, "branch_name": { "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", @@ -2395,7 +2530,9 @@ "format": "int32" } }, - "required": ["metadata_identifier"] + "required": [ + "metadata_identifier" + ] } } }, @@ -2463,7 +2600,10 @@ "post": { "operationId": "searchConnection", "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects configured on the ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n* To get a list of all connection objects available in the ThoughtSpot system, send a `POST` request with no attributes in the request body.\n* To get the connection objects created for a specific type of data warehouse, set the type in `data_warehouse_types`.\n* To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n* To get details of the database, schemas, tables, or columns from a data connection object, specify the `data_warehouse_object_type` attribute.\n* To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. \nNote that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n* To include more details about connection objects in the API response, set `include_details` to `true`.\n* You can also sort the output by field names and filter connections by tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2521,7 +2661,12 @@ "data_warehouse_object_type": { "description": "Data warehouse object type.", "type": "string", - "enum": ["DATABASE", "SCHEMA", "TABLE", "COLUMN"] + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] }, "sort_options": { "description": "Sort options.", @@ -2540,7 +2685,12 @@ "description": "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.", "default": "SERVICE_ACCOUNT", "type": "string", - "enum": ["SERVICE_ACCOUNT", "OAUTH", "IAM", "EXTOAUTH"] + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] } } } @@ -2609,7 +2759,10 @@ "post": { "operationId": "searchRoles", "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2697,7 +2850,11 @@ "type": "array", "items": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"] + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] } } } @@ -2767,7 +2924,10 @@ "post": { "operationId": "searchCustomActions", "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2804,7 +2964,10 @@ "type": { "description": "Filter the action objects based on type", "type": "string", - "enum": ["CALLBACK", "URL"] + "enum": [ + "CALLBACK", + "URL" + ] } } } @@ -2891,7 +3054,10 @@ "post": { "operationId": "login", "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -2973,7 +3139,10 @@ "post": { "operationId": "getObjectAccessToken", "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3032,7 +3201,10 @@ } } }, - "required": ["username", "object_id"] + "required": [ + "username", + "object_id" + ] } } }, @@ -3098,7 +3270,10 @@ "post": { "operationId": "getFullAccessToken", "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3153,7 +3328,9 @@ } } }, - "required": ["username"] + "required": [ + "username" + ] } } }, @@ -3219,7 +3396,10 @@ "post": { "operationId": "logout", "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "parameters": [], "responses": { "204": { @@ -3272,7 +3452,10 @@ "post": { "operationId": "revokeToken", "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Authentication", "9.0.0.cl"], + "tags": [ + "Authentication", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3342,7 +3525,10 @@ "post": { "operationId": "createUser", "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3407,7 +3593,10 @@ "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "default": "SHARABLE", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "notify_on_share": { "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", @@ -3439,7 +3628,12 @@ } } }, - "required": ["name", "display_name", "password", "email"] + "required": [ + "name", + "display_name", + "password", + "email" + ] } } }, @@ -3504,7 +3698,10 @@ "post": { "operationId": "updateUser", "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3522,7 +3719,10 @@ "visibility": { "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "email": { "description": "Email of the user account", @@ -3594,7 +3794,11 @@ "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": ["ADD", "REMOVE", "REPLACE"] + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } } } @@ -3663,7 +3867,10 @@ "post": { "operationId": "deleteUser", "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -3726,7 +3933,10 @@ "post": { "operationId": "importUsers", "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3757,7 +3967,9 @@ "nullable": true } }, - "required": ["users"] + "required": [ + "users" + ] } } }, @@ -3822,7 +4034,10 @@ "post": { "operationId": "changeUserPassword", "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3904,7 +4119,10 @@ "post": { "operationId": "resetUserPassword", "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -3920,7 +4138,10 @@ "type": "string" } }, - "required": ["new_password", "user_identifier"] + "required": [ + "new_password", + "user_identifier" + ] } } }, @@ -3978,7 +4199,10 @@ "post": { "operationId": "forceLogoutUsers", "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Users", "9.0.0.cl"], + "tags": [ + "Users", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4049,7 +4273,10 @@ "post": { "operationId": "updateSystemConfig", "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["System", "9.2.0.cl"], + "tags": [ + "System", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4061,7 +4288,9 @@ "type": "object" } }, - "required": ["configuration"] + "required": [ + "configuration" + ] } } }, @@ -4119,7 +4348,10 @@ "post": { "operationId": "createOrg", "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4135,7 +4367,9 @@ "type": "string" } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -4211,7 +4445,10 @@ "post": { "operationId": "updateOrg", "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4237,7 +4474,11 @@ "description": "Type of update operation. Default operation type is ADD", "default": "ADD", "type": "string", - "enum": ["ADD", "REMOVE", "REPLACE"] + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } } } @@ -4306,7 +4547,10 @@ "post": { "operationId": "deleteOrg", "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Orgs", "9.0.0.cl"], + "tags": [ + "Orgs", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -4369,7 +4613,10 @@ "post": { "operationId": "createTag", "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4385,7 +4632,9 @@ "type": "string" } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -4468,7 +4717,10 @@ "post": { "operationId": "updateTag", "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4550,7 +4802,10 @@ "post": { "operationId": "deleteTag", "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -4613,7 +4868,10 @@ "post": { "operationId": "assignTag", "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4635,7 +4893,10 @@ } } }, - "required": ["metadata", "tag_identifiers"] + "required": [ + "metadata", + "tag_identifiers" + ] } } }, @@ -4693,7 +4954,10 @@ "post": { "operationId": "unassignTag", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Tags", "9.0.0.cl"], + "tags": [ + "Tags", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4715,7 +4979,10 @@ } } }, - "required": ["metadata", "tag_identifiers"] + "required": [ + "metadata", + "tag_identifiers" + ] } } }, @@ -4773,7 +5040,10 @@ "post": { "operationId": "createUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4840,7 +5110,10 @@ "description": "Group type.", "default": "LOCAL_GROUP", "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"] + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", @@ -4853,7 +5126,10 @@ "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", "default": "SHARABLE", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", @@ -4863,7 +5139,10 @@ } } }, - "required": ["name", "display_name"] + "required": [ + "name", + "display_name" + ] } } }, @@ -4928,7 +5207,10 @@ "post": { "operationId": "updateUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -4994,7 +5276,10 @@ "type": { "description": "Type of the user group.", "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"] + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, "user_identifiers": { "description": "GUID or name of the users to assign to the group.", @@ -5006,7 +5291,10 @@ "visibility": { "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"] + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, "role_identifiers": { "description": "Role identifiers of the roles that should be assigned to the group.", @@ -5019,7 +5307,11 @@ "description": "Type of update operation. Default operation type is REPLACE", "default": "REPLACE", "type": "string", - "enum": ["ADD", "REMOVE", "REPLACE"] + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } } } @@ -5088,7 +5380,10 @@ "post": { "operationId": "deleteUserGroup", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "parameters": [ { "in": "path", @@ -5151,7 +5446,10 @@ "post": { "operationId": "importUserGroups", "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Groups", "9.0.0.cl"], + "tags": [ + "Groups", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5241,7 +5539,10 @@ "post": { "operationId": "importMetadataTML", "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5259,7 +5560,11 @@ "description": "Specifies the import policy for the TML import.", "default": "PARTIAL", "type": "string", - "enum": ["PARTIAL", "ALL_OR_NONE", "VALIDATE_ONLY"] + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY" + ] }, "create_new": { "description": "If selected, creates TML objects with new GUIDs.", @@ -5268,7 +5573,9 @@ "nullable": true } }, - "required": ["metadata_tmls"] + "required": [ + "metadata_tmls" + ] } } }, @@ -5336,7 +5643,10 @@ "post": { "operationId": "exportMetadataTML", "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5366,10 +5676,15 @@ "description": "TML EDOC content format.", "default": "JSON", "type": "string", - "enum": ["JSON", "YAML"] + "enum": [ + "JSON", + "YAML" + ] } }, - "required": ["metadata"] + "required": [ + "metadata" + ] } } }, @@ -5437,7 +5752,10 @@ "post": { "operationId": "deleteMetadata", "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Metadata", "9.0.0.cl"], + "tags": [ + "Metadata", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5458,7 +5776,9 @@ "nullable": true } }, - "required": ["metadata"] + "required": [ + "metadata" + ] } } }, @@ -5516,7 +5836,10 @@ "post": { "operationId": "assignChangeAuthor", "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5539,7 +5862,10 @@ "type": "string" } }, - "required": ["metadata", "user_identifier"] + "required": [ + "metadata", + "user_identifier" + ] } } }, @@ -5597,7 +5923,10 @@ "post": { "operationId": "shareMetadata", "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Security", "9.0.0.cl"], + "tags": [ + "Security", + "9.0.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -5607,7 +5936,11 @@ "metadata_type": { "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"] + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] }, "metadata_identifiers": { "description": "Unique ID or name of metadata objects.", @@ -5712,7 +6045,9 @@ "post": { "operationId": "createConfig", "description": "\n\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -5757,7 +6092,11 @@ "type": "string" } }, - "required": ["repository_url", "username", "access_token"] + "required": [ + "repository_url", + "username", + "access_token" + ] } } }, @@ -5822,7 +6161,9 @@ "post": { "operationId": "updateConfig", "description": "\n\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -5925,7 +6266,9 @@ "post": { "operationId": "deleteConfig", "description": "\n\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -5994,7 +6337,9 @@ "post": { "operationId": "commitBranch", "description": "\n\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6017,7 +6362,10 @@ "type": "string" } }, - "required": ["metadata", "comment"] + "required": [ + "metadata", + "comment" + ] } } }, @@ -6082,7 +6430,9 @@ "post": { "operationId": "revertCommit", "description": "\n\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6104,7 +6454,10 @@ "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", - "enum": ["ALL_OR_NONE", "PARTIAL"] + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] } } } @@ -6180,7 +6533,9 @@ "post": { "operationId": "validateMerge", "description": "\n\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6196,7 +6551,10 @@ "type": "string" } }, - "required": ["source_branch_name", "target_branch_name"] + "required": [ + "source_branch_name", + "target_branch_name" + ] } } }, @@ -6264,7 +6622,9 @@ "post": { "operationId": "deployCommit", "description": "\n\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Version Control"], + "tags": [ + "Version Control" + ], "requestBody": { "content": { "application/json": { @@ -6283,13 +6643,19 @@ "description": "Indicates if all files or only modified file at specified commit point should be considered", "default": "DELTA", "type": "string", - "enum": ["FULL", "DELTA"] + "enum": [ + "FULL", + "DELTA" + ] }, "deploy_policy": { "description": "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.", "default": "ALL_OR_NONE", "type": "string", - "enum": ["ALL_OR_NONE", "PARTIAL"] + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] } } } @@ -6358,7 +6724,10 @@ "post": { "operationId": "createConnection", "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6472,7 +6841,10 @@ "post": { "operationId": "deleteConnection", "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6484,7 +6856,9 @@ "type": "string" } }, - "required": ["connection_identifier"] + "required": [ + "connection_identifier" + ] } } }, @@ -6542,7 +6916,10 @@ "post": { "operationId": "updateConnection", "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Connections", "9.2.0.cl"], + "tags": [ + "Connections", + "9.2.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6572,7 +6949,9 @@ "nullable": true } }, - "required": ["connection_identifier"] + "required": [ + "connection_identifier" + ] } } }, @@ -6630,7 +7009,10 @@ "post": { "operationId": "createRole", "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6674,7 +7056,9 @@ } } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -6739,7 +7123,10 @@ "post": { "operationId": "updateRole", "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6783,7 +7170,9 @@ } } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -6858,7 +7247,10 @@ "post": { "operationId": "deleteRole", "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": ["Roles", "9.5.0.cl"], + "tags": [ + "Roles", + "9.5.0.cl" + ], "parameters": [ { "in": "path", @@ -6921,7 +7313,10 @@ "post": { "operationId": "createSchedule", "description": "Create schedule.
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -6939,7 +7334,9 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", @@ -6949,7 +7346,10 @@ "description": "Export file format.", "default": "PDF", "type": "string", - "enum": ["CSV", "PDF"] + "enum": [ + "CSV", + "PDF" + ] }, "liveboard_options": { "description": "Options to specify details of liveboard.", @@ -7045,7 +7445,10 @@ "post": { "operationId": "deleteSchedule", "description": "Deletes a schedule
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "parameters": [ { "in": "path", @@ -7108,7 +7511,10 @@ "post": { "operationId": "searchSchedules", "description": "Search Schedules
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7214,7 +7620,10 @@ "post": { "operationId": "updateSchedule", "description": "Update schedule.
Version: 9.4.0.cl or later", - "tags": ["Schedules", "9.4.0.cl"], + "tags": [ + "Schedules", + "9.4.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7232,7 +7641,9 @@ "metadata_type": { "description": "Type of metadata.", "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] }, "metadata_identifier": { "description": "Unique ID or name of the metadata.", @@ -7241,7 +7652,10 @@ "file_format": { "description": "Export file format.", "type": "string", - "enum": ["CSV", "PDF"] + "enum": [ + "CSV", + "PDF" + ] }, "liveboard_options": { "description": "Options to specify details of liveboard.", @@ -7266,7 +7680,10 @@ "status": { "description": "Status of the schedule", "type": "string", - "enum": ["ACTIVE", "PAUSE"] + "enum": [ + "ACTIVE", + "PAUSE" + ] } } } @@ -7335,7 +7752,10 @@ "post": { "operationId": "createCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7369,7 +7789,10 @@ } } }, - "required": ["name", "action_details"] + "required": [ + "name", + "action_details" + ] } } }, @@ -7452,7 +7875,10 @@ "post": { "operationId": "updateCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "requestBody": { "content": { "application/json": { @@ -7489,7 +7915,10 @@ "description": "Type of update operation. Default operation type is ADD", "default": "ADD", "type": "string", - "enum": ["ADD", "REMOVE"] + "enum": [ + "ADD", + "REMOVE" + ] } } } @@ -7558,7 +7987,10 @@ "post": { "operationId": "deleteCustomAction", "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": ["Custom Action", "9.6.0.cl"], + "tags": [ + "Custom Action", + "9.6.0.cl" + ], "parameters": [ { "in": "path", @@ -7630,7 +8062,12 @@ }, "User": { "type": "object", - "required": ["id", "name", "display_name", "visibility"], + "required": [ + "id", + "name", + "display_name", + "visibility" + ], "properties": { "id": { "type": "string", @@ -7646,7 +8083,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." }, "author_id": { @@ -7691,7 +8131,13 @@ }, "account_status": { "type": "string", - "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], "description": "Status of the user account." }, "email": { @@ -7770,7 +8216,10 @@ }, "parent_type": { "type": "string", - "enum": ["USER", "GROUP"], + "enum": [ + "USER", + "GROUP" + ], "description": "Parent type of the user." }, "privileges": { @@ -7836,14 +8285,22 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION" + ], "description": "Type of metadata." } } }, "ImportUser": { "type": "object", - "required": ["user_identifier", "display_name"], + "required": [ + "user_identifier", + "display_name" + ], "properties": { "user_identifier": { "type": "string", @@ -7871,7 +8328,13 @@ }, "account_status": { "type": "string", - "enum": ["ACTIVE", "INACTIVE", "EXPIRED", "LOCKED", "PENDING"], + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], "default": "ACTIVE", "description": "Status of the user account." }, @@ -7895,7 +8358,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups,\nand thus allows them to share objects." }, "notify_on_share": { @@ -7952,12 +8418,21 @@ "properties": { "field_name": { "type": "string", - "enum": ["NAME", "DISPLAY_NAME", "AUTHOR", "CREATED", "MODIFIED"], + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], "description": "Name of the field to apply the sort on." }, "order": { "type": "string", - "enum": ["ASC", "DESC"], + "enum": [ + "ASC", + "DESC" + ], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -7985,7 +8460,9 @@ }, "MetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", @@ -8011,11 +8488,18 @@ }, "ExportMetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE", "CONNECTION"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION" + ], "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { @@ -8027,7 +8511,9 @@ }, "DeleteMetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", @@ -8049,7 +8535,10 @@ }, "PrincipalsInput": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -8057,18 +8546,28 @@ }, "type": { "type": "string", - "enum": ["USER", "USER_GROUP"], + "enum": [ + "USER", + "USER_GROUP" + ], "description": "Principal type." } } }, "AuthorMetadataTypeInput": { "type": "object", - "required": ["type", "identifier"], + "required": [ + "type", + "identifier" + ], "properties": { "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], "description": "Type of metadata." }, "identifier": { @@ -8080,7 +8579,10 @@ }, "PermissionsMetadataTypeInput": { "type": "object", - "required": ["type", "identifier"], + "required": [ + "type", + "identifier" + ], "properties": { "type": { "type": "string", @@ -8102,7 +8604,10 @@ }, "SharePermissionsInput": { "type": "object", - "required": ["principal", "share_mode"], + "required": [ + "principal", + "share_mode" + ], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -8110,14 +8615,20 @@ }, "share_mode": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Object share mode." } } }, "SearchDataResponse": { "type": "object", - "required": ["contents"], + "required": [ + "contents" + ], "properties": { "contents": { "type": "array", @@ -8131,7 +8642,11 @@ }, "AnswerDataResponse": { "type": "object", - "required": ["metadata_id", "metadata_name", "contents"], + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], "properties": { "metadata_id": { "type": "string", @@ -8153,7 +8668,11 @@ }, "LiveboardDataResponse": { "type": "object", - "required": ["metadata_id", "metadata_name", "contents"], + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], "properties": { "metadata_id": { "type": "string", @@ -8174,7 +8693,10 @@ }, "Org": { "type": "object", - "required": ["id", "name"], + "required": [ + "id", + "name" + ], "properties": { "id": { "type": "integer", @@ -8201,11 +8723,18 @@ }, "CustomActionMetadataTypeInput": { "type": "object", - "required": ["type", "identifier"], + "required": [ + "type", + "identifier" + ], "properties": { "type": { "type": "string", - "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], "description": "Type of metadata." }, "identifier": { @@ -8231,7 +8760,10 @@ }, "RiseSetter": { "type": "object", - "required": ["field", "path"], + "required": [ + "field", + "path" + ], "properties": { "field": { "type": "string" @@ -8396,7 +8928,10 @@ }, "status": { "type": "string", - "enum": ["ACTIVE", "IN_ACTIVE"], + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], "description": "Status of the organization." }, "description": { @@ -8405,14 +8940,20 @@ }, "visibility": { "type": "string", - "enum": ["SHOW", "HIDDEN"], + "enum": [ + "SHOW", + "HIDDEN" + ], "description": "Visibility of the organization." } } }, "Tag": { "type": "object", - "required": ["name", "id"], + "required": [ + "name", + "id" + ], "properties": { "name": { "type": "string" @@ -8456,7 +8997,12 @@ }, "UserGroupResponse": { "type": "object", - "required": ["display_name", "id", "name", "visibility"], + "required": [ + "display_name", + "id", + "name", + "visibility" + ], "properties": { "author_id": { "type": "string", @@ -8556,7 +9102,10 @@ }, "parent_type": { "type": "string", - "enum": ["USER", "GROUP"], + "enum": [ + "USER", + "GROUP" + ], "description": "Parent type of the user group." }, "privileges": { @@ -8586,7 +9135,10 @@ }, "type": { "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"], + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], "description": "Type of the user group." }, "users": { @@ -8598,7 +9150,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." }, "roles": { @@ -8612,7 +9167,9 @@ }, "MetadataSearchResponse": { "type": "object", - "required": ["metadata_type"], + "required": [ + "metadata_type" + ], "properties": { "metadata_id": { "type": "string", @@ -8700,7 +9257,10 @@ }, "PermissionInput": { "type": "object", - "required": ["principal", "share_mode"], + "required": [ + "principal", + "share_mode" + ], "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", @@ -8708,7 +9268,11 @@ }, "share_mode": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Object share mode." } }, @@ -8716,7 +9280,10 @@ }, "ExcludeMetadataListItemInput": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -8776,7 +9343,10 @@ }, "order": { "type": "string", - "enum": ["ASC", "DESC"], + "enum": [ + "ASC", + "DESC" + ], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, @@ -8848,7 +9418,10 @@ }, "page_orientation": { "type": "string", - "enum": ["PORTRAIT", "LANDSCAPE"], + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], "default": "PORTRAIT", "description": "Page orientation of the PDF." }, @@ -8880,7 +9453,10 @@ }, "LogResponse": { "type": "object", - "required": ["date", "log"], + "required": [ + "date", + "log" + ], "properties": { "date": { "type": "string", @@ -8967,7 +9543,11 @@ }, "SearchConnectionResponse": { "type": "object", - "required": ["id", "name", "data_warehouse_type"], + "required": [ + "id", + "name", + "data_warehouse_type" + ], "properties": { "id": { "type": "string", @@ -9051,14 +9631,22 @@ }, "order": { "type": "string", - "enum": ["ASC", "DESC"], + "enum": [ + "ASC", + "DESC" + ], "description": "Sort order : ASC(Ascending) or DESC(Descending)." } } }, "SearchRoleResponse": { "type": "object", - "required": ["id", "name", "description", "privileges"], + "required": [ + "id", + "name", + "description", + "privileges" + ], "properties": { "id": { "type": "string", @@ -9133,7 +9721,11 @@ }, "permission": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Permission details of the Role" }, "author_id": { @@ -9177,7 +9769,12 @@ }, "ResponseCustomAction": { "type": "object", - "required": ["action_details", "default_action_config", "id", "name"], + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], "properties": { "action_details": { "$ref": "#/components/schemas/Action_details", @@ -9263,7 +9860,9 @@ }, "TagMetadataTypeInput": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "type": { "type": "string", @@ -9284,7 +9883,11 @@ }, "ImportUserGroupsResponse": { "type": "object", - "required": ["groups_added", "groups_deleted", "groups_updated"], + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], "properties": { "groups_added": { "type": "array", @@ -9311,7 +9914,10 @@ }, "GroupsImportListInput": { "type": "object", - "required": ["display_name", "group_identifier"], + "required": [ + "display_name", + "group_identifier" + ], "properties": { "display_name": { "type": "string", @@ -9371,7 +9977,10 @@ }, "type": { "type": "string", - "enum": ["LOCAL_GROUP", "LDAP_GROUP"], + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], "description": "Type of the user group." }, "user_identifiers": { @@ -9383,7 +9992,10 @@ }, "visibility": { "type": "string", - "enum": ["SHARABLE", "NON_SHARABLE"], + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." } } @@ -9426,7 +10038,9 @@ }, "MetadataObject": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "identifier": { "type": "string", @@ -9434,7 +10048,11 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD", "ANSWER", "LOGICAL_TABLE"], + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], "description": "Type of metadata." } } @@ -9509,7 +10127,11 @@ }, "CreateConnectionResponse": { "type": "object", - "required": ["id", "name", "data_warehouse_type"], + "required": [ + "id", + "name", + "data_warehouse_type" + ], "properties": { "id": { "type": "string", @@ -9546,7 +10168,12 @@ }, "RoleResponse": { "type": "object", - "required": ["id", "name", "description", "privileges"], + "required": [ + "id", + "name", + "description", + "privileges" + ], "properties": { "id": { "type": "string", @@ -9609,7 +10236,11 @@ }, "permission": { "type": "string", - "enum": ["READ_ONLY", "MODIFY", "NO_ACCESS"], + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], "description": "Permission details of the Role" }, "author_id": { @@ -9726,7 +10357,9 @@ }, "LiveboardOptionsInput": { "type": "object", - "required": ["visualization_identifiers"], + "required": [ + "visualization_identifiers" + ], "properties": { "visualization_identifiers": { "type": "array", @@ -9771,7 +10404,9 @@ }, "page_size": { "type": "string", - "enum": ["A4"], + "enum": [ + "A4" + ], "description": "Page size." }, "truncate_table": { @@ -9783,7 +10418,9 @@ }, "FrequencyInput": { "type": "object", - "required": ["cron_expression"], + "required": [ + "cron_expression" + ], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpressionInput", @@ -9820,7 +10457,9 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] } } }, @@ -9876,7 +10515,9 @@ }, "Associate_Metadata_Input_Create": { "type": "object", - "required": ["identifier"], + "required": [ + "identifier" + ], "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", @@ -9888,7 +10529,11 @@ }, "type": { "type": "string", - "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], "description": "Type of metadata." } } @@ -9931,7 +10576,11 @@ }, "type": { "type": "string", - "enum": ["VISUALIZATION", "ANSWER", "WORKSHEET"], + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], "description": "Type of metadata." } } @@ -9948,7 +10597,11 @@ }, "FavoriteMetadataItem": { "type": "object", - "required": ["id", "name", "type"], + "required": [ + "id", + "name", + "type" + ], "properties": { "id": { "type": "string", @@ -9977,7 +10630,9 @@ }, "ImportUserType": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "id": { "type": "string", @@ -10118,7 +10773,11 @@ }, "SqlQuery": { "type": "object", - "required": ["metadata_id", "metadata_name", "sql_query"], + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], "properties": { "metadata_id": { "type": "string", @@ -10163,7 +10822,9 @@ }, "DataWarehouseObjects": { "type": "object", - "required": ["databases"], + "required": [ + "databases" + ], "properties": { "databases": { "type": "array", @@ -10221,7 +10882,11 @@ }, "Metadata_Association_Item": { "type": "object", - "required": ["action_config", "identifier", "type"], + "required": [ + "action_config", + "identifier", + "type" + ], "properties": { "action_config": { "$ref": "#/components/schemas/Action_config", @@ -10239,7 +10904,9 @@ }, "Scope": { "type": "object", - "required": ["access_type"], + "required": [ + "access_type" + ], "properties": { "access_type": { "type": "string", @@ -10258,7 +10925,10 @@ }, "CommitFileType": { "type": "object", - "required": ["file_name", "status_code"], + "required": [ + "file_name", + "status_code" + ], "properties": { "file_name": { "type": "string", @@ -10308,7 +10978,10 @@ }, "Author": { "type": "object", - "required": ["id", "name"], + "required": [ + "id", + "name" + ], "properties": { "id": { "type": "string", @@ -10323,7 +10996,9 @@ }, "Frequency": { "type": "object", - "required": ["cron_expression"], + "required": [ + "cron_expression" + ], "properties": { "cron_expression": { "$ref": "#/components/schemas/CronExpression", @@ -10334,7 +11009,9 @@ }, "LiveboardOptions": { "type": "object", - "required": ["visualization_identifiers"], + "required": [ + "visualization_identifiers" + ], "properties": { "visualization_identifiers": { "type": "array", @@ -10348,7 +11025,10 @@ }, "MetadataResponse": { "type": "object", - "required": ["id", "type"], + "required": [ + "id", + "type" + ], "properties": { "name": { "type": "string" @@ -10358,7 +11038,9 @@ }, "type": { "type": "string", - "enum": ["LIVEBOARD"] + "enum": [ + "LIVEBOARD" + ] } } }, @@ -10395,7 +11077,9 @@ }, "page_size": { "type": "string", - "enum": ["A4"], + "enum": [ + "A4" + ], "description": "Page size." }, "truncate_table": { @@ -10499,7 +11183,10 @@ }, "PrincipalsListItemInput": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -10523,7 +11210,9 @@ }, "URLInputMandatory": { "type": "object", - "required": ["url"], + "required": [ + "url" + ], "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", @@ -10552,7 +11241,11 @@ "properties": { "position": { "type": "string", - "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], "default": "MENU", "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, @@ -10604,7 +11297,11 @@ "properties": { "position": { "type": "string", - "enum": ["MENU", "PRIMARY", "CONTEXT_MENU"], + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { @@ -10616,7 +11313,9 @@ }, "Database": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "name": { "type": "string", @@ -10647,7 +11346,9 @@ }, "URL": { "type": "object", - "required": ["url"], + "required": [ + "url" + ], "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", @@ -10725,7 +11426,10 @@ }, "PrincipalsListItem": { "type": "object", - "required": ["identifier", "type"], + "required": [ + "identifier", + "type" + ], "properties": { "identifier": { "type": "string", @@ -10774,7 +11478,9 @@ }, "SchemaObject": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "name": { "type": "string", @@ -10854,7 +11560,9 @@ }, "Table": { "type": "object", - "required": ["name"], + "required": [ + "name" + ], "properties": { "name": { "type": "string", @@ -10922,7 +11630,10 @@ }, "Column": { "type": "object", - "required": ["name", "data_type"], + "required": [ + "name", + "data_type" + ], "properties": { "name": { "type": "string", @@ -10973,4 +11684,4 @@ } } ] -} +} \ No newline at end of file From 1f7cde7420de1cffb0a3eb611dc68ddefb1a5f77 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 5 Jul 2023 06:55:21 +0000 Subject: [PATCH 031/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 48 ++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f693d01e3..ebd790e5e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2635,7 +2635,17 @@ "DENODO", "DREMIO", "TRINO", - "PRESTO" + "PRESTO", + "POSTGRES", + "SQL_SERVER", + "MYSQL", + "GENERIC_JDBC", + "AMAZON_RDS_POSTGRESQL", + "AMAZON_AURORA_POSTGRESQL", + "AMAZON_RDS_MYSQL", + "AMAZON_AURORA_MYSQL", + "LOOKER", + "AMAZON_ATHENA" ] } }, @@ -6758,7 +6768,17 @@ "DENODO", "DREMIO", "TRINO", - "PRESTO" + "PRESTO", + "POSTGRES", + "SQL_SERVER", + "MYSQL", + "GENERIC_JDBC", + "AMAZON_RDS_POSTGRESQL", + "AMAZON_AURORA_POSTGRESQL", + "AMAZON_RDS_MYSQL", + "AMAZON_AURORA_MYSQL", + "LOOKER", + "AMAZON_ATHENA" ] }, "data_warehouse_config": { @@ -9576,7 +9596,17 @@ "DENODO", "DREMIO", "TRINO", - "PRESTO" + "PRESTO", + "POSTGRES", + "SQL_SERVER", + "MYSQL", + "GENERIC_JDBC", + "AMAZON_RDS_POSTGRESQL", + "AMAZON_AURORA_POSTGRESQL", + "AMAZON_RDS_MYSQL", + "AMAZON_AURORA_MYSQL", + "LOOKER", + "AMAZON_ATHENA" ], "description": "Type of data warehouse." }, @@ -10156,7 +10186,17 @@ "DENODO", "DREMIO", "TRINO", - "PRESTO" + "PRESTO", + "POSTGRES", + "SQL_SERVER", + "MYSQL", + "GENERIC_JDBC", + "AMAZON_RDS_POSTGRESQL", + "AMAZON_AURORA_POSTGRESQL", + "AMAZON_RDS_MYSQL", + "AMAZON_AURORA_MYSQL", + "LOOKER", + "AMAZON_ATHENA" ], "description": "Type of data warehouse." }, From 7563d3cc267021eb0371725a8ab6931ccb2a2789 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 5 Jul 2023 06:58:28 +0000 Subject: [PATCH 032/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 45 ++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ebd790e5e..d692923fa 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2409,9 +2409,10 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\n\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -2492,9 +2493,10 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\n\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6054,9 +6056,10 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\n\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6170,9 +6173,10 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\n\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6275,9 +6279,10 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\n\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6346,9 +6351,10 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6439,9 +6445,10 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6542,9 +6549,10 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\n\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -6631,9 +6639,10 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { From 65a3eedb41fd144d9c8cc3792f931a81ab59d444 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 6 Jul 2023 04:15:05 +0000 Subject: [PATCH 033/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d692923fa..1b2bbfb50 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3638,6 +3638,23 @@ "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string" + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user", + "type": "boolean", + "nullable": true } }, "required": [ @@ -3811,6 +3828,18 @@ "REMOVE", "REPLACE" ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string" + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" } } } @@ -8302,6 +8331,18 @@ "org_privileges": { "type": "object", "description": "Privileges which are assigned to the user with org." + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user." + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user" + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user" } } }, From a928216d619d8b6518253e817fc53196cc43d538 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 7 Jul 2023 04:13:53 +0000 Subject: [PATCH 034/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 1b2bbfb50..bccf83b97 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6023,7 +6023,6 @@ } }, "required": [ - "metadata_type", "metadata_identifiers", "permissions", "emails", @@ -8357,9 +8356,7 @@ "type": "string", "enum": [ "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION" + "ANSWER" ], "description": "Type of metadata." } @@ -8606,8 +8603,7 @@ "PrincipalsInput": { "type": "object", "required": [ - "identifier", - "type" + "identifier" ], "properties": { "identifier": { @@ -8627,7 +8623,6 @@ "AuthorMetadataTypeInput": { "type": "object", "required": [ - "type", "identifier" ], "properties": { @@ -8650,7 +8645,6 @@ "PermissionsMetadataTypeInput": { "type": "object", "required": [ - "type", "identifier" ], "properties": { @@ -8794,7 +8788,6 @@ "CustomActionMetadataTypeInput": { "type": "object", "required": [ - "type", "identifier" ], "properties": { From c3e6da64290917af33f938dcb9dbc938448fd0c3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 18 Jul 2023 05:47:41 +0000 Subject: [PATCH 035/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 488 ++++++++++++++++---------------- 1 file changed, 244 insertions(+), 244 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index bccf83b97..aeab880af 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -197,7 +197,7 @@ "type": "string" }, "visibility": { - "description": "Visibility of the user.", + "description": "Visibility of the user", "type": "string", "enum": [ "SHARABLE", @@ -209,14 +209,14 @@ "type": "string" }, "group_identifiers": { - "description": "GUID or name of the group to which the user belongs.", + "description": "GUID or name of the group to which the user belongs", "type": "array", "items": { "type": "string" } }, "privileges": { - "description": "Privileges assigned to the user.", + "description": "Privileges assigned to the user", "type": "array", "items": { "type": "string", @@ -246,7 +246,7 @@ } }, "account_type": { - "description": "Type of the account.", + "description": "Type of the account", "type": "string", "enum": [ "LOCAL_USER", @@ -273,12 +273,12 @@ "nullable": true }, "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", + "description": "The user preference for revisiting the onboarding experience", "type": "boolean", "nullable": true }, "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough.", + "description": "Indicates if the user has completed the onboarding walkthrough", "type": "boolean", "nullable": true }, @@ -290,7 +290,7 @@ } }, "home_liveboard_identifier": { - "description": "Unique ID or name of the users home liveboard.", + "description": "Unique ID or name of the user's home Liveboard.", "type": "string" }, "favorite_metadata": { @@ -317,7 +317,7 @@ "$ref": "#/components/schemas/SortOptions" }, "role_identifiers": { - "description": "Filter with list of role assigned to the user.", + "description": "Filters by the role assigned to the user.", "type": "array", "items": { "type": "string" @@ -632,15 +632,15 @@ "type": "object", "properties": { "org_identifier": { - "description": "ID or name of the Org.", + "description": "ID or name of the Org", "type": "string" }, "description": { - "description": "Description of the Org.", + "description": "Description of the Org", "type": "string" }, "visibility": { - "description": "Visibility of the Org.", + "description": "Visibility of the Org", "type": "string", "enum": [ "SHOW", @@ -648,7 +648,7 @@ ] }, "status": { - "description": "Status of the Org.", + "description": "Status of the Org", "type": "string", "enum": [ "ACTIVE", @@ -656,7 +656,7 @@ ] }, "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data.", + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", "type": "array", "items": { "type": "string" @@ -879,14 +879,14 @@ "type": "object", "properties": { "default_liveboard_identifiers": { - "description": "GUID of Liveboards which will be assigned as default Liveboards for the users in the specified group.", + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", "type": "array", "items": { "type": "string" } }, "description": { - "description": "Description of the group.", + "description": "Description of the group", "type": "string" }, "display_name": { @@ -898,7 +898,7 @@ "type": "string" }, "org_identifiers": { - "description": "ID or name of the Org to which the group belongs.", + "description": "ID or name of the Org to which the group belongs", "type": "array", "items": { "type": "string" @@ -1086,7 +1086,7 @@ } }, "dependent_object_version": { - "description": "Version of the dependent table of the metadata like worksheets.", + "description": "Version of the dependent table of the metadata objects like Worksheets.", "default": "V1", "type": "string", "enum": [ @@ -1153,7 +1153,7 @@ "nullable": true }, "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who have modified the metadata object.", + "description": "Includes ID or names of the users who modified the metadata object.", "type": "array", "items": { "type": "string" @@ -1561,7 +1561,7 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "Unique ID or name of the metadata.", + "description": "Unique ID or name of the metadata object.", "type": "string" }, "file_format": { @@ -1666,7 +1666,7 @@ "type": "object", "properties": { "principals": { - "description": "GUID or name of the principal.", + "description": "GUID or name of the user or group.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" @@ -1809,14 +1809,14 @@ } }, "principals": { - "description": "Principal objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" } }, "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of depedent metadata objects.", + "description": "Indicates whether to fetch permissions of dependent metadata objects.", "default": false, "type": "boolean", "nullable": true @@ -1969,7 +1969,7 @@ "type": "string" }, "logical_table_identifier": { - "description": "GUID of the data source object, such as a worksheet, view, or table.", + "description": "GUID of the data source object, such as a Worksheet, View, or Table.", "type": "string" }, "data_format": { @@ -2421,7 +2421,7 @@ "type": "object", "properties": { "org_identifiers": { - "description": " List of Unique identifier of the organization. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]\n \n\nNote: If no org identifier is specified,then the configurations will be returned for all orgs the user has access to
Version: 9.5.0.cl or later", + "description": " List of Org IDs. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]\n \n\nNote: If no org identifier is specified,then the configurations will be returned for all orgs the user has access to
Version: 9.5.0.cl or later", "type": "array", "items": { "type": "string" @@ -2782,7 +2782,7 @@ "type": "object", "properties": { "role_identifiers": { - "description": "unique ID or name of the Roles", + "description": "unique ID or name of the roles", "type": "array", "items": { "type": "string" @@ -2947,21 +2947,21 @@ "type": "object", "properties": { "custom_action_identifier": { - "description": "Name or Id of the custom action.", + "description": "Name or ID of the custom action.", "type": "string" }, "default_action_config": { - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "description": "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.", "$ref": "#/components/schemas/Default_Action_Config_Search_Input" }, "include_group_associations": { - "description": "When set to true, returns associated groups for custom action.", + "description": "When set to true, returns the associated groups for a custom action.", "default": false, "type": "boolean", "nullable": true }, "include_metadata_associations": { - "description": "When set to true, returns associated metadata for custom action.", + "description": "When set to true, returns the associated metadata for a custom action.", "default": false, "type": "boolean", "nullable": true @@ -3077,19 +3077,19 @@ "type": "object", "properties": { "username": { - "description": "Username of the user account", + "description": "Username of the ThoughtSpot user", "type": "string" }, "password": { - "description": "The password of the user account", + "description": "Password of the user account", "type": "string" }, "org_identifier": { - "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", + "description": "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.", "type": "string" }, "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", "default": false, "type": "boolean", "nullable": true @@ -3162,51 +3162,51 @@ "type": "object", "properties": { "username": { - "description": "Username of the user account", + "description": "Username of the ThoughtSpot user", "type": "string" }, "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "description": "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.", "type": "string" }, "password": { - "description": "The password of the user account", + "description": "Password of the user account", "default": "", "type": "string" }, "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", "default": "", "type": "string" }, "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", + "description": "Token validity duration in seconds", "default": 300, "type": "integer", "format": "int32" }, "org_id": { - "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", + "description": "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.", "default": 0, "type": "integer", "format": "int32" }, "email": { - "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", "type": "string" }, "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", "type": "string" }, "auto_create": { - "description": "“Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT) \n\n\nNote: This is only available for clusters with trusted authentication enabled. ", + "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. ", "default": false, "type": "boolean", "nullable": true }, "group_identifiers": { - "description": "Unique ID or name of the User Groups to which newly created user to be added. Use this parameter to provision a user just-in-time (JIT).", + "description": "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.", "type": "array", "items": { "type": "string" @@ -3293,33 +3293,33 @@ "type": "object", "properties": { "username": { - "description": "Username of the user account", + "description": "Username of the ThoughtSpot user", "type": "string" }, "password": { - "description": "The password of the user account", + "description": "Password of the user account", "default": "", "type": "string" }, "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", "default": "", "type": "string" }, "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", + "description": "Token validity duration in seconds", "default": 300, "type": "integer", "format": "int32" }, "org_id": { - "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", + "description": "ID of the Org context to log in to. If the Org ID is not specified, the user will be logged in to the Org context of their previous login session.", "default": 0, "type": "integer", "format": "int32" }, "email": { - "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", "type": "string" }, "display_name": { @@ -3327,7 +3327,7 @@ "type": "string" }, "auto_create": { - "description": " Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT). \n\nNote: This is only available for clusters with trusted authentication enabled.", + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", "default": false, "type": "boolean", "nullable": true @@ -4497,15 +4497,15 @@ "type": "object", "properties": { "name": { - "description": "Name of the Org.", + "description": "Name of the Org", "type": "string" }, "description": { - "description": "Description of the Org.", + "description": "Description of the Org", "type": "string" }, "user_identifiers": { - "description": "Add Users to an Org.", + "description": "Add Users to an Org", "type": "array", "items": { "type": "string" @@ -4534,7 +4534,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org." + "description": "ID or name of the Org" } ], "responses": { @@ -4600,7 +4600,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org." + "description": "ID or name of the Org" } ], "responses": { @@ -5096,22 +5096,22 @@ "type": "string" }, "display_name": { - "description": "Unique display name for the group.", + "description": "Display name for the group.", "type": "string" }, "default_liveboard_identifiers": { - "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", "type": "array", "items": { "type": "string" } }, "description": { - "description": "Description of the group.", + "description": "Description of the group", "type": "string" }, "privileges": { - "description": "Privileges to assign to the group.", + "description": "Privileges to assign to the group", "type": "array", "items": { "type": "string", @@ -5263,7 +5263,7 @@ "type": "string" }, "default_liveboard_identifiers": { - "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", "type": "array", "items": { "type": "string" @@ -5315,7 +5315,7 @@ } }, "type": { - "description": "Type of the user group.", + "description": "Type of the group", "type": "string", "enum": [ "LOCAL_GROUP", @@ -5498,7 +5498,7 @@ "type": "object", "properties": { "groups": { - "description": "Details of user groups which are to be imported", + "description": "Details of groups which are to be imported", "type": "array", "items": { "$ref": "#/components/schemas/GroupsImportListInput" @@ -6108,7 +6108,7 @@ "type": "string" }, "org_identifier": { - "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", + "description": " Unique identifier of the Org. If no value is provided, the user will be created in the Org associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", "type": "string" }, "branch_names": { @@ -6129,7 +6129,7 @@ "nullable": true }, "guid_mapping_branch_name": { - "description": " Name of the branch where file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "description": " Name of the branch where the file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", "type": "string" } }, @@ -6213,15 +6213,15 @@ "type": "object", "properties": { "username": { - "description": "Username to authenticate connection to vcs", + "description": "Username to authenticate connection to version control system", "type": "string" }, "access_token": { - "description": "Access token corresponding to the user to authenticate connection to vcs", + "description": "Access token corresponding to the user to authenticate connection to version control system", "type": "string" }, "org_identifier": { - "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", + "description": " Unique identifier of the Org. If no value is provided, the user will be created in the Org associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", "type": "string" }, "branch_names": { @@ -6241,7 +6241,7 @@ "nullable": true }, "guid_mapping_branch_name": { - "description": " Name of the branch where file containing guid mapping should be maintained This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "description": " Name of the branch in which the file containing guid mapping should be maintained. This will be set only if enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", "type": "string" } } @@ -6492,7 +6492,7 @@ } }, "branch_name": { - "description": " Name of the branch where the reverted version should be comitted\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string" }, "revert_policy": { @@ -6819,11 +6819,11 @@ ] }, "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", "type": "object" }, "validate": { - "description": "Indicates whether to validate the connection details.", + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", "default": true, "type": "boolean", "nullable": true @@ -7369,7 +7369,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "Create schedule.
Version: 9.4.0.cl or later", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7389,14 +7389,14 @@ "type": "string" }, "metadata_type": { - "description": "Type of metadata.", + "description": "Type of the metadata object.", "type": "string", "enum": [ "LIVEBOARD" ] }, "metadata_identifier": { - "description": "Unique ID or name of the metadata.", + "description": "Unique ID or name of the metadata object.", "type": "string" }, "file_format": { @@ -7409,11 +7409,11 @@ ] }, "liveboard_options": { - "description": "Options to specify details of liveboard.", + "description": "Options to specify details of Liveboard.", "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { - "description": "Options for PDF export.", + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { @@ -7422,11 +7422,11 @@ "type": "string" }, "frequency": { - "description": "Configuration of schedule with cron expression", + "description": "Frequency settings for the scheduled job.", "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { - "description": "Recipient configuration which includes emails and recipients of the schedule", + "description": "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.", "$ref": "#/components/schemas/RecipientDetailsInput" } }, @@ -7501,7 +7501,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "Deletes a schedule
Version: 9.4.0.cl or later", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7514,7 +7514,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the schedule." + "description": "Unique ID or name of the scheduled job." } ], "responses": { @@ -7567,7 +7567,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "Search Schedules
Version: 9.4.0.cl or later", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7579,7 +7579,7 @@ "type": "object", "properties": { "metadata": { - "description": "Metadata objects associated with schedules.", + "description": "Metadata objects associated with the scheduled jobs.", "type": "array", "items": { "$ref": "#/components/schemas/MetadataInput" @@ -7600,7 +7600,7 @@ "$ref": "#/components/schemas/SortingOptions" }, "history_runs_options": { - "description": "Options while fetching history runs wrt to the schedule.", + "description": "Options while fetching history runs for the schedule.", "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" }, "schedule_identifiers": { @@ -7676,7 +7676,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "Update schedule.
Version: 9.4.0.cl or later", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe API endpoint allows you to pause a scheduled job, change the status of a paused job, and edit the properties of a schedule, such as the recipient list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone settings. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7692,18 +7692,18 @@ "type": "string" }, "description": { - "description": "Description of the job.", + "description": "Description of the scheduled job.", "type": "string" }, "metadata_type": { - "description": "Type of metadata.", + "description": "Type of metadata object.", "type": "string", "enum": [ "LIVEBOARD" ] }, "metadata_identifier": { - "description": "Unique ID or name of the metadata.", + "description": "Unique ID or name of the metadata object.", "type": "string" }, "file_format": { @@ -7715,7 +7715,7 @@ ] }, "liveboard_options": { - "description": "Options to specify details of liveboard.", + "description": "Options to specify the details of a Liveboard.", "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { @@ -7727,11 +7727,11 @@ "type": "string" }, "frequency": { - "description": "Configuration of schedule with cron expression", + "description": "Frequency of the scheduled job run.", "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { - "description": "Recipient configuration which includes emails and recipients of the schedule", + "description": "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.", "$ref": "#/components/schemas/RecipientDetailsInput" }, "status": { @@ -7824,7 +7824,7 @@ "type": "string" }, "action_details": { - "description": "Action details includes Type and Configuration for Custom Actions,either Callback or URL is required.", + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", "$ref": "#/components/schemas/Action_Details_Input_Create" }, "associate_metadata": { @@ -7835,11 +7835,11 @@ } }, "default_action_config": { - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "description": "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.", "$ref": "#/components/schemas/Default_Action_Config_Input_Create" }, "group_identifiers": { - "description": "Unique ID or name of the User groups who will be associated with the custom action.", + "description": "Unique ID or name of the groups that can view and access the custom action.", "type": "array", "items": { "type": "string" @@ -7943,7 +7943,7 @@ "type": "object", "properties": { "action_details": { - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.", + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", "$ref": "#/components/schemas/Action_Details_Input" }, "associate_metadata": { @@ -7954,11 +7954,11 @@ } }, "default_action_config": { - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "description": "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.", "$ref": "#/components/schemas/Default_Action_Config_Input" }, "group_identifiers": { - "description": "Unique ID or name of the User groups who will be associated with the custom action.", + "description": "Unique ID or name of the groups that can view and access the custom action.", "type": "array", "items": { "type": "string" @@ -8056,7 +8056,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the Custom action." + "description": "Unique ID or name of the custom action." } ], "responses": { @@ -8144,7 +8144,7 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." }, "author_id": { "type": "string", @@ -8152,11 +8152,11 @@ }, "can_change_password": { "type": "boolean", - "description": "Indicates whether the user can change their password." + "description": "Defines whether the user can change their password." }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the user." + "description": "Defines whether the response has complete detail of the user." }, "creation_time_in_millis": { "type": "number", @@ -8165,7 +8165,7 @@ }, "current_org": { "$ref": "#/components/schemas/Org", - "description": "Current logged in Organizations of the user." + "description": "Current logged-in Org of the user." }, "deleted": { "type": "boolean", @@ -8215,12 +8215,12 @@ "items": { "$ref": "#/components/schemas/FavoriteMetadataItem" }, - "description": "Metadata objects to be assigned as favorites for the imported user." + "description": "Metadata objects to add to the users' favorites list." }, "first_login_time_in_millis": { "type": "number", "format": "float", - "description": "First login time of the user in milliseconds." + "description": "Timestamp of the first login session of the user in milliseconds." }, "group_mask": { "type": "integer", @@ -8233,7 +8233,7 @@ }, "home_liveboard": { "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the users home liveboard." + "description": "Unique ID or name of the default Liveboard assigned to the user." }, "incomplete_details": { "type": "object", @@ -8254,7 +8254,7 @@ }, "notify_on_share": { "type": "boolean", - "description": "User preference for receiving email notifications on shared answers or liveboard." + "description": "User preference for receiving email notifications on shared Answers or Liveboard." }, "onboarding_experience_completed": { "type": "boolean", @@ -8265,7 +8265,7 @@ "items": { "$ref": "#/components/schemas/Org" }, - "description": "Organizations in which user exists." + "description": "Orgs to which the user belongs." }, "owner_id": { "type": "string", @@ -8288,7 +8288,7 @@ }, "show_onboarding_experience": { "type": "boolean", - "description": "The user preference for revisiting the onboarding experience." + "description": "User's preference to revisit the new user onboarding experience." }, "super_user": { "type": "boolean", @@ -8314,7 +8314,7 @@ "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "User Groups which the user is part of." + "description": "Groups to which the user is assigned." }, "user_inherited_groups": { "type": "array", @@ -8350,7 +8350,7 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." }, "type": { "type": "string", @@ -8358,7 +8358,7 @@ "LIVEBOARD", "ANSWER" ], - "description": "Type of metadata." + "description": "Type of metadata object." } } }, @@ -8375,7 +8375,7 @@ }, "display_name": { "type": "string", - "description": "Unique display name of the user." + "description": "Display name of the user." }, "password": { "type": "string", @@ -8407,21 +8407,21 @@ }, "email": { "type": "string", - "description": "Email of the user." + "description": "Email address of the user." }, "org_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the Orgs for the users." + "description": "ID or name of the Orgs to which the user belongs." }, "group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the User Groups of the users." + "description": "ID or name of the groups to which the user belongs." }, "visibility": { "type": "string", @@ -8429,31 +8429,31 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups,\nand thus allows them to share objects." + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." }, "notify_on_share": { "type": "boolean", "default": true, - "description": "User preference for receiving email notifications on shared answers or liveboard." + "description": "Notify user when other users or groups share metadata objects" }, "show_onboarding_experience": { "type": "boolean", - "description": "The user preference for revisiting the onboarding experience." + "description": "Show or hide the new user onboarding walkthroughs" }, "onboarding_experience_completed": { "type": "boolean", - "description": "The user preference for turning off the onboarding experience." + "description": "Revisit the new user onboarding walkthroughs" }, "home_liveboard_identifier": { "type": "string", - "description": "Unique ID or name of the users home liveboard." + "description": "Unique ID or name of the default Liveboard assigned to the user." }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" }, - "description": "Metadata objects to be assigned as favorites for the imported user." + "description": "Metadata objects to add to the user's favorites list." } } }, @@ -8548,7 +8548,7 @@ }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." } }, "description": "MetadataType InputType associated in the Product" @@ -8571,10 +8571,10 @@ }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." } }, - "description": "MetadataType InputType used in Export MetadataType API's" + "description": "MetadataType InputType used in Export MetadataType API" }, "DeleteMetadataTypeInput": { "type": "object", @@ -8595,10 +8595,10 @@ }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." } }, - "description": "MetadataType InputType used in Delete MetadataType API's" + "description": "MetadataType InputType used in Delete MetadataType API" }, "PrincipalsInput": { "type": "object", @@ -8608,7 +8608,7 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the principal." + "description": "Unique ID or name of the principal object such as a user or group." }, "type": { "type": "string", @@ -8637,7 +8637,7 @@ }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." } }, "description": "MetadataType InputType used in Author API's" @@ -8657,11 +8657,11 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata." + "description": "Type of metadata object." }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." } }, "description": "MetadataType InputType used in Permission API's" @@ -8675,7 +8675,7 @@ "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or user groups." + "description": "Details of users or groups." }, "share_mode": { "type": "string", @@ -8684,7 +8684,7 @@ "MODIFY", "NO_ACCESS" ], - "description": "Object share mode." + "description": "Type of access to the shared object" } } }, @@ -8699,7 +8699,7 @@ "items": { "$ref": "#/components/schemas/AnswerContent" }, - "description": "Data content of metadata objects." + "description": "Data content of metadata objects" } }, "description": "Response format associated with the search data API." @@ -8718,14 +8718,14 @@ }, "metadata_name": { "type": "string", - "description": "Name of the metadata." + "description": "Name of the metadata object" }, "contents": { "type": "array", "items": { "$ref": "#/components/schemas/AnswerContent" }, - "description": "Data content of metadata objects." + "description": "Data content of metadata objects" } }, "description": "Response format associated with fetch data api" @@ -8744,14 +8744,14 @@ }, "metadata_name": { "type": "string", - "description": "Name of the metadata." + "description": "Name of the metadata object" }, "contents": { "type": "array", "items": { "$ref": "#/components/schemas/LiveboardContent" }, - "description": "Data content of metadata objects." + "description": "Data content of metadata objects" } } }, @@ -8772,7 +8772,7 @@ "description": "Name of the object." } }, - "description": "Current logged in Organizations of the user." + "description": "The current Org context of the user." }, "GenericInfo": { "type": "object", @@ -8798,11 +8798,11 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata." + "description": "Type of metadata object." }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." } }, "description": "MetadataType InputType used in Custom Action API's" @@ -8951,7 +8951,7 @@ }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL user group." + "description": "The unique identifier of ALL group." }, "accept_language": { "type": "string", @@ -8960,7 +8960,7 @@ "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL user group." + "description": "The count of users of ALL group." }, "logical_model_version": { "type": "integer", @@ -8983,11 +8983,11 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the organization." + "description": "Unique identifier of the Org." }, "name": { "type": "string", - "description": "Name of the organization." + "description": "Name of the Org." }, "status": { "type": "string", @@ -8995,11 +8995,11 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the organization." + "description": "Status of the Org." }, "description": { "type": "string", - "description": "Description of the organization." + "description": "Description of the Org." }, "visibility": { "type": "string", @@ -9007,7 +9007,7 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the organization." + "description": "Visibility of the Org." } } }, @@ -9073,52 +9073,52 @@ }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the user group." + "description": "Indicates whether the response has complete detail of the group." }, "content": { "type": "object", - "description": "Content details of the user group." + "description": "Content details of the group" }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the user group in milliseconds." + "description": "Creation time of the group in milliseconds" }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards which are assigned as default liveboards to the user group." + "description": "Liveboards that are assigned as default Liveboards to the group." }, "deleted": { "type": "boolean", - "description": "Indicates whether the user group is deleted." + "description": "Indicates whether the group is deleted" }, "deprecated": { "type": "boolean", - "description": "Indicates whether the user group is deprecated." + "description": "Indicates whether the group is deprecated" }, "description": { "type": "string", - "description": "Description of the user group." + "description": "Description of the group" }, "display_name": { "type": "string", - "description": "Display name of the user group." + "description": "Display name of the group." }, "external": { "type": "boolean", - "description": "Indicates whether the user group is external." + "description": "Indicates whether the group is external" }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the user group." + "description": "Generation number of the group" }, "hidden": { "type": "boolean", - "description": "Indicates whether the user group is hidden." + "description": "Indicates whether the group is hidden" }, "id": { "type": "string", @@ -9127,22 +9127,22 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the user group." + "description": "Index number of the group" }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the user group." + "description": "Index version number of the group" }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the user group." + "description": "Metadata version number of the group" }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user group in milliseconds." + "description": "Last modified time of the group in milliseconds." }, "modifier_id": { "type": "string", @@ -9150,14 +9150,14 @@ }, "name": { "type": "string", - "description": "Name of the user group." + "description": "Name of the group." }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which user group exists." + "description": "Orgs in which group exists." }, "owner_id": { "type": "string", @@ -9169,32 +9169,32 @@ "USER", "GROUP" ], - "description": "Parent type of the user group." + "description": "Parent type of the group." }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the user group." + "description": "Privileges which are assigned to the group" }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "User Groups who are part of the user group." + "description": "Groups who are part of the group" }, "system_group": { "type": "boolean", - "description": "Indicates whether the user group is a system group." + "description": "Indicates whether the group is a system group." }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the user group." + "description": "Tags associated with the group." }, "type": { "type": "string", @@ -9202,14 +9202,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the user group." + "description": "Type of the group." }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the user group." + "description": "Users who are part of the group." }, "visibility": { "type": "string", @@ -9217,7 +9217,7 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." }, "roles": { "type": "array", @@ -9299,7 +9299,7 @@ }, "name_pattern": { "type": "string", - "description": "A pattern to match case-insensitive name of the metadata object. User % for a wildcard match." + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." }, "type": { "type": "string", @@ -9314,7 +9314,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for user group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" } } }, @@ -9327,7 +9327,7 @@ "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or user groups." + "description": "Details of users or groups." }, "share_mode": { "type": "string", @@ -9339,7 +9339,7 @@ "description": "Object share mode." } }, - "description": "Details of users or user groups." + "description": "Details of users or groups." }, "ExcludeMetadataListItemInput": { "type": "object", @@ -9365,7 +9365,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for user group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." } } }, @@ -9375,14 +9375,14 @@ "include": { "type": "boolean", "default": false, - "description": "Includes objects marked as favorite for the specified user GUIDs." + "description": "Includes objects marked as favorite for the specified users." }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users. If not specified then favorite of current logged in user is considered." + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." } }, "description": "Favorite object options." @@ -9462,7 +9462,7 @@ "include_cover_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", @@ -9491,7 +9491,7 @@ "truncate_table": { "type": "boolean", "default": false, - "description": "Indicates whether to include only first page of the tables." + "description": "Indicates whether to include only the first page of the tables." }, "page_footer_text": { "type": "string", @@ -9505,7 +9505,7 @@ "include_cover_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title." }, "include_filter_page": { "type": "boolean", @@ -9540,7 +9540,7 @@ }, "username": { "type": "string", - "description": "Username to authenticate connection to vcs" + "description": "Username to authenticate connection to the version control system" }, "default_branch": { "type": "string", @@ -9559,11 +9559,11 @@ }, "guid_mapping_branch_name": { "type": "string", - "description": "Name of the branch where file containing guid mapping should be maintained" + "description": "Name of the branch in the file containing guid mapping should be maintained" }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the organization" + "description": "Details of the Org" } } }, @@ -9672,7 +9672,7 @@ }, "name_pattern": { "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User % for a wildcard match." + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." }, "data_warehouse_objects": { "type": "array", @@ -9743,7 +9743,7 @@ "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Organizations in which role exists." + "description": "Orgs in which role exists." }, "groups": { "type": "array", @@ -9851,11 +9851,11 @@ "properties": { "action_details": { "$ref": "#/components/schemas/Action_details", - "description": "Type and Configuration for Custom Actions" + "description": "`Type` and configuration data for custom actions" }, "default_action_config": { "$ref": "#/components/schemas/Default_action_config", - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "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." }, "id": { "type": "string", @@ -9866,7 +9866,7 @@ "items": { "$ref": "#/components/schemas/Metadata_Association_Item" }, - "description": "Metadata objects to which the custom action needs to be associated." + "description": "Metadata objects to assign the the custom action to." }, "name": { "type": "string", @@ -9887,10 +9887,10 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "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." }, "Token": { "type": "object", @@ -9967,21 +9967,21 @@ "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "The user groups which are added into the system." + "description": "The groups which are added into the system." }, "groups_deleted": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "The user groups which are deleted from the system." + "description": "The groups which are deleted from the system." }, "groups_updated": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "The user groups which are updated in the system." + "description": "The groups which are updated in the system." } } }, @@ -9994,22 +9994,22 @@ "properties": { "display_name": { "type": "string", - "description": "Unique display name of the user group." + "description": "Unique display name of the group." }, "group_identifier": { "type": "string", - "description": "Unique ID or name of the User Group." + "description": "Unique ID or name of the group." }, "default_liveboard_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID of liveboards which will be assigned as default liveboards to the user group." + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." }, "description": { "type": "string", - "description": "Description of the user group." + "description": "Description of the group." }, "privileges": { "type": "array", @@ -10039,14 +10039,14 @@ "PREVIEW_THOUGHTSPOT_SAGE" ] }, - "description": "Privileges which will be assigned to the user group." + "description": "Privileges that will be assigned to the group." }, "sub_group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the User Groups who will be part of the user group." + "description": "Unique ID or name of the sub-groups to add to the group." }, "type": { "type": "string", @@ -10054,14 +10054,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the user group." + "description": "Type of the group." }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the Users who will be part of the user group." + "description": "Unique ID or name of the users to assign to the group." }, "visibility": { "type": "string", @@ -10069,7 +10069,7 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." } } }, @@ -10280,7 +10280,7 @@ "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Organizations in which role exists." + "description": "Orgs in which role exists." }, "groups": { "type": "array", @@ -10403,7 +10403,7 @@ }, "liveboard_options": { "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of liveboard." + "description": "Options to specify details of Liveboard." }, "metadata": { "$ref": "#/components/schemas/MetadataResponse", @@ -10419,7 +10419,7 @@ }, "recipient_details": { "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient configuration which includes emails and recipients of the schedule" + "description": "Recipient of the scheduled job notifications." }, "status": { "type": "string", @@ -10452,18 +10452,18 @@ "description": "Unique ID or name of visualizations." } }, - "description": "Options to specify details of liveboard." + "description": "Options to specify details of Liveboard." }, "SchedulesPdfOptionsInput": { "type": "object", "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete liveboard." + "description": "Indicates whether to include complete Liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", @@ -10527,10 +10527,10 @@ "items": { "$ref": "#/components/schemas/PrincipalsListItemInput" }, - "description": "List of user or user groups to be associated for schedule." + "description": "User or groups to be set as recipients of the schedule notifications." } }, - "description": "Recipient configuration which includes emails and recipients of the schedule" + "description": "Recipients of the scheduled job notification." }, "MetadataInput": { "type": "object", @@ -10566,13 +10566,13 @@ "include_history_runs": { "type": "boolean", "default": false, - "description": "Indicates whether to fetch history runs wrt to the schedule or not." + "description": "Indicates whether to fetch history runs for the scheduled notification." }, "record_size": { "type": "integer", "format": "int32", "default": 10, - "description": "Indicates the max number of records that can be fetched as history runs wrt any scheduled job." + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." }, "record_offset": { "type": "integer", @@ -10627,10 +10627,10 @@ "visibility": { "type": "boolean", "default": true, - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\n\nDefault: true" + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\n\nDefault: true" } }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "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." }, "Action_Details_Input": { "type": "object", @@ -10644,7 +10644,7 @@ "description": "URL Custom Action Type" } }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required." + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." }, "Associate_Metadata_Input": { "type": "object", @@ -10673,10 +10673,10 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "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." }, "FavoriteMetadataItem": { "type": "object", @@ -10688,11 +10688,11 @@ "properties": { "id": { "type": "string", - "description": "Unique ID of the metadata." + "description": "Unique ID of the metadata object." }, "name": { "type": "string", - "description": "name of the metadata." + "description": "name of the metadata object." }, "type": { "type": "string", @@ -10707,7 +10707,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata." + "description": "Type of metadata object." } } }, @@ -10846,11 +10846,11 @@ "properties": { "id": { "type": "string", - "description": "id of the Role" + "description": "id of the role" }, "name": { "type": "string", - "description": "name of the Role" + "description": "name of the role" } } }, @@ -10958,10 +10958,10 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "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." }, "Metadata_Association_Item": { "type": "object", @@ -11002,7 +11002,7 @@ }, "metadata_id": { "type": "string", - "description": "Unique identifier of the organization." + "description": "Unique identifier of the Org." } } }, @@ -11104,7 +11104,7 @@ "description": "Unique ID or name of visualizations." } }, - "description": "Options to specify details of liveboard." + "description": "Options to specify details of Liveboard." }, "MetadataResponse": { "type": "object", @@ -11132,11 +11132,11 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete liveboard." + "description": "Indicates whether to include complete Liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", @@ -11180,17 +11180,17 @@ "items": { "type": "string" }, - "description": "Emails of the recipients." + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItem" }, - "description": "List of user or user groups to be associated for schedule." + "description": "List of user or groups to subscribe for the scheduled job notifications." } }, - "description": "Recipient configuration which includes emails and recipients of the schedule" + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, "ResponseScheduleRun": { "type": "object", @@ -11273,7 +11273,7 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the principal." + "description": "Unique ID or name of the user or group." }, "type": { "type": "string", @@ -11286,7 +11286,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -11314,7 +11314,7 @@ }, "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name" } }, "description": "URL Custom Action Type" @@ -11345,7 +11345,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -11370,7 +11370,7 @@ }, "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name" } }, "description": "URL Custom Action Type" @@ -11422,7 +11422,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Reference name of the SDK. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -11450,7 +11450,7 @@ }, "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Reference name of the SDK. By default, the value will be set to action name." } }, "description": "URL Custom Action Type" @@ -11516,11 +11516,11 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the principal." + "description": "Unique ID or name of the user or group." }, "type": { "type": "string", - "description": "Principal type." + "description": "Principal type. Valid values are" } } }, @@ -11574,7 +11574,7 @@ "items": { "$ref": "#/components/schemas/Table" }, - "description": "Tables of the schema." + "description": "Tables in the schema." } } }, @@ -11720,11 +11720,11 @@ "properties": { "name": { "type": "string", - "description": "Name of the column." + "description": "Name of the column" }, "data_type": { "type": "string", - "description": "Data type of the column." + "description": "Data type of the column" }, "is_aggregate": { "type": "string", From 6c98131cedc4f4467b41e967eb27a4f3608187a8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 19 Jul 2023 06:37:05 +0000 Subject: [PATCH 036/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index aeab880af..fc8766095 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8565,7 +8565,8 @@ "LIVEBOARD", "ANSWER", "LOGICAL_TABLE", - "CONNECTION" + "CONNECTION", + "ACTION_OBJECT" ], "description": "Type of metadata (Optional when given identifier is ID)." }, From 4e8490e1963d833de2d0c4d3da2b677729ae7c15 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 20 Jul 2023 11:31:01 +0000 Subject: [PATCH 037/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index fc8766095..3b8a63f57 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2601,7 +2601,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects configured on the ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n* To get a list of all connection objects available in the ThoughtSpot system, send a `POST` request with no attributes in the request body.\n* To get the connection objects created for a specific type of data warehouse, set the type in `data_warehouse_types`.\n* To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n* To get details of the database, schemas, tables, or columns from a data connection object, specify the `data_warehouse_object_type` attribute.\n* To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. \nNote that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n* To include more details about connection objects in the API response, set `include_details` to `true`.\n* You can also sort the output by field names and filter connections by tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" From 751daa87431222b1750db29d7e8ab2d30aee9b9c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 21 Jul 2023 06:19:05 +0000 Subject: [PATCH 038/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3b8a63f57..3f8b148da 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7676,7 +7676,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe API endpoint allows you to pause a scheduled job, change the status of a paused job, and edit the properties of a schedule, such as the recipient list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone settings. \n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" From 893673a7d02b8927c54375afcaa4a9dd130573c0 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Tue, 25 Jul 2023 14:20:56 +0530 Subject: [PATCH 039/410] Sending ready message once portal is ready (#88) --- api-playground/static/js/embedded.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index 73ad46e9c..500b94fda 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -52,9 +52,7 @@ const patchURLAndPlayground = async ({ baseUrl, accessToken }) => { const channel = new MessageChannel(); let playgroundConfig = {}; -window.parent.postMessage({ type: 'api-playground-ready' }, '*', [ - channel.port2, -]); + function getElementByIdAsync(id) { let maxTime = 2000; @@ -77,6 +75,9 @@ const setAPIMaticPortalConfig = () => { APIMaticDevPortal.ready(({ setConfig }) => { isApiMaticPortalReady = true; _setConfig = setConfig; + window.parent.postMessage({ type: 'api-playground-ready' }, '*', [ + channel.port2, + ]); }); }; From add219d4a85dd8a7bdecc54420bdb82502ebe976 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 27 Jul 2023 11:17:45 +0000 Subject: [PATCH 040/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3506 ++++++++++++++++++------------- 1 file changed, 2030 insertions(+), 1476 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3f8b148da..f735782f4 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -51,7 +51,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -59,7 +59,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -68,28 +68,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -99,7 +89,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -114,7 +104,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", "tags": [ "Authentication", "9.4.0.cl" @@ -122,7 +112,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching token for current user successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -131,28 +121,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/GetTokenResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -162,7 +142,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -177,7 +157,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -196,6 +176,10 @@ "description": "A unique display name string for the user account, usually their first and last name", "type": "string" }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the connection object.", + "type": "string" + }, "visibility": { "description": "Visibility of the user", "type": "string", @@ -337,7 +321,7 @@ "parameters": [], "responses": { "200": { - "description": "User search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -349,28 +333,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -380,7 +357,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -395,7 +372,7 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "System", "9.0.0.cl" @@ -403,66 +380,27 @@ "parameters": [], "responses": { "200": { - "description": "Cluster information.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SystemInfo" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -472,7 +410,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -487,7 +425,7 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "System", "9.0.0.cl" @@ -495,44 +433,27 @@ "parameters": [], "responses": { "200": { - "description": "Cluster config information.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SystemConfig" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -542,7 +463,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -557,7 +478,7 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "System", "9.2.0.cl" @@ -565,7 +486,7 @@ "parameters": [], "responses": { "200": { - "description": "Cluster configuration which can be overridden.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -574,28 +495,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -605,7 +516,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -620,7 +531,7 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -670,7 +581,7 @@ "parameters": [], "responses": { "200": { - "description": "Organization search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -678,52 +589,25 @@ "items": { "$ref": "#/components/schemas/OrgResponse" } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -733,7 +617,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -748,7 +632,7 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -763,6 +647,10 @@ "description": "Name or Id of the tag.", "type": "string" }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the connection object.", + "type": "string" + }, "color": { "description": "Color of the tag.", "type": "string" @@ -775,7 +663,7 @@ "parameters": [], "responses": { "200": { - "description": "Tags search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -783,66 +671,25 @@ "items": { "$ref": "#/components/schemas/Tag" } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -852,7 +699,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -867,7 +714,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -893,6 +740,10 @@ "description": "Display name of the group", "type": "string" }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the connection object.", + "type": "string" + }, "group_identifier": { "description": "GUID or name of the group", "type": "string" @@ -995,7 +846,7 @@ "parameters": [], "responses": { "200": { - "description": "User group search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1007,28 +858,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1038,7 +882,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1053,7 +897,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1196,7 +1040,7 @@ "parameters": [], "responses": { "200": { - "description": "Metadata objects search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1208,28 +1052,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1239,7 +1076,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1254,7 +1091,7 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1288,7 +1125,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1297,28 +1134,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SqlQueryResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1328,7 +1155,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1343,7 +1170,7 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1370,7 +1197,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1379,28 +1206,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SqlQueryResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1410,7 +1227,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1425,7 +1242,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Reports", "9.0.0.cl" @@ -1494,7 +1311,7 @@ "parameters": [], "responses": { "200": { - "description": "Export report file of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1503,28 +1320,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1534,7 +1341,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1549,7 +1356,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Reports", "9.0.0.cl" @@ -1599,7 +1406,7 @@ "parameters": [], "responses": { "200": { - "description": "Export report file of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1608,28 +1415,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1639,7 +1436,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1654,7 +1451,7 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -1691,81 +1488,27 @@ "parameters": [], "responses": { "200": { - "description": "Fetching permissions of principals is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { "type": "object" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ], - "__args": { - "principals": [ - { - "identifier": "test_user", - "type": "USER" - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1775,7 +1518,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1790,7 +1533,7 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -1833,102 +1576,27 @@ "parameters": [], "responses": { "200": { - "description": "Fetching permissions of metadata objects is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { "type": "object" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ], - "__args": { - "metadata": [ - { - "type": "LIVEBOARD", - "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" - } - ], - "include_dependent_objects": false - } - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1938,7 +1606,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1953,7 +1621,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2017,7 +1685,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2026,28 +1694,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SearchDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2057,7 +1715,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2072,7 +1730,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2142,7 +1800,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2151,28 +1809,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/LiveboardDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2182,7 +1830,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2197,7 +1845,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2256,7 +1904,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2265,28 +1913,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/AnswerDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2296,7 +1934,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2311,7 +1949,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Log", "9.0.0.cl" @@ -2351,7 +1989,7 @@ "parameters": [], "responses": { "200": { - "description": "Log fetched successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2363,28 +2001,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2394,7 +2025,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2409,7 +2040,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -2435,7 +2066,7 @@ "parameters": [], "responses": { "200": { - "description": "Details of local repository configuration", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2447,28 +2078,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2478,7 +2102,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2493,7 +2117,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -2543,7 +2167,7 @@ "parameters": [], "responses": { "200": { - "description": "Commit history of the metadata object", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2555,28 +2179,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2586,7 +2203,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2601,7 +2218,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -2712,7 +2329,7 @@ "parameters": [], "responses": { "200": { - "description": "List of connections to the datasource.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2724,28 +2341,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2755,7 +2365,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2877,7 +2487,7 @@ "parameters": [], "responses": { "200": { - "description": "Roles search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2889,28 +2499,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2920,7 +2523,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2935,7 +2538,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -2950,6 +2553,10 @@ "description": "Name or ID of the custom action.", "type": "string" }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the connection object.", + "type": "string" + }, "default_action_config": { "description": "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.", "$ref": "#/components/schemas/Default_Action_Config_Search_Input" @@ -2989,7 +2596,7 @@ "parameters": [], "responses": { "200": { - "description": "Custom action search is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2997,50 +2604,25 @@ "items": { "$ref": "#/components/schemas/ResponseCustomAction" } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3050,7 +2632,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3065,7 +2647,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3101,31 +2683,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3135,7 +2714,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3150,7 +2729,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3225,37 +2804,27 @@ "parameters": [], "responses": { "200": { - "description": "Bearer auth token creation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3265,7 +2834,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3281,7 +2850,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3351,7 +2920,7 @@ "parameters": [], "responses": { "200": { - "description": "Bearer auth token creation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3360,28 +2929,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3391,7 +2950,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3407,38 +2966,35 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" ], "parameters": [], "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3448,7 +3004,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3463,7 +3019,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3487,31 +3043,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3521,7 +3074,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3536,7 +3089,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3641,7 +3194,29 @@ }, "preferred_locale": { "description": "Locale for the user.", - "type": "string" + "type": "string", + "enum": [ + "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" + ] }, "extended_properties": { "description": "Properties for the user", @@ -3671,7 +3246,7 @@ "parameters": [], "responses": { "200": { - "description": "User successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3680,28 +3255,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3711,7 +3276,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3726,7 +3291,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3831,7 +3396,29 @@ }, "preferred_locale": { "description": "Locale for the user.", - "type": "string" + "type": "string", + "enum": [ + "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" + ] }, "extended_properties": { "description": "Properties for the user", @@ -3858,31 +3445,28 @@ } ], "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3892,7 +3476,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3907,7 +3491,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3924,31 +3508,28 @@ } ], "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3958,7 +3539,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3973,7 +3554,7 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4019,7 +3600,7 @@ "parameters": [], "responses": { "200": { - "description": "Import users operation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -4028,28 +3609,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ImportUsersResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4059,7 +3630,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4074,7 +3645,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4110,31 +3681,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4144,7 +3712,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4159,7 +3727,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4190,31 +3758,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4224,7 +3789,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4239,7 +3804,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4264,31 +3829,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4298,7 +3860,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4313,7 +3875,7 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "System", "9.2.0.cl" @@ -4339,31 +3901,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4373,7 +3932,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4388,7 +3947,7 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4419,48 +3978,27 @@ "parameters": [], "responses": { "200": { - "description": "Organization successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/OrgResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4470,7 +4008,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4485,7 +4023,7 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4538,31 +4076,28 @@ } ], "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4572,7 +4107,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4587,7 +4122,7 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4604,31 +4139,28 @@ } ], "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4638,7 +4170,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4653,7 +4185,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -4684,55 +4216,27 @@ "parameters": [], "responses": { "200": { - "description": "Tag successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Tag" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4742,7 +4246,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4757,7 +4261,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -4793,31 +4297,28 @@ } ], "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4827,7 +4328,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4842,7 +4343,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -4859,31 +4360,28 @@ } ], "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4893,7 +4391,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4908,7 +4406,7 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -4945,31 +4443,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4979,7 +4474,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4994,7 +4489,7 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5031,31 +4526,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5065,7 +4557,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5080,7 +4572,7 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5192,7 +4684,7 @@ "parameters": [], "responses": { "200": { - "description": "User group successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5201,28 +4693,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/UserGroupResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5232,7 +4714,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5247,7 +4729,7 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5371,31 +4853,28 @@ } ], "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5405,7 +4884,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5420,7 +4899,7 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5437,31 +4916,28 @@ } ], "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5471,7 +4947,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5486,7 +4962,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5524,7 +5000,7 @@ "parameters": [], "responses": { "200": { - "description": "Import user groups operation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5533,28 +5009,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ImportUserGroupsResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5564,7 +5030,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5579,7 +5045,7 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -5625,7 +5091,7 @@ "parameters": [], "responses": { "200": { - "description": "Import metadata objects using specified TMLs is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5637,28 +5103,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5668,7 +5127,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5683,7 +5142,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -5734,7 +5193,7 @@ "parameters": [], "responses": { "200": { - "description": "Export TMLs of specified metadata objects is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5746,28 +5205,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5777,7 +5229,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5792,7 +5244,7 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -5827,31 +5279,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5861,7 +5310,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5876,7 +5325,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -5914,31 +5363,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5948,7 +5394,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5963,7 +5409,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -6035,31 +5481,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6069,7 +5512,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6084,7 +5527,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6146,7 +5589,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully configured local repository", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6155,28 +5598,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RepoConfigObject" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6186,7 +5619,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6201,7 +5634,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6252,7 +5685,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully updated local repository configuration", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6261,28 +5694,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RepoConfigObject" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6292,7 +5715,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6307,7 +5730,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6330,31 +5753,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6364,7 +5784,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6379,7 +5799,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6418,7 +5838,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully committed the metadata objects", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6427,28 +5847,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/CommitResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6458,7 +5868,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6473,7 +5883,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6522,7 +5932,7 @@ ], "responses": { "200": { - "description": "Reverted the object to the commit point specified", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6531,28 +5941,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RevertResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6562,7 +5962,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6577,7 +5977,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6609,7 +6009,7 @@ "parameters": [], "responses": { "200": { - "description": "validation done successfully", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6621,28 +6021,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6652,7 +6045,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6667,7 +6060,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6712,7 +6105,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully deployed the changes", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6724,28 +6117,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6755,7 +6141,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6770,7 +6156,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -6842,7 +6228,7 @@ "parameters": [], "responses": { "200": { - "description": "Connection to the datasource successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6851,28 +6237,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/CreateConnectionResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6882,7 +6258,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6897,7 +6273,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -6923,31 +6299,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6957,7 +6330,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6972,7 +6345,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -7016,31 +6389,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7050,7 +6420,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7124,7 +6494,7 @@ "parameters": [], "responses": { "200": { - "description": "Role successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7133,28 +6503,18 @@ } } }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RoleResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7164,7 +6524,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7248,7 +6608,7 @@ ], "responses": { "200": { - "description": "Role successfully updated.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7257,28 +6617,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RoleResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7288,7 +6638,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7320,31 +6670,28 @@ } ], "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7354,7 +6701,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7369,7 +6716,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "description": "Create schedule.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -7419,7 +6766,639 @@ "time_zone": { "description": "Time zone", "default": "America/Los_Angeles", - "type": "string" + "type": "string", + "enum": [ + "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" + ] }, "frequency": { "description": "Frequency settings for the scheduled job.", @@ -7446,7 +7425,7 @@ "parameters": [], "responses": { "200": { - "description": "Schedule successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7455,28 +7434,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseSchedule" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7486,7 +7455,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7501,7 +7470,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "description": "Deletes a scheduled job.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -7518,31 +7487,28 @@ } ], "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7552,7 +7518,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7567,7 +7533,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", + "description": "Search Schedules
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -7618,7 +7584,7 @@ "parameters": [], "responses": { "200": { - "description": "Schedule search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7630,28 +7596,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7661,7 +7620,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7676,7 +7635,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Update schedule.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -7724,7 +7683,639 @@ }, "time_zone": { "description": "Time zone", - "type": "string" + "type": "string", + "enum": [ + "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" + ] }, "frequency": { "description": "Frequency of the scheduled job run.", @@ -7759,31 +8350,28 @@ } ], "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7793,7 +8381,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7808,7 +8396,7 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -7858,55 +8446,27 @@ "parameters": [], "responses": { "200": { - "description": "Custom action created successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseCustomAction" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7916,7 +8476,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7931,7 +8491,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -7994,31 +8554,28 @@ } ], "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8028,7 +8585,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8043,7 +8600,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -8060,31 +8617,28 @@ } ], "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8094,7 +8648,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -11768,4 +12322,4 @@ } } ] -} \ No newline at end of file +} From 2482351163689452dae11a8546768388cec02aaa Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 28 Jul 2023 04:38:01 +0000 Subject: [PATCH 041/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2178 +++++++++++++++++++++---------- 1 file changed, 1474 insertions(+), 704 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f735782f4..5b741c177 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -51,7 +51,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -59,7 +59,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -68,18 +68,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -89,7 +99,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -104,7 +114,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.4.0.cl" @@ -112,7 +122,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { @@ -121,18 +131,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetTokenResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -142,7 +162,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -157,7 +177,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -321,7 +341,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User search result.", "content": { "application/json": { "schema": { @@ -333,21 +353,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -357,7 +384,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -372,7 +399,7 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -380,27 +407,66 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" + }, + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -410,7 +476,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -425,7 +491,7 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -433,27 +499,44 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster config information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemConfig" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -463,7 +546,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -478,7 +561,7 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -486,7 +569,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster configuration which can be overridden.", "content": { "application/json": { "schema": { @@ -495,18 +578,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -516,7 +609,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -531,7 +624,7 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -581,7 +674,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Organization search result.", "content": { "application/json": { "schema": { @@ -589,25 +682,52 @@ "items": { "$ref": "#/components/schemas/OrgResponse" } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -617,7 +737,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -632,7 +752,7 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -663,7 +783,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Tags search result.", "content": { "application/json": { "schema": { @@ -671,25 +791,66 @@ "items": { "$ref": "#/components/schemas/Tag" } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -699,7 +860,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -714,7 +875,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -846,7 +1007,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User group search result.", "content": { "application/json": { "schema": { @@ -858,21 +1019,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -882,7 +1050,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -897,7 +1065,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1040,7 +1208,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Metadata objects search result.", "content": { "application/json": { "schema": { @@ -1052,21 +1220,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1076,7 +1251,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1091,7 +1266,7 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1125,7 +1300,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1134,18 +1309,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1155,7 +1340,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1170,7 +1355,7 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1197,7 +1382,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1206,18 +1391,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1227,7 +1422,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1242,7 +1437,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1311,7 +1506,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export report file of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1320,18 +1515,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1341,7 +1546,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1356,7 +1561,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1406,7 +1611,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export report file of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1415,18 +1620,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1436,7 +1651,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1451,7 +1666,7 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -1488,27 +1703,81 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching permissions of principals is successful.", "content": { "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "principals": [ + { + "identifier": "test_user", + "type": "USER" + } + ] + } + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1518,7 +1787,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1533,7 +1802,7 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -1576,27 +1845,102 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching permissions of metadata objects is successful.", "content": { "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "metadata": [ + { + "type": "LIVEBOARD", + "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" + } + ], + "include_dependent_objects": false + } + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1606,7 +1950,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1621,7 +1965,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1685,7 +2029,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1694,18 +2038,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1715,7 +2069,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1730,7 +2084,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1800,7 +2154,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1809,18 +2163,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1830,7 +2194,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1845,7 +2209,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1904,7 +2268,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1913,18 +2277,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1934,7 +2308,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1949,7 +2323,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -1989,7 +2363,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Log fetched successfully.", "content": { "application/json": { "schema": { @@ -2001,21 +2375,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2025,7 +2406,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2040,7 +2421,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2066,7 +2447,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Details of local repository configuration", "content": { "application/json": { "schema": { @@ -2078,21 +2459,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2102,7 +2490,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2117,7 +2505,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2167,7 +2555,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Commit history of the metadata object", "content": { "application/json": { "schema": { @@ -2179,21 +2567,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2203,7 +2598,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2218,7 +2613,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -2329,7 +2724,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "List of connections to the datasource.", "content": { "application/json": { "schema": { @@ -2341,21 +2736,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2365,7 +2767,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2487,7 +2889,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Roles search result.", "content": { "application/json": { "schema": { @@ -2499,21 +2901,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2523,7 +2932,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -2538,7 +2947,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -2596,7 +3005,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Custom action search is successful.", "content": { "application/json": { "schema": { @@ -2604,25 +3013,50 @@ "items": { "$ref": "#/components/schemas/ResponseCustomAction" } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2632,7 +3066,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2647,7 +3081,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2683,28 +3117,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2714,7 +3151,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2729,7 +3166,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2804,7 +3241,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2813,18 +3250,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2834,7 +3281,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2850,7 +3297,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2920,7 +3367,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2929,18 +3376,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2950,7 +3407,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2966,35 +3423,38 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" ], "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3004,7 +3464,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3019,7 +3479,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3043,28 +3503,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3074,7 +3537,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3089,7 +3552,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3246,7 +3709,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User successfully created.", "content": { "application/json": { "schema": { @@ -3255,18 +3718,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3276,7 +3749,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3291,7 +3764,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3445,28 +3918,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3476,7 +3952,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3491,7 +3967,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3508,28 +3984,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3539,7 +4018,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3554,7 +4033,7 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3600,7 +4079,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import users operation successful.", "content": { "application/json": { "schema": { @@ -3609,18 +4088,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3630,7 +4119,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3645,7 +4134,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3681,28 +4170,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3712,7 +4204,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3727,7 +4219,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3758,28 +4250,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3789,7 +4284,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3804,7 +4299,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3829,28 +4324,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3860,7 +4358,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3875,7 +4373,7 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -3901,28 +4399,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3932,7 +4433,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3947,7 +4448,7 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -3978,27 +4479,48 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Organization successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrgResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4008,7 +4530,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4023,7 +4545,7 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4076,28 +4598,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4107,7 +4632,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4122,7 +4647,7 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4139,28 +4664,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4170,7 +4698,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4185,7 +4713,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4216,27 +4744,55 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Tag successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4246,7 +4802,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4261,7 +4817,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4297,28 +4853,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4328,7 +4887,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4343,7 +4902,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4360,28 +4919,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4391,7 +4953,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4406,7 +4968,7 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4443,28 +5005,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4474,7 +5039,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4489,7 +5054,7 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4526,28 +5091,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4557,7 +5125,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4572,7 +5140,7 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -4684,7 +5252,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User group successfully created.", "content": { "application/json": { "schema": { @@ -4693,18 +5261,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UserGroupResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4714,7 +5292,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4729,7 +5307,7 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -4853,28 +5431,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4884,7 +5465,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4899,7 +5480,7 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -4916,28 +5497,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4947,7 +5531,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4962,7 +5546,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -5000,7 +5584,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import user groups operation successful.", "content": { "application/json": { "schema": { @@ -5009,18 +5593,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5030,7 +5624,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5045,7 +5639,7 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5091,7 +5685,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import metadata objects using specified TMLs is successful.", "content": { "application/json": { "schema": { @@ -5103,21 +5697,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5127,7 +5728,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5142,7 +5743,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5193,33 +5794,40 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5229,7 +5837,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5244,7 +5852,7 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5279,28 +5887,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5310,7 +5921,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5325,7 +5936,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -5363,28 +5974,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5394,7 +6008,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5409,7 +6023,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -5481,28 +6095,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5512,7 +6129,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5527,7 +6144,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5589,7 +6206,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully configured local repository", "content": { "application/json": { "schema": { @@ -5598,18 +6215,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RepoConfigObject" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5619,7 +6246,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5634,7 +6261,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5685,7 +6312,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully updated local repository configuration", "content": { "application/json": { "schema": { @@ -5694,18 +6321,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RepoConfigObject" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5715,7 +6352,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5730,7 +6367,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5753,28 +6390,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5784,7 +6424,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5799,7 +6439,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5838,7 +6478,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully committed the metadata objects", "content": { "application/json": { "schema": { @@ -5847,18 +6487,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CommitResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5868,7 +6518,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5883,7 +6533,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5932,7 +6582,7 @@ ], "responses": { "200": { - "description": "Common successful response", + "description": "Reverted the object to the commit point specified", "content": { "application/json": { "schema": { @@ -5941,18 +6591,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RevertResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5962,7 +6622,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5977,7 +6637,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6009,7 +6669,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "validation done successfully", "content": { "application/json": { "schema": { @@ -6021,21 +6681,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6045,7 +6712,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6060,7 +6727,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6105,7 +6772,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully deployed the changes", "content": { "application/json": { "schema": { @@ -6117,21 +6784,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6141,7 +6815,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6156,7 +6830,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6228,7 +6902,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Connection to the datasource successfully created.", "content": { "application/json": { "schema": { @@ -6237,18 +6911,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6258,7 +6942,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6273,7 +6957,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6299,28 +6983,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6330,7 +7017,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6345,7 +7032,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6389,28 +7076,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6420,7 +7110,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6494,7 +7184,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Role successfully created.", "content": { "application/json": { "schema": { @@ -6503,18 +7193,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid parameters.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RoleResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6524,7 +7224,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6608,7 +7308,7 @@ ], "responses": { "200": { - "description": "Common successful response", + "description": "Role successfully updated.", "content": { "application/json": { "schema": { @@ -6617,18 +7317,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RoleResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6638,7 +7348,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6670,28 +7380,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6701,7 +7414,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6716,7 +7429,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "Create schedule.
Version: 9.4.0.cl or later", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7425,7 +8138,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Schedule successfully created.", "content": { "application/json": { "schema": { @@ -7434,18 +8147,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseSchedule" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7455,7 +8178,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7470,7 +8193,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "Deletes a scheduled job.
Version: 9.4.0.cl or later", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7487,28 +8210,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7518,7 +8244,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7533,7 +8259,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "Search Schedules
Version: 9.4.0.cl or later", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7584,7 +8310,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Schedule search result.", "content": { "application/json": { "schema": { @@ -7596,21 +8322,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7620,7 +8353,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7635,7 +8368,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "Update schedule.
Version: 9.4.0.cl or later", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -8350,28 +9083,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8381,7 +9117,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8396,7 +9132,7 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8446,27 +9182,55 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Custom action created successfully.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8476,7 +9240,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8491,7 +9255,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8554,28 +9318,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8585,7 +9352,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8600,7 +9367,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8617,28 +9384,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8648,7 +9418,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { From 8cb9186b71398ea3a6c20e1f59d4246754fceaa2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 28 Jul 2023 10:17:36 +0000 Subject: [PATCH 042/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5b741c177..f346bd5fc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -197,7 +197,7 @@ "type": "string" }, "name_pattern": { - "description": "A pattern to match case-insensitive name of the connection object.", + "description": "A pattern to match case-insensitive name of the User object.", "type": "string" }, "visibility": { @@ -768,7 +768,7 @@ "type": "string" }, "name_pattern": { - "description": "A pattern to match case-insensitive name of the connection object.", + "description": "A pattern to match case-insensitive name of the Tag object.", "type": "string" }, "color": { @@ -902,7 +902,7 @@ "type": "string" }, "name_pattern": { - "description": "A pattern to match case-insensitive name of the connection object.", + "description": "A pattern to match case-insensitive name of the Group object.", "type": "string" }, "group_identifier": { @@ -2963,7 +2963,7 @@ "type": "string" }, "name_pattern": { - "description": "A pattern to match case-insensitive name of the connection object.", + "description": "A pattern to match case-insensitive name of the custom-action object.", "type": "string" }, "default_action_config": { @@ -13092,4 +13092,4 @@ } } ] -} +} \ No newline at end of file From b7f822c560e13beb39bceb6cdb8265c0238ba2cb Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 3 Aug 2023 06:56:38 +0000 Subject: [PATCH 043/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f346bd5fc..bc4b1b42e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2421,7 +2421,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2505,7 +2505,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6144,7 +6144,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6261,7 +6261,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6367,7 +6367,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6439,7 +6439,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6533,7 +6533,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6637,7 +6637,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6727,7 +6727,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" From 307657cd16aad6fd64546370b7caf62d0a772057 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 4 Aug 2023 06:02:55 +0000 Subject: [PATCH 044/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index bc4b1b42e..72f9e1794 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -9890,7 +9890,7 @@ "ANSWER", "LOGICAL_TABLE", "CONNECTION", - "ACTION_OBJECT" + "CUSTOM_ACTION" ], "description": "Type of metadata (Optional when given identifier is ID)." }, From 2dac57f810063e7f43d0e2e7b130139c9b1dce4a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 4 Aug 2023 07:11:04 +0000 Subject: [PATCH 045/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 70 +++++++++++++++++++++++---------- 1 file changed, 50 insertions(+), 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 72f9e1794..b8974cfa7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6178,19 +6178,29 @@ "type": "string" } }, - "default_branch_name": { - "description": "Name of the default remote branch", + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": false, + "default": true, "type": "boolean", "nullable": true }, - "guid_mapping_branch_name": { - "description": " Name of the branch where the file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } }, "required": [ @@ -6291,18 +6301,28 @@ "type": "string" } }, - "default_branch_name": { - "description": "Name of the default remote branch", + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", "nullable": true }, - "guid_mapping_branch_name": { - "description": " Name of the branch in which the file containing guid mapping should be maintained. This will be set only if enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "configuration_branch_name": { + "description": "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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } } } @@ -6457,8 +6477,14 @@ "$ref": "#/components/schemas/MetadataObject" } }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", "type": "string" }, "comment": { @@ -6552,11 +6578,11 @@ } }, "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", "type": "string" }, "revert_policy": { - "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -6743,7 +6769,7 @@ "type": "string" }, "branch_name": { - "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": "Name of the remote branch where changes should be picked", "type": "string" }, "deploy_type": { @@ -6764,10 +6790,14 @@ "PARTIAL" ] } - } + }, + "required": [ + "branch_name" + ] } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -10867,9 +10897,9 @@ "type": "string", "description": "Username to authenticate connection to the version control system" }, - "default_branch": { + "commit_branch_name": { "type": "string", - "description": "Name of the default remote branch" + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." }, "branches": { "type": "array", @@ -10882,9 +10912,9 @@ "type": "boolean", "description": "Maintain mapping of guid for the deployment to an instance" }, - "guid_mapping_branch_name": { + "configuration_branch_name": { "type": "string", - "description": "Name of the branch in the file containing guid mapping should be maintained" + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." }, "org": { "$ref": "#/components/schemas/Org", @@ -13092,4 +13122,4 @@ } } ] -} \ No newline at end of file +} From ddb17dcf18e3ec740224730726c235ee61bba1ad Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 4 Aug 2023 13:39:57 +0000 Subject: [PATCH 046/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 70 ++++++++++----------------------- 1 file changed, 20 insertions(+), 50 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b8974cfa7..72f9e1794 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6178,29 +6178,19 @@ "type": "string" } }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true + "description": "Name of the default remote branch", + "type": "string" }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, + "default": false, "type": "boolean", "nullable": true }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - }, "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true + "description": " Name of the branch where the file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "type": "string" } }, "required": [ @@ -6301,28 +6291,18 @@ "type": "string" } }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true + "description": "Name of the default remote branch", + "type": "string" }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", "nullable": true }, - "configuration_branch_name": { - "description": "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", - "type": "string" - }, "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true + "description": " Name of the branch in which the file containing guid mapping should be maintained. This will be set only if enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "type": "string" } } } @@ -6477,14 +6457,8 @@ "$ref": "#/components/schemas/MetadataObject" } }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string" }, "comment": { @@ -6578,11 +6552,11 @@ } }, "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string" }, "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -6769,7 +6743,7 @@ "type": "string" }, "branch_name": { - "description": "Name of the remote branch where changes should be picked", + "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string" }, "deploy_type": { @@ -6790,14 +6764,10 @@ "PARTIAL" ] } - }, - "required": [ - "branch_name" - ] + } } } - }, - "required": true + } }, "parameters": [], "responses": { @@ -10897,9 +10867,9 @@ "type": "string", "description": "Username to authenticate connection to the version control system" }, - "commit_branch_name": { + "default_branch": { "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." + "description": "Name of the default remote branch" }, "branches": { "type": "array", @@ -10912,9 +10882,9 @@ "type": "boolean", "description": "Maintain mapping of guid for the deployment to an instance" }, - "configuration_branch_name": { + "guid_mapping_branch_name": { "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." + "description": "Name of the branch in the file containing guid mapping should be maintained" }, "org": { "$ref": "#/components/schemas/Org", @@ -13122,4 +13092,4 @@ } } ] -} +} \ No newline at end of file From 91482a7ca4a5dcd3f636effa60c250f2b5289e9b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 7 Aug 2023 04:53:16 +0000 Subject: [PATCH 047/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 68 ++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 19 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 72f9e1794..3e7a54897 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6178,19 +6178,29 @@ "type": "string" } }, - "default_branch_name": { - "description": "Name of the default remote branch", + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": false, + "default": true, "type": "boolean", "nullable": true }, - "guid_mapping_branch_name": { - "description": " Name of the branch where the file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } }, "required": [ @@ -6291,18 +6301,28 @@ "type": "string" } }, - "default_branch_name": { - "description": "Name of the default remote branch", + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", "nullable": true }, - "guid_mapping_branch_name": { - "description": " Name of the branch in which the file containing guid mapping should be maintained. This will be set only if enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "configuration_branch_name": { + "description": "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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } } } @@ -6457,8 +6477,14 @@ "$ref": "#/components/schemas/MetadataObject" } }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", "type": "string" }, "comment": { @@ -6552,11 +6578,11 @@ } }, "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", "type": "string" }, "revert_policy": { - "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -6743,7 +6769,7 @@ "type": "string" }, "branch_name": { - "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": "Name of the remote branch where changes should be picked", "type": "string" }, "deploy_type": { @@ -6764,10 +6790,14 @@ "PARTIAL" ] } - } + }, + "required": [ + "branch_name" + ] } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -10867,9 +10897,9 @@ "type": "string", "description": "Username to authenticate connection to the version control system" }, - "default_branch": { + "commit_branch_name": { "type": "string", - "description": "Name of the default remote branch" + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." }, "branches": { "type": "array", @@ -10882,9 +10912,9 @@ "type": "boolean", "description": "Maintain mapping of guid for the deployment to an instance" }, - "guid_mapping_branch_name": { + "configuration_branch_name": { "type": "string", - "description": "Name of the branch in the file containing guid mapping should be maintained" + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." }, "org": { "$ref": "#/components/schemas/Org", From 0c106595619e4c1bbc8742dfe7198d9177888c48 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 9 Aug 2023 06:31:55 +0000 Subject: [PATCH 048/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 197 ++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3e7a54897..18d6ea37d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13,6 +13,14 @@ ], "description": "Roles for version 9.0.0.cl" }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, { "name": "9.2.0.cl", "id": "9.2.0.cl", @@ -4370,6 +4378,185 @@ } } }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": " Version: 9.7.0.cl or later", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": " Version: 9.7.0.cl or later", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -11286,6 +11473,16 @@ } } }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user." + } + }, + "description": "The object representation with activation link." + }, "TagMetadataTypeInput": { "type": "object", "required": [ From b40e881d0ce62f787e0e3f41839f6dd32e570bc0 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 10 Aug 2023 11:40:44 +0000 Subject: [PATCH 049/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 18d6ea37d..69dbaf85f 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2343,7 +2343,7 @@ "type": "object", "properties": { "log_type": { - "description": "Name of the log type.", + "description": "Name of the log type", "type": "string", "enum": [ "SECURITY_AUDIT" From 9e036c6d3581321b2f98e6c37392c58ca84a342b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 30 Aug 2023 14:41:40 +0000 Subject: [PATCH 050/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 69dbaf85f..9c06678c3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2667,7 +2667,8 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA" + "AMAZON_ATHENA", + "SINGLESTORE" ] } }, @@ -7092,7 +7093,8 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA" + "AMAZON_ATHENA", + "SINGLESTORE" ] }, "data_warehouse_config": { @@ -11191,7 +11193,8 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA" + "AMAZON_ATHENA", + "SINGLESTORE" ], "description": "Type of data warehouse." }, @@ -11791,7 +11794,8 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA" + "AMAZON_ATHENA", + "SINGLESTORE" ], "description": "Type of data warehouse." }, From 4fd6031974a6e8f9a6addc4fbfe8db5eb11f7ea1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 5 Sep 2023 17:51:25 +0000 Subject: [PATCH 051/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9c06678c3..606a2f2bd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13066,11 +13066,11 @@ "PrincipalsListItem": { "type": "object", "required": [ - "identifier", + "id", "type" ], "properties": { - "identifier": { + "id": { "type": "string", "description": "Unique ID or name of the user or group." }, @@ -13323,4 +13323,4 @@ } } ] -} \ No newline at end of file +} From e631c9a3fcd722d3cf1020d8b6bda6137d5be617 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 03:00:39 +0000 Subject: [PATCH 052/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2228 ++++++++++--------------------- 1 file changed, 719 insertions(+), 1509 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 606a2f2bd..f29c68770 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -59,7 +59,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -67,7 +67,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -76,28 +76,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -107,7 +97,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -122,7 +112,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", "tags": [ "Authentication", "9.4.0.cl" @@ -130,7 +120,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching token for current user successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -139,28 +129,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/GetTokenResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -170,7 +150,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -185,7 +165,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -349,7 +329,7 @@ "parameters": [], "responses": { "200": { - "description": "User search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -361,28 +341,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -392,7 +365,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -407,7 +380,7 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "System", "9.0.0.cl" @@ -415,66 +388,27 @@ "parameters": [], "responses": { "200": { - "description": "Cluster information.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SystemInfo" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -484,7 +418,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -499,7 +433,7 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "System", "9.0.0.cl" @@ -507,44 +441,27 @@ "parameters": [], "responses": { "200": { - "description": "Cluster config information.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SystemConfig" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -554,7 +471,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -569,7 +486,7 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "System", "9.2.0.cl" @@ -577,7 +494,7 @@ "parameters": [], "responses": { "200": { - "description": "Cluster configuration which can be overridden.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -586,28 +503,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -617,7 +524,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -632,7 +539,7 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -682,7 +589,7 @@ "parameters": [], "responses": { "200": { - "description": "Organization search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -690,52 +597,25 @@ "items": { "$ref": "#/components/schemas/OrgResponse" } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -745,7 +625,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -760,7 +640,7 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -791,7 +671,7 @@ "parameters": [], "responses": { "200": { - "description": "Tags search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -799,66 +679,25 @@ "items": { "$ref": "#/components/schemas/Tag" } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -868,7 +707,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -883,7 +722,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -1015,7 +854,7 @@ "parameters": [], "responses": { "200": { - "description": "User group search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1027,28 +866,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1058,7 +890,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1073,7 +905,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1216,7 +1048,7 @@ "parameters": [], "responses": { "200": { - "description": "Metadata objects search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1228,28 +1060,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1259,7 +1084,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1274,7 +1099,7 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1308,7 +1133,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1317,28 +1142,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SqlQueryResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1348,7 +1163,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1363,7 +1178,7 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1390,7 +1205,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1399,28 +1214,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SqlQueryResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1430,7 +1235,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1445,7 +1250,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Reports", "9.0.0.cl" @@ -1514,7 +1319,7 @@ "parameters": [], "responses": { "200": { - "description": "Export report file of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1523,28 +1328,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1554,7 +1349,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1569,7 +1364,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Reports", "9.0.0.cl" @@ -1619,7 +1414,7 @@ "parameters": [], "responses": { "200": { - "description": "Export report file of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1628,28 +1423,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1659,7 +1444,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1674,7 +1459,7 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -1711,81 +1496,27 @@ "parameters": [], "responses": { "200": { - "description": "Fetching permissions of principals is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { "type": "object" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ], - "__args": { - "principals": [ - { - "identifier": "test_user", - "type": "USER" - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1795,7 +1526,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1810,7 +1541,7 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -1853,102 +1584,27 @@ "parameters": [], "responses": { "200": { - "description": "Fetching permissions of metadata objects is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { "type": "object" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ], - "__args": { - "metadata": [ - { - "type": "LIVEBOARD", - "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" - } - ], - "include_dependent_objects": false - } - } - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1958,7 +1614,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1973,7 +1629,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2037,7 +1693,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2046,28 +1702,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SearchDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2077,7 +1723,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2092,7 +1738,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2162,7 +1808,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2171,28 +1817,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/LiveboardDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2202,7 +1838,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2217,7 +1853,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2276,7 +1912,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2285,28 +1921,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/AnswerDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2316,7 +1942,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2331,7 +1957,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Log", "9.0.0.cl" @@ -2371,7 +1997,7 @@ "parameters": [], "responses": { "200": { - "description": "Log fetched successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2383,28 +2009,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2414,7 +2033,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2429,7 +2048,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -2455,7 +2074,7 @@ "parameters": [], "responses": { "200": { - "description": "Details of local repository configuration", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2467,28 +2086,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2498,7 +2110,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2513,7 +2125,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\nBeta Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -2563,7 +2175,7 @@ "parameters": [], "responses": { "200": { - "description": "Commit history of the metadata object", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2575,28 +2187,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2606,7 +2211,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2621,7 +2226,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -2733,7 +2338,7 @@ "parameters": [], "responses": { "200": { - "description": "List of connections to the datasource.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2745,28 +2350,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2776,7 +2374,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2898,7 +2496,7 @@ "parameters": [], "responses": { "200": { - "description": "Roles search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2910,28 +2508,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2941,7 +2532,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2956,7 +2547,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -3014,7 +2605,7 @@ "parameters": [], "responses": { "200": { - "description": "Custom action search is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3022,50 +2613,25 @@ "items": { "$ref": "#/components/schemas/ResponseCustomAction" } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3075,7 +2641,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3090,7 +2656,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3126,31 +2692,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3160,7 +2723,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3175,7 +2738,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3250,7 +2813,7 @@ "parameters": [], "responses": { "200": { - "description": "Bearer auth token creation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3259,28 +2822,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3290,7 +2843,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3306,7 +2859,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3376,7 +2929,7 @@ "parameters": [], "responses": { "200": { - "description": "Bearer auth token creation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3385,28 +2938,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3416,7 +2959,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3432,38 +2975,35 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" ], "parameters": [], "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3473,7 +3013,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3488,7 +3028,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3512,31 +3052,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3546,7 +3083,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3561,7 +3098,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3718,7 +3255,7 @@ "parameters": [], "responses": { "200": { - "description": "User successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3727,28 +3264,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3758,7 +3285,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3773,7 +3300,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3927,31 +3454,28 @@ } ], "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3961,7 +3485,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3976,7 +3500,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3993,31 +3517,28 @@ } ], "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4027,7 +3548,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4042,7 +3563,7 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4088,7 +3609,7 @@ "parameters": [], "responses": { "200": { - "description": "Import users operation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -4097,28 +3618,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ImportUsersResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4128,7 +3639,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4143,7 +3654,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4179,31 +3690,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4213,7 +3721,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4228,7 +3736,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4259,31 +3767,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4293,7 +3798,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4308,7 +3813,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4333,31 +3838,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4367,7 +3869,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4419,7 +3921,7 @@ "parameters": [], "responses": { "200": { - "description": "User activated successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -4428,28 +3930,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4459,7 +3951,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4506,7 +3998,7 @@ "parameters": [], "responses": { "200": { - "description": "User deactivated successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -4515,28 +4007,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseActivationURL" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4546,7 +4028,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4561,7 +4043,7 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "System", "9.2.0.cl" @@ -4587,31 +4069,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4621,7 +4100,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4636,7 +4115,7 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4667,48 +4146,27 @@ "parameters": [], "responses": { "200": { - "description": "Organization successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/OrgResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4718,7 +4176,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4733,7 +4191,7 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4786,31 +4244,28 @@ } ], "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4820,7 +4275,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4835,7 +4290,7 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4852,31 +4307,28 @@ } ], "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4886,7 +4338,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4901,7 +4353,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -4932,55 +4384,27 @@ "parameters": [], "responses": { "200": { - "description": "Tag successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } } } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Tag" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4990,7 +4414,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5005,7 +4429,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5041,31 +4465,28 @@ } ], "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5075,7 +4496,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5090,7 +4511,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5107,31 +4528,28 @@ } ], "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5141,7 +4559,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5156,7 +4574,7 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5193,31 +4611,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5227,7 +4642,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5242,7 +4657,7 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5279,31 +4694,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5313,7 +4725,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5328,7 +4740,7 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5440,7 +4852,7 @@ "parameters": [], "responses": { "200": { - "description": "User group successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5449,28 +4861,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/UserGroupResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5480,7 +4882,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5495,7 +4897,7 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5619,31 +5021,28 @@ } ], "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5653,7 +5052,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5668,7 +5067,7 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5685,31 +5084,28 @@ } ], "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5719,7 +5115,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5734,7 +5130,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5772,7 +5168,7 @@ "parameters": [], "responses": { "200": { - "description": "Import user groups operation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5781,28 +5177,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ImportUserGroupsResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5812,7 +5198,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5827,7 +5213,7 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -5873,7 +5259,7 @@ "parameters": [], "responses": { "200": { - "description": "Import metadata objects using specified TMLs is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5885,28 +5271,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5916,7 +5295,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5931,7 +5310,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -5981,41 +5360,34 @@ }, "parameters": [], "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6025,7 +5397,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6040,7 +5412,7 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -6075,31 +5447,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6109,7 +5478,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6124,7 +5493,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -6162,31 +5531,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6196,7 +5562,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6211,7 +5577,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -6283,31 +5649,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6317,7 +5680,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6332,7 +5695,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6404,7 +5767,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully configured local repository", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6413,28 +5776,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RepoConfigObject" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6444,7 +5797,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6459,7 +5812,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6520,7 +5873,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully updated local repository configuration", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6529,28 +5882,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RepoConfigObject" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6560,7 +5903,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6575,7 +5918,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6598,31 +5941,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6632,7 +5972,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6647,7 +5987,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\nBeta Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6692,7 +6032,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully committed the metadata objects", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6701,28 +6041,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/CommitResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6732,7 +6062,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6747,7 +6077,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\nBeta Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6796,7 +6126,7 @@ ], "responses": { "200": { - "description": "Reverted the object to the commit point specified", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6805,28 +6135,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RevertResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6836,7 +6156,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6851,7 +6171,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\nBeta Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6883,7 +6203,7 @@ "parameters": [], "responses": { "200": { - "description": "validation done successfully", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6895,28 +6215,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6926,7 +6239,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6941,7 +6254,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6990,7 +6303,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully deployed the changes", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7002,28 +6315,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7033,7 +6339,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7048,7 +6354,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -7121,7 +6427,7 @@ "parameters": [], "responses": { "200": { - "description": "Connection to the datasource successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7130,28 +6436,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/CreateConnectionResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7161,7 +6457,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7176,7 +6472,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -7202,31 +6498,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7236,7 +6529,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7251,7 +6544,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -7295,31 +6588,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7329,7 +6619,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7403,7 +6693,7 @@ "parameters": [], "responses": { "200": { - "description": "Role successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7412,28 +6702,18 @@ } } }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RoleResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7443,7 +6723,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7527,7 +6807,7 @@ ], "responses": { "200": { - "description": "Role successfully updated.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7536,28 +6816,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RoleResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7567,7 +6837,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7599,31 +6869,28 @@ } ], "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7633,7 +6900,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7648,7 +6915,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "description": "Create schedule.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -8357,7 +7624,7 @@ "parameters": [], "responses": { "200": { - "description": "Schedule successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -8366,28 +7633,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseSchedule" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8397,7 +7654,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8412,7 +7669,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "description": "Deletes a scheduled job.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -8429,31 +7686,28 @@ } ], "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8463,7 +7717,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8478,7 +7732,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", + "description": "Search Schedules
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -8529,7 +7783,7 @@ "parameters": [], "responses": { "200": { - "description": "Schedule search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -8541,28 +7795,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8572,7 +7819,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8587,7 +7834,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Update schedule.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -9302,31 +8549,28 @@ } ], "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9336,7 +8580,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9351,7 +8595,7 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -9401,55 +8645,27 @@ "parameters": [], "responses": { "200": { - "description": "Custom action created successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseCustomAction" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9459,7 +8675,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9474,7 +8690,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -9537,31 +8753,28 @@ } ], "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9571,7 +8784,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9586,7 +8799,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -9603,31 +8816,28 @@ } ], "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9637,7 +8847,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { From 06e9df9ab29b13087c00e460c806fc7f91177e96 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 04:05:32 +0000 Subject: [PATCH 053/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2226 +++++++++++++++++++++---------- 1 file changed, 1508 insertions(+), 718 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f29c68770..606a2f2bd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -59,7 +59,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -67,7 +67,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -76,18 +76,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -97,7 +107,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -112,7 +122,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.4.0.cl" @@ -120,7 +130,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { @@ -129,18 +139,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetTokenResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -150,7 +170,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -165,7 +185,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -329,7 +349,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User search result.", "content": { "application/json": { "schema": { @@ -341,21 +361,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -365,7 +392,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -380,7 +407,7 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -388,27 +415,66 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" + }, + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -418,7 +484,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -433,7 +499,7 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -441,27 +507,44 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster config information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemConfig" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -471,7 +554,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -486,7 +569,7 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -494,7 +577,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster configuration which can be overridden.", "content": { "application/json": { "schema": { @@ -503,18 +586,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -524,7 +617,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -539,7 +632,7 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -589,7 +682,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Organization search result.", "content": { "application/json": { "schema": { @@ -597,25 +690,52 @@ "items": { "$ref": "#/components/schemas/OrgResponse" } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -625,7 +745,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -640,7 +760,7 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -671,7 +791,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Tags search result.", "content": { "application/json": { "schema": { @@ -679,25 +799,66 @@ "items": { "$ref": "#/components/schemas/Tag" } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -707,7 +868,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -722,7 +883,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -854,7 +1015,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User group search result.", "content": { "application/json": { "schema": { @@ -866,21 +1027,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -890,7 +1058,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -905,7 +1073,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1048,7 +1216,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Metadata objects search result.", "content": { "application/json": { "schema": { @@ -1060,21 +1228,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1084,7 +1259,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1099,7 +1274,7 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1133,7 +1308,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1142,18 +1317,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1163,7 +1348,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1178,7 +1363,7 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1205,7 +1390,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1214,18 +1399,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1235,7 +1430,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1250,7 +1445,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1319,7 +1514,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export report file of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1328,18 +1523,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1349,7 +1554,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1364,7 +1569,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1414,7 +1619,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export report file of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1423,18 +1628,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1444,7 +1659,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1459,7 +1674,7 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -1496,27 +1711,81 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching permissions of principals is successful.", "content": { "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "principals": [ + { + "identifier": "test_user", + "type": "USER" + } + ] + } + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1526,7 +1795,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1541,7 +1810,7 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -1584,27 +1853,102 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching permissions of metadata objects is successful.", "content": { "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "metadata": [ + { + "type": "LIVEBOARD", + "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" + } + ], + "include_dependent_objects": false + } + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1614,7 +1958,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1629,7 +1973,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1693,7 +2037,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1702,18 +2046,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1723,7 +2077,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1738,7 +2092,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1808,7 +2162,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1817,18 +2171,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1838,7 +2202,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1853,7 +2217,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1912,7 +2276,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1921,18 +2285,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1942,7 +2316,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1957,7 +2331,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -1997,7 +2371,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Log fetched successfully.", "content": { "application/json": { "schema": { @@ -2009,21 +2383,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2033,7 +2414,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2048,7 +2429,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2074,7 +2455,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Details of local repository configuration", "content": { "application/json": { "schema": { @@ -2086,21 +2467,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2110,7 +2498,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2125,7 +2513,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2175,7 +2563,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Commit history of the metadata object", "content": { "application/json": { "schema": { @@ -2187,21 +2575,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2211,7 +2606,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2226,7 +2621,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -2338,7 +2733,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "List of connections to the datasource.", "content": { "application/json": { "schema": { @@ -2350,21 +2745,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2374,7 +2776,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2496,7 +2898,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Roles search result.", "content": { "application/json": { "schema": { @@ -2508,21 +2910,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2532,7 +2941,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -2547,7 +2956,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -2605,7 +3014,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Custom action search is successful.", "content": { "application/json": { "schema": { @@ -2613,25 +3022,50 @@ "items": { "$ref": "#/components/schemas/ResponseCustomAction" } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2641,7 +3075,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2656,7 +3090,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2692,28 +3126,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2723,7 +3160,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2738,7 +3175,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2813,7 +3250,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2822,18 +3259,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2843,7 +3290,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2859,7 +3306,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2929,7 +3376,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2938,18 +3385,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2959,7 +3416,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2975,35 +3432,38 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" ], "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3013,7 +3473,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3028,7 +3488,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3052,28 +3512,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3083,7 +3546,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3098,7 +3561,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3255,7 +3718,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User successfully created.", "content": { "application/json": { "schema": { @@ -3264,18 +3727,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3285,7 +3758,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3300,7 +3773,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3454,28 +3927,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3485,7 +3961,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3500,7 +3976,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3517,28 +3993,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3548,7 +4027,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3563,7 +4042,7 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3609,7 +4088,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import users operation successful.", "content": { "application/json": { "schema": { @@ -3618,18 +4097,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3639,7 +4128,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3654,7 +4143,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3690,28 +4179,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3721,7 +4213,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3736,7 +4228,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3767,28 +4259,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3798,7 +4293,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3813,7 +4308,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3838,28 +4333,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3869,7 +4367,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3921,7 +4419,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User activated successfully.", "content": { "application/json": { "schema": { @@ -3930,18 +4428,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3951,7 +4459,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3998,7 +4506,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User deactivated successfully.", "content": { "application/json": { "schema": { @@ -4007,18 +4515,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4028,7 +4546,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4043,7 +4561,7 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -4069,28 +4587,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4100,7 +4621,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4115,7 +4636,7 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4146,27 +4667,48 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Organization successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrgResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4176,7 +4718,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4191,7 +4733,7 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4244,28 +4786,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4275,7 +4820,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4290,7 +4835,7 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4307,28 +4852,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4338,7 +4886,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4353,7 +4901,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4384,27 +4932,55 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Tag successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4414,7 +4990,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4429,7 +5005,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4465,28 +5041,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4496,7 +5075,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4511,7 +5090,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4528,28 +5107,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4559,7 +5141,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4574,7 +5156,7 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4611,28 +5193,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4642,7 +5227,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4657,7 +5242,7 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4694,28 +5279,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4725,7 +5313,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4740,7 +5328,7 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -4852,7 +5440,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User group successfully created.", "content": { "application/json": { "schema": { @@ -4861,18 +5449,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UserGroupResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4882,7 +5480,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4897,7 +5495,7 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -5021,28 +5619,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5052,7 +5653,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5067,7 +5668,7 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -5084,28 +5685,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5115,7 +5719,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5130,7 +5734,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -5168,7 +5772,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import user groups operation successful.", "content": { "application/json": { "schema": { @@ -5177,18 +5781,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5198,7 +5812,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5213,7 +5827,7 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5259,7 +5873,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import metadata objects using specified TMLs is successful.", "content": { "application/json": { "schema": { @@ -5271,21 +5885,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5295,7 +5916,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5310,7 +5931,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5361,33 +5982,40 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5397,7 +6025,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5412,7 +6040,7 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5447,28 +6075,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5478,7 +6109,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5493,7 +6124,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -5531,28 +6162,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5562,7 +6196,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5577,7 +6211,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -5649,28 +6283,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5680,7 +6317,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5695,7 +6332,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5767,7 +6404,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully configured local repository", "content": { "application/json": { "schema": { @@ -5776,18 +6413,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RepoConfigObject" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5797,7 +6444,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5812,7 +6459,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5873,7 +6520,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully updated local repository configuration", "content": { "application/json": { "schema": { @@ -5882,18 +6529,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RepoConfigObject" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5903,7 +6560,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5918,7 +6575,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5941,28 +6598,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5972,7 +6632,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5987,7 +6647,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6032,7 +6692,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully committed the metadata objects", "content": { "application/json": { "schema": { @@ -6041,18 +6701,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CommitResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6062,7 +6732,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6077,7 +6747,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6126,7 +6796,7 @@ ], "responses": { "200": { - "description": "Common successful response", + "description": "Reverted the object to the commit point specified", "content": { "application/json": { "schema": { @@ -6135,18 +6805,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RevertResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6156,7 +6836,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6171,7 +6851,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6203,7 +6883,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "validation done successfully", "content": { "application/json": { "schema": { @@ -6215,21 +6895,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6239,7 +6926,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6254,7 +6941,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6303,7 +6990,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully deployed the changes", "content": { "application/json": { "schema": { @@ -6315,21 +7002,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6339,7 +7033,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6354,7 +7048,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6427,7 +7121,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Connection to the datasource successfully created.", "content": { "application/json": { "schema": { @@ -6436,18 +7130,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6457,7 +7161,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6472,7 +7176,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6498,28 +7202,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6529,7 +7236,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6544,7 +7251,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6588,28 +7295,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6619,7 +7329,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6693,7 +7403,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Role successfully created.", "content": { "application/json": { "schema": { @@ -6702,18 +7412,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid parameters.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RoleResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6723,7 +7443,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6807,7 +7527,7 @@ ], "responses": { "200": { - "description": "Common successful response", + "description": "Role successfully updated.", "content": { "application/json": { "schema": { @@ -6816,18 +7536,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RoleResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6837,7 +7567,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6869,28 +7599,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6900,7 +7633,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6915,7 +7648,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "Create schedule.
Version: 9.4.0.cl or later", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7624,7 +8357,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Schedule successfully created.", "content": { "application/json": { "schema": { @@ -7633,18 +8366,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseSchedule" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7654,7 +8397,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7669,7 +8412,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "Deletes a scheduled job.
Version: 9.4.0.cl or later", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7686,28 +8429,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7717,7 +8463,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7732,7 +8478,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "Search Schedules
Version: 9.4.0.cl or later", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7783,7 +8529,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Schedule search result.", "content": { "application/json": { "schema": { @@ -7795,21 +8541,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7819,7 +8572,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7834,7 +8587,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "Update schedule.
Version: 9.4.0.cl or later", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -8549,28 +9302,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8580,7 +9336,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8595,7 +9351,7 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8645,27 +9401,55 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Custom action created successfully.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8675,7 +9459,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8690,7 +9474,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8753,28 +9537,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8784,7 +9571,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8799,7 +9586,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8816,28 +9603,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8847,7 +9637,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { From 6023d6e6c32389905a90dff57b9cf9842f7605e2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 04:25:04 +0000 Subject: [PATCH 054/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2228 ++++++++++--------------------- 1 file changed, 719 insertions(+), 1509 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 606a2f2bd..f29c68770 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -59,7 +59,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -67,7 +67,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -76,28 +76,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -107,7 +97,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -122,7 +112,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", "tags": [ "Authentication", "9.4.0.cl" @@ -130,7 +120,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching token for current user successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -139,28 +129,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/GetTokenResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -170,7 +150,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -185,7 +165,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -349,7 +329,7 @@ "parameters": [], "responses": { "200": { - "description": "User search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -361,28 +341,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -392,7 +365,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -407,7 +380,7 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "System", "9.0.0.cl" @@ -415,66 +388,27 @@ "parameters": [], "responses": { "200": { - "description": "Cluster information.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SystemInfo" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -484,7 +418,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -499,7 +433,7 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "System", "9.0.0.cl" @@ -507,44 +441,27 @@ "parameters": [], "responses": { "200": { - "description": "Cluster config information.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SystemConfig" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -554,7 +471,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -569,7 +486,7 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "System", "9.2.0.cl" @@ -577,7 +494,7 @@ "parameters": [], "responses": { "200": { - "description": "Cluster configuration which can be overridden.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -586,28 +503,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -617,7 +524,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -632,7 +539,7 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -682,7 +589,7 @@ "parameters": [], "responses": { "200": { - "description": "Organization search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -690,52 +597,25 @@ "items": { "$ref": "#/components/schemas/OrgResponse" } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -745,7 +625,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -760,7 +640,7 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -791,7 +671,7 @@ "parameters": [], "responses": { "200": { - "description": "Tags search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -799,66 +679,25 @@ "items": { "$ref": "#/components/schemas/Tag" } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -868,7 +707,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -883,7 +722,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -1015,7 +854,7 @@ "parameters": [], "responses": { "200": { - "description": "User group search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1027,28 +866,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1058,7 +890,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1073,7 +905,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1216,7 +1048,7 @@ "parameters": [], "responses": { "200": { - "description": "Metadata objects search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1228,28 +1060,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1259,7 +1084,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1274,7 +1099,7 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1308,7 +1133,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1317,28 +1142,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SqlQueryResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1348,7 +1163,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1363,7 +1178,7 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -1390,7 +1205,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1399,28 +1214,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SqlQueryResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1430,7 +1235,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1445,7 +1250,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Reports", "9.0.0.cl" @@ -1514,7 +1319,7 @@ "parameters": [], "responses": { "200": { - "description": "Export report file of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1523,28 +1328,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1554,7 +1349,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1569,7 +1364,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Reports", "9.0.0.cl" @@ -1619,7 +1414,7 @@ "parameters": [], "responses": { "200": { - "description": "Export report file of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -1628,28 +1423,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1659,7 +1444,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1674,7 +1459,7 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -1711,81 +1496,27 @@ "parameters": [], "responses": { "200": { - "description": "Fetching permissions of principals is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { "type": "object" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ], - "__args": { - "principals": [ - { - "identifier": "test_user", - "type": "USER" - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1795,7 +1526,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1810,7 +1541,7 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -1853,102 +1584,27 @@ "parameters": [], "responses": { "200": { - "description": "Fetching permissions of metadata objects is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { "type": "object" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ], - "__args": { - "metadata": [ - { - "type": "LIVEBOARD", - "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" - } - ], - "include_dependent_objects": false - } - } - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1958,7 +1614,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -1973,7 +1629,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2037,7 +1693,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2046,28 +1702,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/SearchDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2077,7 +1723,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2092,7 +1738,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2162,7 +1808,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2171,28 +1817,18 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/LiveboardDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2202,7 +1838,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2217,7 +1853,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Data", "9.0.0.cl" @@ -2276,7 +1912,7 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2285,28 +1921,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/AnswerDataResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2316,7 +1942,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2331,7 +1957,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Log", "9.0.0.cl" @@ -2371,7 +1997,7 @@ "parameters": [], "responses": { "200": { - "description": "Log fetched successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2383,28 +2009,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2414,7 +2033,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2429,7 +2048,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -2455,7 +2074,7 @@ "parameters": [], "responses": { "200": { - "description": "Details of local repository configuration", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2467,28 +2086,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2498,7 +2110,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2513,7 +2125,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\nBeta Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -2563,7 +2175,7 @@ "parameters": [], "responses": { "200": { - "description": "Commit history of the metadata object", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2575,28 +2187,21 @@ } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2606,7 +2211,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2621,7 +2226,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -2733,7 +2338,7 @@ "parameters": [], "responses": { "200": { - "description": "List of connections to the datasource.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2745,28 +2350,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2776,7 +2374,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2898,7 +2496,7 @@ "parameters": [], "responses": { "200": { - "description": "Roles search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -2910,28 +2508,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2941,7 +2532,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -2956,7 +2547,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -3014,7 +2605,7 @@ "parameters": [], "responses": { "200": { - "description": "Custom action search is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3022,50 +2613,25 @@ "items": { "$ref": "#/components/schemas/ResponseCustomAction" } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } } } } }, - "400": { - "description": "Invalid request.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3075,7 +2641,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3090,7 +2656,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3126,31 +2692,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3160,7 +2723,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3175,7 +2738,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3250,7 +2813,7 @@ "parameters": [], "responses": { "200": { - "description": "Bearer auth token creation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3259,28 +2822,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3290,7 +2843,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3306,7 +2859,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3376,7 +2929,7 @@ "parameters": [], "responses": { "200": { - "description": "Bearer auth token creation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3385,28 +2938,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3416,7 +2959,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3432,38 +2975,35 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" ], "parameters": [], "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3473,7 +3013,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3488,7 +3028,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Authentication", "9.0.0.cl" @@ -3512,31 +3052,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3546,7 +3083,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3561,7 +3098,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3718,7 +3255,7 @@ "parameters": [], "responses": { "200": { - "description": "User successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -3727,28 +3264,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3758,7 +3285,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3773,7 +3300,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3927,31 +3454,28 @@ } ], "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3961,7 +3485,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -3976,7 +3500,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -3993,31 +3517,28 @@ } ], "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4027,7 +3548,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4042,7 +3563,7 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4088,7 +3609,7 @@ "parameters": [], "responses": { "200": { - "description": "Import users operation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -4097,28 +3618,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ImportUsersResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4128,7 +3639,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4143,7 +3654,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4179,31 +3690,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4213,7 +3721,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4228,7 +3736,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4259,31 +3767,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4293,7 +3798,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4308,7 +3813,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Users", "9.0.0.cl" @@ -4333,31 +3838,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4367,7 +3869,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4419,7 +3921,7 @@ "parameters": [], "responses": { "200": { - "description": "User activated successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -4428,28 +3930,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/User" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4459,7 +3951,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4506,7 +3998,7 @@ "parameters": [], "responses": { "200": { - "description": "User deactivated successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -4515,28 +4007,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseActivationURL" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4546,7 +4028,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4561,7 +4043,7 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "System", "9.2.0.cl" @@ -4587,31 +4069,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4621,7 +4100,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4636,7 +4115,7 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4667,48 +4146,27 @@ "parameters": [], "responses": { "200": { - "description": "Organization successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/OrgResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4718,7 +4176,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4733,7 +4191,7 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4786,31 +4244,28 @@ } ], "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4820,7 +4275,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4835,7 +4290,7 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Orgs", "9.0.0.cl" @@ -4852,31 +4307,28 @@ } ], "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4886,7 +4338,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4901,7 +4353,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -4932,55 +4384,27 @@ "parameters": [], "responses": { "200": { - "description": "Tag successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } } } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Tag" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -4990,7 +4414,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5005,7 +4429,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5041,31 +4465,28 @@ } ], "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5075,7 +4496,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5090,7 +4511,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5107,31 +4528,28 @@ } ], "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5141,7 +4559,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5156,7 +4574,7 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5193,31 +4611,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5227,7 +4642,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5242,7 +4657,7 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Tags", "9.0.0.cl" @@ -5279,31 +4694,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5313,7 +4725,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5328,7 +4740,7 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5440,7 +4852,7 @@ "parameters": [], "responses": { "200": { - "description": "User group successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5449,28 +4861,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/UserGroupResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5480,7 +4882,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5495,7 +4897,7 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5619,31 +5021,28 @@ } ], "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5653,7 +5052,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5668,7 +5067,7 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5685,31 +5084,28 @@ } ], "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5719,7 +5115,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5734,7 +5130,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Groups", "9.0.0.cl" @@ -5772,7 +5168,7 @@ "parameters": [], "responses": { "200": { - "description": "Import user groups operation successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5781,28 +5177,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ImportUserGroupsResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5812,7 +5198,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5827,7 +5213,7 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -5873,7 +5259,7 @@ "parameters": [], "responses": { "200": { - "description": "Import metadata objects using specified TMLs is successful.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -5885,28 +5271,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5916,7 +5295,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -5931,7 +5310,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -5981,41 +5360,34 @@ }, "parameters": [], "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "type": "object" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6025,7 +5397,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6040,7 +5412,7 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Metadata", "9.0.0.cl" @@ -6075,31 +5447,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6109,7 +5478,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6124,7 +5493,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -6162,31 +5531,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6196,7 +5562,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6211,7 +5577,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.0.0.cl or later", "tags": [ "Security", "9.0.0.cl" @@ -6283,31 +5649,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6317,7 +5680,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6332,7 +5695,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6404,7 +5767,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully configured local repository", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6413,28 +5776,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RepoConfigObject" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6444,7 +5797,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6459,7 +5812,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6520,7 +5873,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully updated local repository configuration", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6529,28 +5882,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RepoConfigObject" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6560,7 +5903,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6575,7 +5918,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6598,31 +5941,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6632,7 +5972,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6647,7 +5987,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\nBeta Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6692,7 +6032,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully committed the metadata objects", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6701,28 +6041,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/CommitResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6732,7 +6062,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6747,7 +6077,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\nBeta Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6796,7 +6126,7 @@ ], "responses": { "200": { - "description": "Reverted the object to the commit point specified", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6805,28 +6135,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RevertResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6836,7 +6156,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6851,7 +6171,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\nBeta Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6883,7 +6203,7 @@ "parameters": [], "responses": { "200": { - "description": "validation done successfully", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -6895,28 +6215,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6926,7 +6239,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -6941,7 +6254,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Beta Version: 9.2.0.cl or later", "tags": [ "Version Control", "9.2.0.cl" @@ -6990,7 +6303,7 @@ "parameters": [], "responses": { "200": { - "description": "Successfully deployed the changes", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7002,28 +6315,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7033,7 +6339,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7048,7 +6354,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -7121,7 +6427,7 @@ "parameters": [], "responses": { "200": { - "description": "Connection to the datasource successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7130,28 +6436,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/CreateConnectionResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7161,7 +6457,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7176,7 +6472,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -7202,31 +6498,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7236,7 +6529,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7251,7 +6544,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.2.0.cl or later", "tags": [ "Connections", "9.2.0.cl" @@ -7295,31 +6588,28 @@ }, "parameters": [], "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7329,7 +6619,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7403,7 +6693,7 @@ "parameters": [], "responses": { "200": { - "description": "Role successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7412,28 +6702,18 @@ } } }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RoleResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7443,7 +6723,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7527,7 +6807,7 @@ ], "responses": { "200": { - "description": "Role successfully updated.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -7536,28 +6816,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/RoleResponse" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7567,7 +6837,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7599,31 +6869,28 @@ } ], "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7633,7 +6900,7 @@ } }, "500": { - "description": "Internal error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -7648,7 +6915,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "description": "Create schedule.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -8357,7 +7624,7 @@ "parameters": [], "responses": { "200": { - "description": "Schedule successfully created.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -8366,28 +7633,18 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseSchedule" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8397,7 +7654,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8412,7 +7669,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "description": "Deletes a scheduled job.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -8429,31 +7686,28 @@ } ], "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8463,7 +7717,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8478,7 +7732,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", + "description": "Search Schedules
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -8529,7 +7783,7 @@ "parameters": [], "responses": { "200": { - "description": "Schedule search result.", + "description": "Common successful response", "content": { "application/json": { "schema": { @@ -8541,28 +7795,21 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8572,7 +7819,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -8587,7 +7834,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Update schedule.
Version: 9.4.0.cl or later", "tags": [ "Schedules", "9.4.0.cl" @@ -9302,31 +8549,28 @@ } ], "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9336,7 +8580,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9351,7 +8595,7 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -9401,55 +8645,27 @@ "parameters": [], "responses": { "200": { - "description": "Custom action created successfully.", + "description": "Common successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/ResponseCustomAction" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9459,7 +8675,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9474,7 +8690,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -9537,31 +8753,28 @@ } ], "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9571,7 +8784,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9586,7 +8799,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": " Version: 9.6.0.cl or later", "tags": [ "Custom Action", "9.6.0.cl" @@ -9603,31 +8816,28 @@ } ], "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", + "200": { + "description": "Common successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "401": { - "description": "Unauthorized access.", + "201": { + "description": "Common error response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, - "403": { - "description": "Forbidden access.", + "400": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -9637,7 +8847,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { From 49df0338c7dfd3b8f6bc3ac5897b6be4178c168f Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 04:42:34 +0000 Subject: [PATCH 055/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2222 +++++++++++++++++++++---------- 1 file changed, 1502 insertions(+), 720 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f29c68770..3c3e36db4 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -59,7 +59,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -67,7 +67,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -76,18 +76,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -97,7 +107,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -112,7 +122,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "Get token for the currently logged-in user.
Version: 9.4.0.cl or later", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.4.0.cl" @@ -120,7 +130,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { @@ -129,18 +139,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetTokenResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -150,7 +170,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -165,7 +185,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -329,7 +349,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User search result.", "content": { "application/json": { "schema": { @@ -341,21 +361,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -365,7 +392,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -380,7 +407,7 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -388,27 +415,66 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" + }, + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -418,7 +484,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -433,7 +499,7 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -441,27 +507,44 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster config information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemConfig" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -471,7 +554,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -486,7 +569,7 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -494,7 +577,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Cluster configuration which can be overridden.", "content": { "application/json": { "schema": { @@ -503,18 +586,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -524,7 +617,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -539,7 +632,7 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -589,7 +682,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Organization search result.", "content": { "application/json": { "schema": { @@ -597,25 +690,52 @@ "items": { "$ref": "#/components/schemas/OrgResponse" } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -625,7 +745,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -640,7 +760,7 @@ "/api/rest/2.0/tags/search": { "post": { "operationId": "searchTags", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -671,7 +791,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Tags search result.", "content": { "application/json": { "schema": { @@ -679,25 +799,66 @@ "items": { "$ref": "#/components/schemas/Tag" } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -707,7 +868,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -722,7 +883,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -854,7 +1015,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User group search result.", "content": { "application/json": { "schema": { @@ -866,21 +1027,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -890,7 +1058,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -905,7 +1073,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1048,7 +1216,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Metadata objects search result.", "content": { "application/json": { "schema": { @@ -1060,21 +1228,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1084,7 +1259,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1099,7 +1274,7 @@ "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1133,7 +1308,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1142,18 +1317,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1163,7 +1348,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1178,7 +1363,7 @@ "/api/rest/2.0/metadata/answer/sql": { "post": { "operationId": "fetchAnswerSqlQuery", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1205,7 +1390,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1214,18 +1399,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1235,7 +1430,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1250,7 +1445,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1319,27 +1514,33 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1349,7 +1550,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1364,7 +1565,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1414,27 +1615,33 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1444,7 +1651,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1459,7 +1666,7 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -1496,27 +1703,81 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching permissions of principals is successful.", "content": { "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "principals": [ + { + "identifier": "test_user", + "type": "USER" + } + ] + } + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1526,7 +1787,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1541,7 +1802,7 @@ "/api/rest/2.0/security/metadata/fetch-permissions": { "post": { "operationId": "fetchPermissionsOnMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -1584,27 +1845,102 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching permissions of metadata objects is successful.", "content": { "application/json": { "schema": { "type": "object" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ], + "__args": { + "metadata": [ + { + "type": "LIVEBOARD", + "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" + } + ], + "include_dependent_objects": false + } + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1614,7 +1950,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1629,7 +1965,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1693,7 +2029,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1702,18 +2038,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1723,7 +2069,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1738,7 +2084,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1808,7 +2154,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1817,18 +2163,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1838,7 +2194,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1853,7 +2209,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1912,7 +2268,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { @@ -1921,18 +2277,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -1942,7 +2308,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -1957,7 +2323,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -1997,7 +2363,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Log fetched successfully.", "content": { "application/json": { "schema": { @@ -2009,21 +2375,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2033,7 +2406,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2048,7 +2421,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2074,7 +2447,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Details of local repository configuration", "content": { "application/json": { "schema": { @@ -2086,21 +2459,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2110,7 +2490,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2125,7 +2505,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2175,7 +2555,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Commit history of the metadata object", "content": { "application/json": { "schema": { @@ -2187,21 +2567,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2211,7 +2598,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2226,7 +2613,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -2338,7 +2725,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "List of connections to the datasource.", "content": { "application/json": { "schema": { @@ -2350,21 +2737,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2374,7 +2768,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2496,7 +2890,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Roles search result.", "content": { "application/json": { "schema": { @@ -2508,21 +2902,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2532,7 +2933,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -2547,7 +2948,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -2605,7 +3006,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Custom action search is successful.", "content": { "application/json": { "schema": { @@ -2613,25 +3014,50 @@ "items": { "$ref": "#/components/schemas/ResponseCustomAction" } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2641,7 +3067,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2656,7 +3082,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2692,28 +3118,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2723,7 +3152,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2738,7 +3167,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2813,7 +3242,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2822,18 +3251,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2843,7 +3282,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2859,7 +3298,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -2929,7 +3368,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { @@ -2938,18 +3377,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -2959,7 +3408,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -2975,35 +3424,38 @@ "/api/rest/2.0/auth/session/logout": { "post": { "operationId": "logout", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" ], "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3013,7 +3465,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3028,7 +3480,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3052,28 +3504,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3083,7 +3538,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3098,7 +3553,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3255,7 +3710,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User successfully created.", "content": { "application/json": { "schema": { @@ -3264,18 +3719,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3285,7 +3750,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3300,7 +3765,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3454,28 +3919,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3485,7 +3953,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3500,7 +3968,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3517,28 +3985,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3548,7 +4019,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3563,7 +4034,7 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3609,7 +4080,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import users operation successful.", "content": { "application/json": { "schema": { @@ -3618,18 +4089,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3639,7 +4120,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3654,7 +4135,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3690,28 +4171,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3721,7 +4205,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3736,7 +4220,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3767,28 +4251,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3798,7 +4285,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3813,7 +4300,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -3838,28 +4325,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3869,7 +4359,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3921,7 +4411,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User activated successfully.", "content": { "application/json": { "schema": { @@ -3930,18 +4420,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -3951,7 +4451,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3998,7 +4498,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User deactivated successfully.", "content": { "application/json": { "schema": { @@ -4007,18 +4507,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4028,7 +4538,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4043,7 +4553,7 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -4069,28 +4579,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4100,7 +4613,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4115,7 +4628,7 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4146,27 +4659,48 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Organization successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrgResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4176,7 +4710,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4191,7 +4725,7 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4244,28 +4778,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4275,7 +4812,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4290,7 +4827,7 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -4307,28 +4844,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4338,7 +4878,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4353,7 +4893,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4384,27 +4924,55 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Tag successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4414,7 +4982,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4429,7 +4997,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4465,28 +5033,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4496,7 +5067,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4511,7 +5082,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4528,28 +5099,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4559,7 +5133,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4574,7 +5148,7 @@ "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4611,28 +5185,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4642,7 +5219,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4657,7 +5234,7 @@ "/api/rest/2.0/tags/unassign": { "post": { "operationId": "unassignTag", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -4694,28 +5271,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4725,7 +5305,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4740,7 +5320,7 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -4852,7 +5432,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "User group successfully created.", "content": { "application/json": { "schema": { @@ -4861,18 +5441,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UserGroupResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4882,7 +5472,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4897,7 +5487,7 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -5021,28 +5611,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5052,7 +5645,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5067,7 +5660,7 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -5084,28 +5677,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5115,7 +5711,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5130,7 +5726,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -5168,7 +5764,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import user groups operation successful.", "content": { "application/json": { "schema": { @@ -5177,18 +5773,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5198,7 +5804,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5213,7 +5819,7 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5259,7 +5865,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Import metadata objects using specified TMLs is successful.", "content": { "application/json": { "schema": { @@ -5271,21 +5877,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5295,7 +5908,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5310,7 +5923,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5361,33 +5974,40 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5397,7 +6017,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5412,7 +6032,7 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5447,28 +6067,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5478,7 +6101,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5493,7 +6116,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -5531,28 +6154,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5562,7 +6188,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5577,7 +6203,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": " Version: 9.0.0.cl or later", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -5649,28 +6275,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5680,7 +6309,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5695,7 +6324,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5767,7 +6396,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully configured local repository", "content": { "application/json": { "schema": { @@ -5776,18 +6405,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RepoConfigObject" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5797,7 +6436,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5812,7 +6451,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5873,7 +6512,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully updated local repository configuration", "content": { "application/json": { "schema": { @@ -5882,18 +6521,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RepoConfigObject" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5903,7 +6552,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5918,7 +6567,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -5941,28 +6590,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -5972,7 +6624,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -5987,7 +6639,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6032,7 +6684,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully committed the metadata objects", "content": { "application/json": { "schema": { @@ -6041,18 +6693,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CommitResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6062,7 +6724,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6077,7 +6739,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6126,7 +6788,7 @@ ], "responses": { "200": { - "description": "Common successful response", + "description": "Reverted the object to the commit point specified", "content": { "application/json": { "schema": { @@ -6135,18 +6797,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RevertResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6156,7 +6828,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6171,7 +6843,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6203,7 +6875,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "validation done successfully", "content": { "application/json": { "schema": { @@ -6215,21 +6887,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6239,7 +6918,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6254,7 +6933,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "Beta Version: 9.2.0.cl or later", + "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6303,7 +6982,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully deployed the changes", "content": { "application/json": { "schema": { @@ -6315,21 +6994,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6339,7 +7025,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6354,7 +7040,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6427,7 +7113,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Connection to the datasource successfully created.", "content": { "application/json": { "schema": { @@ -6436,18 +7122,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6457,7 +7153,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6472,7 +7168,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6498,28 +7194,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6529,7 +7228,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6544,7 +7243,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": " Version: 9.2.0.cl or later", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -6588,28 +7287,31 @@ }, "parameters": [], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6619,7 +7321,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6693,7 +7395,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Role successfully created.", "content": { "application/json": { "schema": { @@ -6702,18 +7404,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid parameters.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RoleResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6723,7 +7435,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6807,7 +7519,7 @@ ], "responses": { "200": { - "description": "Common successful response", + "description": "Role successfully updated.", "content": { "application/json": { "schema": { @@ -6816,18 +7528,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RoleResponse" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6837,7 +7559,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -6869,28 +7591,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -6900,7 +7625,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6915,7 +7640,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "Create schedule.
Version: 9.4.0.cl or later", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7624,7 +8349,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Schedule successfully created.", "content": { "application/json": { "schema": { @@ -7633,18 +8358,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseSchedule" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7654,7 +8389,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7669,7 +8404,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "Deletes a scheduled job.
Version: 9.4.0.cl or later", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7686,28 +8421,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7717,7 +8455,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7732,7 +8470,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "Search Schedules
Version: 9.4.0.cl or later", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -7783,7 +8521,7 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Schedule search result.", "content": { "application/json": { "schema": { @@ -7795,21 +8533,28 @@ } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -7819,7 +8564,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -7834,7 +8579,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "Update schedule.
Version: 9.4.0.cl or later", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -8549,28 +9294,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8580,7 +9328,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8595,7 +9343,7 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8645,27 +9393,55 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Custom action created successfully.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8675,7 +9451,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8690,7 +9466,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8753,28 +9529,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8784,7 +9563,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -8799,7 +9578,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": " Version: 9.6.0.cl or later", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -8816,28 +9595,31 @@ } ], "responses": { - "200": { - "description": "Common successful response", + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "201": { - "description": "Common error response", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -8847,7 +9629,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { From f9fbf4025e063830a3297a0cb06253703d625b95 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 06:15:24 +0000 Subject: [PATCH 056/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3c3e36db4..1d3ad6443 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1516,7 +1516,11 @@ "200": { "description": "Export report file of specified metadata object is successful.", "content": { - "application/octet-stream": {} + "application/json": { + "schema": { + "type": "object" + } + } } }, "400": { @@ -1617,7 +1621,11 @@ "200": { "description": "Export report file of specified metadata object is successful.", "content": { - "application/octet-stream": {} + "application/json": { + "schema": { + "type": "object" + } + } } }, "400": { @@ -13058,11 +13066,11 @@ "PrincipalsListItem": { "type": "object", "required": [ - "id", + "identifier", "type" ], "properties": { - "id": { + "identifier": { "type": "string", "description": "Unique ID or name of the user or group." }, From 0e1e6d77710331df14bc28343e3a9d2513837cd3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 06:33:39 +0000 Subject: [PATCH 057/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 1d3ad6443..ce2e291ad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1516,11 +1516,7 @@ "200": { "description": "Export report file of specified metadata object is successful.", "content": { - "application/json": { - "schema": { - "type": "object" - } - } + "application/octet-stream": {} } }, "400": { @@ -1621,11 +1617,7 @@ "200": { "description": "Export report file of specified metadata object is successful.", "content": { - "application/json": { - "schema": { - "type": "object" - } - } + "application/octet-stream": {} } }, "400": { @@ -11930,6 +11922,7 @@ "id", "metadata", "name", + "recipient_details", "time_zone" ], "properties": { From e2d1747968a622332de4e28448b966beba14a9ee Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 17:13:12 +0000 Subject: [PATCH 058/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ce2e291ad..3d4caf47c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8338,8 +8338,7 @@ "description", "metadata_type", "metadata_identifier", - "time_zone", - "recipient_details" + "time_zone" ] } } From 87d7bcd9735fb6c5887326aee955df6748a462b0 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 18:04:07 +0000 Subject: [PATCH 059/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3d4caf47c..f11254680 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8338,7 +8338,8 @@ "description", "metadata_type", "metadata_identifier", - "time_zone" + "time_zone", + "recipient_details" ] } } @@ -11921,7 +11922,6 @@ "id", "metadata", "name", - "recipient_details", "time_zone" ], "properties": { From 0f6bf1c3709d8cec060d10962f49812a8f2a09ea Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Sep 2023 19:58:59 +0000 Subject: [PATCH 060/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f11254680..f69e57819 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13315,4 +13315,4 @@ } } ] -} +} \ No newline at end of file From bfe1cdddc22bca058df38c65c4106084cd56bf2a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 7 Sep 2023 10:22:44 +0000 Subject: [PATCH 061/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1 + 1 file changed, 1 insertion(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f69e57819..52f5ddda5 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -11922,6 +11922,7 @@ "id", "metadata", "name", + "recipient_details", "time_zone" ], "properties": { From fe327310f6a092a5c2451abba46683c85f446898 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 8 Sep 2023 12:05:55 +0000 Subject: [PATCH 062/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 52f5ddda5..09cc27b60 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2660,7 +2660,8 @@ "AMAZON_AURORA_MYSQL", "LOOKER", "AMAZON_ATHENA", - "SINGLESTORE" + "SINGLESTORE", + "GCP_SQLSERVER" ] } }, @@ -7086,7 +7087,8 @@ "AMAZON_AURORA_MYSQL", "LOOKER", "AMAZON_ATHENA", - "SINGLESTORE" + "SINGLESTORE", + "GCP_SQLSERVER" ] }, "data_warehouse_config": { @@ -11186,7 +11188,8 @@ "AMAZON_AURORA_MYSQL", "LOOKER", "AMAZON_ATHENA", - "SINGLESTORE" + "SINGLESTORE", + "GCP_SQLSERVER" ], "description": "Type of data warehouse." }, @@ -11787,7 +11790,8 @@ "AMAZON_AURORA_MYSQL", "LOOKER", "AMAZON_ATHENA", - "SINGLESTORE" + "SINGLESTORE", + "GCP_SQLSERVER" ], "description": "Type of data warehouse." }, From 59063250df3da7cbf3e706d9ba97f8d43372c6b8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 11 Sep 2023 08:21:03 +0000 Subject: [PATCH 063/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 09cc27b60..048551a4c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2421,7 +2421,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2433,7 +2433,7 @@ "type": "object", "properties": { "org_identifiers": { - "description": " List of Org IDs. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]\n \n\nNote: If no org identifier is specified,then the configurations will be returned for all orgs the user has access to
Version: 9.5.0.cl or later", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", "type": "array", "items": { "type": "string" @@ -2505,7 +2505,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\nBeta Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6325,7 +6325,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6349,7 +6349,7 @@ "type": "string" }, "org_identifier": { - "description": " Unique identifier of the Org. If no value is provided, the user will be created in the Org associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", "type": "string" }, "branch_names": { @@ -6452,7 +6452,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6472,7 +6472,7 @@ "type": "string" }, "org_identifier": { - "description": " Unique identifier of the Org. If no value is provided, the user will be created in the Org associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", "type": "string" }, "branch_names": { @@ -6568,7 +6568,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\nBeta Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6580,7 +6580,7 @@ "type": "object", "properties": { "cluster_level": { - "description": "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", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", "type": "boolean", "nullable": true } @@ -6640,7 +6640,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\nBeta Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6740,7 +6740,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\nBeta Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6844,7 +6844,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\nBeta Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6934,7 +6934,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\nBeta Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6968,7 +6968,8 @@ "type": "string", "enum": [ "ALL_OR_NONE", - "PARTIAL" + "PARTIAL", + "VALIDATE_ONLY" ] } }, From 1f06edc140d1c7b5a894b15960f26c8d8d04cd3e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 11 Sep 2023 10:27:29 +0000 Subject: [PATCH 064/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 048551a4c..42deb1f2c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4752,6 +4752,13 @@ "type": "string" } }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, "operation": { "description": "Type of update operation. Default operation type is ADD", "default": "ADD", From 9e632120750be1ec51f957055df1e3923e779a4a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 11 Sep 2023 11:36:55 +0000 Subject: [PATCH 065/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 42deb1f2c..ecb6e30dc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2661,7 +2661,9 @@ "LOOKER", "AMAZON_ATHENA", "SINGLESTORE", - "GCP_SQLSERVER" + "GCP_SQLSERVER", + "GCP_ALLOYDB_POSTGRESQL", + "GCP_POSTGRESQL" ] } }, @@ -7096,7 +7098,9 @@ "LOOKER", "AMAZON_ATHENA", "SINGLESTORE", - "GCP_SQLSERVER" + "GCP_SQLSERVER", + "GCP_ALLOYDB_POSTGRESQL", + "GCP_POSTGRESQL" ] }, "data_warehouse_config": { @@ -11197,7 +11201,9 @@ "LOOKER", "AMAZON_ATHENA", "SINGLESTORE", - "GCP_SQLSERVER" + "GCP_SQLSERVER", + "GCP_ALLOYDB_POSTGRESQL", + "GCP_POSTGRESQL" ], "description": "Type of data warehouse." }, @@ -11799,7 +11805,9 @@ "LOOKER", "AMAZON_ATHENA", "SINGLESTORE", - "GCP_SQLSERVER" + "GCP_SQLSERVER", + "GCP_ALLOYDB_POSTGRESQL", + "GCP_POSTGRESQL" ], "description": "Type of data warehouse." }, From b8d8cf5d83ac26000243a6a04dc3a13805a8a551 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 12 Sep 2023 04:58:26 +0000 Subject: [PATCH 066/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 99 +++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ecb6e30dc..b313dff60 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3231,6 +3231,10 @@ "items": { "type": "string" } + }, + "jwt_user_options": { + "description": "JWT user options to create a JWT token given the payload.", + "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -3358,6 +3362,10 @@ "items": { "type": "string" } + }, + "jwt_user_options": { + "description": "JWT user options to create a JWT token given the payload.", + "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -11485,6 +11493,33 @@ } } }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + } + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, "ResponseActivationURL": { "type": "object", "properties": { @@ -12575,6 +12610,40 @@ } } }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ] + } + }, + "description": "Metadata objects." + }, "CommitFileType": { "type": "object", "required": [ @@ -13312,6 +13381,36 @@ "description": "Determines if the table is linked" } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 71125e43d4484314924b551172e423cd9a16ddbc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 13 Sep 2023 04:42:53 +0000 Subject: [PATCH 067/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b313dff60..c040b887b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1286,7 +1286,7 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "ID or name of an Liveboard.", + "description": "ID or name of the Liveboard.", "type": "string" }, "visualization_identifiers": { From a18687011a47adf1b88cfa3827c3e943c14a9ed0 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 13 Sep 2023 05:52:03 +0000 Subject: [PATCH 068/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 512 ++++++++++++++++++++++++++++++++ 1 file changed, 512 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c040b887b..61719c037 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -52,6 +52,14 @@ "9.6.0.cl" ], "description": "Roles for version 9.6.0.cl" + }, + { + "name": "9.8.0.cl", + "id": "9.8.0.cl", + "tags": [ + "9.8.0.cl" + ], + "description": "Roles for version 9.8.0.cl" } ], "tags": [], @@ -9662,6 +9670,494 @@ } } } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.8.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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 to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.8.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "generateTml", + "description": "\n Version: 9.8.0.cl or later\n\nGenerate required table and worksheet and import them.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About generate TML\nModels and Worksheets to be imported can be selected by the user as part of the API.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.8.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "dbt_connection_identifier", + "model_tables", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "generateSyncTml", + "description": "\n Version: 9.8.0.cl or later\n\nResynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.8.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.8.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.8.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.8.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou can modify DBT connection object properties such as embrace connection name, embrace database name,import type, account identifier, access token, project identifier and environment settings.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.8.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + } + } + } + } + } + }, + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } } }, "components": { @@ -12282,6 +12778,22 @@ }, "description": "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." }, + "ModelTableList": { + "type": "object", + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, "FavoriteMetadataItem": { "type": "object", "required": [ From 7f189d0d7bac177b662d45d0fa82b3c539120780 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 22 Sep 2023 10:17:15 +0000 Subject: [PATCH 069/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3781 +++++++++++++++---------------- 1 file changed, 1872 insertions(+), 1909 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 61719c037..9eb81dc90 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -10170,6 +10170,55 @@ } } }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, "User": { "type": "object", "required": [ @@ -10398,138 +10447,86 @@ } } }, - "FavoriteMetadataInput": { + "Org": { "type": "object", + "required": [ + "id", + "name" + ], "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." }, - "type": { + "name": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object." + "description": "Name of the object." } - } + }, + "description": "The current Org context of the user." }, - "ImportUser": { + "FavoriteMetadataItem": { "type": "object", "required": [ - "user_identifier", - "display_name" + "id", + "name", + "type" ], "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { + "id": { "type": "string", - "description": "Password of the user." + "description": "Unique ID of the metadata object." }, - "account_type": { + "name": { "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account." + "description": "name of the metadata object." }, - "account_status": { + "type": { "type": "string", "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" ], - "default": "ACTIVE", - "description": "Status of the user account." - }, - "email": { - "type": "string", - "description": "Email address of the user." - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs." - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs." - }, - "visibility": { + "description": "Type of metadata object." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects" - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs" - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs" + "description": "The unique identifier of the object." }, - "home_liveboard_identifier": { + "name": { "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user." - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list." + "description": "Name of the object." } - } + }, + "description": "The object representation with ID and Name." }, - "ImportUsersResponse": { + "FavoriteMetadataInput": { "type": "object", "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object." } } }, @@ -10558,388 +10555,22 @@ }, "description": "Sort options." }, - "UserGroup": { + "SystemInfo": { "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "description": "The unique identifier of the object" }, "name": { - "type": "string" - } - } - }, - "VisualizationIdentifiersInput": { - "type": "object", - "properties": { - "identifier": { "type": "string", - "description": "Unique ID or name of the visualization." - } - } - }, - "MetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { + "description": "Name of the cluster." + }, + "release_version": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "The release version of the cluster." }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType associated in the Product" - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION" - ], - "description": "Type of metadata (Optional when given identifier is ID)." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID)." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type." - } - } - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The object representation with ID and Name." - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "name": { - "type": "string", - "description": "Name of the cluster." - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster." - }, - "time_zone": { + "time_zone": { "type": "string", "description": "The timezone of the cluster." }, @@ -11282,67 +10913,18 @@ } } }, - "MetadataSearchResponse": { + "Role": { "type": "object", - "required": [ - "metadata_type" - ], "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { + "id": { "type": "string", - "description": "Name of the metadata." + "description": "id of the role" }, - "metadata_type": { + "name": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects." - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any." - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects." - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects." - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects." - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed." + "description": "name of the role" } - }, - "description": "Metadata Search Response Object." + } }, "MetadataListItemInput": { "type": "object", @@ -11458,16 +11040,78 @@ ], "description": "Name of the field to apply the sort on." }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects." + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any." + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects." + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects." + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects." + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed." } }, - "description": "Sort options." + "description": "Metadata Search Response Object." }, "SqlQueryResponse": { "type": "object", @@ -11510,6 +11154,29 @@ } } }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, "PdfOptionsInput": { "type": "object", "properties": { @@ -11547,26 +11214,251 @@ "default": false, "description": "Indicates whether to include only the first page of the tables." }, - "page_footer_text": { + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page." + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title." + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters." + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type." + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata object." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Unique ID of the visualization." + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization." } } }, - "PngOptionsInput": { + "AnswerDataResponse": { "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title." + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters." + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" } - } + }, + "description": "Response format associated with fetch data api" }, "LogResponse": { "type": "object", @@ -11658,115 +11550,294 @@ } } }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer" + }, + "username": { + "type": "string", + "description": "Username of the committer" + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer" + }, + "username": { + "type": "string", + "description": "Username of the committer" + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection." + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns." + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database." + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database." + }, + "table": { + "type": "string", + "description": "Name of the table within the schema." + }, + "column": { + "type": "string", + "description": "Name of the column within the table." + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + } + }, "SearchConnectionResponse": { "type": "object", "required": [ - "id", - "name", - "data_warehouse_type" + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "SNOWFLAKE", + "AMAZON_REDSHIFT", + "GOOGLE_BIGQUERY", + "AZURE_SYNAPSE", + "TERADATA", + "SAP_HANA", + "STARBURST", + "ORACLE_ADW", + "DATABRICKS", + "DENODO", + "DREMIO", + "TRINO", + "PRESTO", + "POSTGRES", + "SQL_SERVER", + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects" + }, + "details": { + "type": "object", + "description": "Details of the connection." + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database." + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created." + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema." + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" ], "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, "name": { "type": "string", - "description": "Name of the connection." + "description": "Name of the table." }, - "description": { - "type": "string", - "description": "Description of the connection." + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table." }, - "data_warehouse_type": { + "type": { "type": "string", - "enum": [ - "SNOWFLAKE", - "AMAZON_REDSHIFT", - "GOOGLE_BIGQUERY", - "AZURE_SYNAPSE", - "TERADATA", - "SAP_HANA", - "STARBURST", - "ORACLE_ADW", - "DATABRICKS", - "DENODO", - "DREMIO", - "TRINO", - "PRESTO", - "POSTGRES", - "SQL_SERVER", - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects" + "description": "Type of table. Either view or table" }, - "details": { - "type": "object", - "description": "Details of the connection." - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { + "description": { "type": "string", - "description": "Unique ID or name of the connection." + "description": "Description of the table" }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" }, - "data_warehouse_objects": { + "linked": { + "type": "boolean", + "description": "Determines if the table is linked" + }, + "relationships": { "type": "array", "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" + "type": "object" }, - "description": "Filter options for databases, schemas, tables and columns." + "description": "List of relationships for the table" } } }, - "SortOptionInput": { + "Column": { "type": "object", + "required": [ + "name", + "data_type" + ], "properties": { - "field_name": { + "name": { "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on." + "description": "Name of the column" }, - "order": { + "data_type": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate" + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported" + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked" } } }, @@ -11898,6 +11969,16 @@ }, "description": "Response for search role api should handle hidden privileges as well." }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "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." + }, "ResponseCustomAction": { "type": "object", "required": [ @@ -11940,93 +12021,168 @@ }, "description": "Custom action details" }, - "Default_Action_Config_Search_Input": { + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type" + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name." + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action." + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url." + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name." + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key." + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization." + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name" + }, + "value": { + "type": "string", + "description": "Enter you key value" + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { + "type": "string", + "description": "Username for the basic authentication" + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter" + }, + "value": { + "type": "string", + "description": "Value for the url query parameter" + } + } + }, + "Default_action_config": { "type": "object", "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, "description": "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." }, - "Token": { + "Metadata_Association_Item": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" + "action_config", + "identifier", + "type" ], "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" }, - "valid_for_user_id": { + "identifier": { "type": "string", - "description": "Username to whom the token is issued." + "description": "Unique ID or name of the metadata." }, - "valid_for_username": { + "type": { "type": "string", - "description": "Unique identifier of the user to whom the token is issued." + "description": "Type of metadata." } } }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - } - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "ResponseActivationURL": { + "Action_config": { "type": "object", "properties": { - "activation_link": { + "position": { "type": "string", - "description": "Activation link to activate the user." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, - "description": "The object representation with activation link." + "description": "Specify that the association is enabled for the metadata object" }, - "TagMetadataTypeInput": { + "CustomActionMetadataTypeInput": { "type": "object", "required": [ "identifier" @@ -12035,1177 +12191,1109 @@ "type": { "type": "string", "enum": [ - "LIVEBOARD", + "VISUALIZATION", "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" + "WORKSHEET" ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." + "description": "Type of metadata object." }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata object." } - } + }, + "description": "MetadataType InputType used in Custom Action API's" }, - "ImportUserGroupsResponse": { + "GenericInfo": { "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." + "id": { + "type": "string" }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." + "name": { + "type": "string" } } }, - "GroupsImportListInput": { + "UserGroup": { "type": "object", - "required": [ - "display_name", - "group_identifier" - ], "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." - }, - "description": { - "type": "string", - "description": "Description of the group." + "id": { + "type": "string" }, - "privileges": { - "type": "array", + "name": { + "type": "string" + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { "items": { - "type": "string", - "enum": [ - "ADMINISTRATION", - "AUTHORING", - "USERDATAUPLOADING", - "DATADOWNLOADING", - "USERMANAGEMENT", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "BYPASSRLS", - "RANALYSIS", - "DEVELOPER", - "USER_ADMINISTRATION", - "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT", - "CAN_CREATE_CATALOG", - "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", - "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } ] - }, - "description": "Privileges that will be assigned to the group." - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group." - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group." + } }, - "user_identifiers": { + "metadata": { "type": "array", "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + "$ref": "#/components/schemas/JWT_Metadata_Object" + } } - } + }, + "description": "JWT user options to create a JWT token given the payload." }, - "CommitResponse": { + "JWT_Parameter": { "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit" + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." } - } + }, + "description": "List of runtime parameters need to set during the session." }, - "MetadataObject": { + "JWT_Metadata_Object": { "type": "object", - "required": [ - "identifier" - ], "properties": { "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" + "type": "string" }, "type": { "type": "string", "enum": [ "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata." + "ANSWER" + ] } - } + }, + "description": "Metadata objects." }, - "RevertResponse": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" + "token": { + "type": "string", + "description": "Bearer auth token." }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" }, - "commit_id": { + "valid_for_user_id": { "type": "string", - "description": "SHA id associated with the commit" + "description": "Username to whom the token is issued." }, - "branch": { + "valid_for_username": { "type": "string", - "description": "Branch where changes were committed" - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit" - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit" + "description": "Unique identifier of the user to whom the token is issued." } } }, - "DeployResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { + "access_type": { "type": "string", - "description": "Type of the metadata object" + "description": "Object access scope type." }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata." }, - "status_message": { + "metadata_id": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Unique identifier of the Org." } } }, - "CreateConnectionResponse": { + "ResponseActivationURL": { "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { + "activation_link": { "type": "string", - "enum": [ - "SNOWFLAKE", - "AMAZON_REDSHIFT", - "GOOGLE_BIGQUERY", - "AZURE_SYNAPSE", - "TERADATA", - "SAP_HANA", - "STARBURST", - "ORACLE_ADW", - "DATABRICKS", - "DENODO", - "DREMIO", - "TRINO", - "PRESTO", - "POSTGRES", - "SQL_SERVER", - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection." + "description": "Activation link to activate the user." } - } + }, + "description": "The object representation with activation link." }, - "RoleResponse": { + "ImportUser": { "type": "object", "required": [ - "id", - "name", - "description", - "privileges" + "user_identifier", + "display_name" ], "properties": { - "id": { + "user_identifier": { "type": "string", - "description": "Unique Id of the role." + "description": "Unique ID or name of the user." }, - "name": { + "display_name": { "type": "string", - "description": "Name of the role" + "description": "Display name of the user." }, - "description": { + "password": { "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role" - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists." - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role" + "description": "Password of the user." }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "BYPASSRLS", - "DISABLE_PINBOARD_CREATION", - "DEVELOPER", - "APPLICATION_ADMINISTRATION", - "USER_ADMINISTRATION", - "GROUP_ADMINISTRATION", - "SYSTEM_INFO_ADMINISTRATION", - "SYNCMANAGEMENT", - "ORG_ADMINISTRATION", - "ROLE_ADMINISTRATION", - "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" - ] - }, - "description": "Privileges granted to the role." + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account." }, - "permission": { + "account_status": { "type": "string", "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" ], - "description": "Permission details of the Role" + "default": "ACTIVE", + "description": "Status of the user account." }, - "author_id": { + "email": { "type": "string", - "description": "Unique identifier of author of the role." + "description": "Email address of the user." }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role." + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs." }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds." + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs." }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds." + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." }, - "deleted": { + "notify_on_share": { "type": "boolean", - "description": "Indicates whether the role is deleted." + "default": true, + "description": "Notify user when other users or groups share metadata objects" }, - "deprecated": { + "show_onboarding_experience": { "type": "boolean", - "description": "Indicates whether the role is deprecated." + "description": "Show or hide the new user onboarding walkthroughs" }, - "external": { + "onboarding_experience_completed": { "type": "boolean", - "description": "Indicates whether the role is external." + "description": "Revisit the new user onboarding walkthroughs" }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden." + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user." }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list." } } }, - "ResponseSchedule": { + "ImportUsersResponse": { "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job." - }, - "file_format": { - "type": "string", - "description": "Export file format." + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { "id": { "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard." - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." + "description": "Unique identifier of the user." }, "name": { "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export." - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { "type": "string", - "description": "Status of the job" + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." }, - "time_zone": { + "identifier": { "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records." + "description": "Unique ID or name of the metadata." } } }, - "LiveboardOptionsInput": { + "GroupsImportListInput": { "type": "object", "required": [ - "visualization_identifiers" + "display_name", + "group_identifier" ], "properties": { - "visualization_identifiers": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard." - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": { + "type": "string", + "description": "Description of the group." }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADMINISTRATION", + "AUTHORING", + "USERDATAUPLOADING", + "DATADOWNLOADING", + "USERMANAGEMENT", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "BYPASSRLS", + "RANALYSIS", + "DEVELOPER", + "USER_ADMINISTRATION", + "GROUP_ADMINISTRATION", + "SYNCMANAGEMENT", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" + ] + }, + "description": "Privileges that will be assigned to the group." }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group." }, - "page_footer_text": { + "type": { "type": "string", - "description": "Text to include in the footer of each page." + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group." }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF." + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group." }, - "page_size": { + "visibility": { "type": "string", "enum": [ - "A4" + "SHARABLE", + "NON_SHARABLE" ], - "description": "Page size." - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." } - }, - "description": "Options for PDF export." + } }, - "FrequencyInput": { + "ImportUserGroupsResponse": { "type": "object", "required": [ - "cron_expression" + "groups_added", + "groups_deleted", + "groups_updated" ], "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { + "groups_added": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/UserGroup" }, - "description": "Emails of the recipients." + "description": "The groups which are added into the system." }, - "principals": { + "groups_deleted": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" + "$ref": "#/components/schemas/UserGroup" }, - "description": "User or groups to be set as recipients of the schedule notifications." - } - }, - "description": "Recipients of the scheduled job notification." - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string" + "description": "The groups which are deleted from the system." }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." } } }, - "SortingOptions": { + "ExportMetadataTypeInput": { "type": "object", + "required": [ + "identifier" + ], "properties": { - "field_name": { + "type": { "type": "string", - "description": "Name of the field to apply the sort on." + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION" + ], + "description": "Type of metadata (Optional when given identifier is ID)." }, - "order": { + "identifier": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Unique ID or name of the metadata object." } }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification." - }, - "record_size": { - "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched." - } - } + "description": "MetadataType InputType used in Export MetadataType API" }, - "Action_Details_Input_Create": { + "DeleteMetadataTypeInput": { "type": "object", + "required": [ + "identifier" + ], "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID)." }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." } }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + "description": "MetadataType InputType used in Delete MetadataType API" }, - "Associate_Metadata_Input_Create": { + "AuthorMetadataTypeInput": { "type": "object", "required": [ "identifier" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, "type": { "type": "string", "enum": [ - "VISUALIZATION", + "LIVEBOARD", "ANSWER", - "WORKSHEET" + "LOGICAL_TABLE" ], "description": "Type of metadata." - } - } - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\n\nDefault: true" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." } }, - "description": "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." + "description": "MetadataType InputType used in Author API's" }, - "Action_Details_Input": { + "SharePermissionsInput": { "type": "object", + "required": [ + "principal", + "share_mode" + ], "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type" + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type" + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + } }, - "Associate_Metadata_Input": { + "MetadataObject": { "type": "object", + "required": [ + "identifier" + ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object" - }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata" }, "type": { "type": "string", "enum": [ - "VISUALIZATION", + "LIVEBOARD", "ANSWER", - "WORKSHEET" + "LOGICAL_TABLE" ], "description": "Type of metadata." } } }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." - } - }, - "description": "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." - }, - "ModelTableList": { + "CommitResponse": { "type": "object", "properties": { - "model_name": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { "type": "string", - "description": "Name of the Model." + "description": "Branch where changes were committed" }, - "tables": { + "committed_files": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/CommitFileType" }, - "description": "List of Tables." + "description": "Files that were pushed as part of this commit" } } }, - "FavoriteMetadataItem": { + "CommitFileType": { "type": "object", "required": [ - "id", - "name", - "type" + "file_name", + "status_code" ], "properties": { - "id": { + "file_name": { "type": "string", - "description": "Unique ID of the metadata object." + "description": "Name of the file deployed" }, - "name": { + "status_code": { "type": "string", - "description": "name of the metadata object." + "description": "Indicates the status of deployment for the file" }, - "type": { + "status_message": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata object." + "description": "Any error or warning with the deployment" } } }, - "ImportUserType": { + "RevertResponse": { "type": "object", - "required": [ - "name" - ], "properties": { - "id": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { "type": "string", - "description": "Unique identifier of the user." + "description": "Comments associated with the commit" }, - "name": { + "commit_time": { "type": "string", - "description": "Name of the user." - } - } - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." + "description": "Time at which the changes were committed." }, - "column_names": { + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + }, + "committed_files": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/CommitFileType" }, - "description": "Name of the columns." + "description": "Files that were pushed as part of this commit" }, - "data_rows": { + "reverted_metadata": { "type": "array", "items": { - "type": "object" + "$ref": "#/components/schemas/RevertedMetadata" }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." + "description": "Metadata of reverted file of this commit" } } }, - "LiveboardContent": { + "RevertedMetadata": { "type": "object", "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" ], "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." + "file_name": { + "type": "string", + "description": "Name of the file deployed" }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" }, - "visualization_id": { + "status_code": { "type": "string", - "description": "Unique ID of the visualization." + "description": "Indicates the status of deployment for the file" }, - "visualization_name": { + "status_message": { "type": "string", - "description": "Name of the visualization." + "description": "Any error or warning with the deployment" } } }, - "Role": { + "CreateConnectionResponse": { "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], "properties": { "id": { "type": "string", - "description": "id of the role" + "description": "ID of the connection created." }, "name": { "type": "string", - "description": "name of the role" + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "SNOWFLAKE", + "AMAZON_REDSHIFT", + "GOOGLE_BIGQUERY", + "AZURE_SYNAPSE", + "TERADATA", + "SAP_HANA", + "STARBURST", + "ORACLE_ADW", + "DATABRICKS", + "DENODO", + "DREMIO", + "TRINO", + "PRESTO", + "POSTGRES", + "SQL_SERVER", + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection." } } }, - "SqlQuery": { + "RoleResponse": { "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" + "required": [ + "id", + "name", + "description", + "privileges" ], "properties": { - "metadata_id": { + "id": { "type": "string", - "description": "Unique identifier of the metadata." + "description": "Unique Id of the role." }, - "metadata_name": { + "name": { "type": "string", - "description": "Name of the metadata." + "description": "Name of the role" }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { + "description": { "type": "string", - "description": "Email id of the committer" + "description": "Description of the role" }, - "username": { + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role" + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists." + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role" + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "BYPASSRLS", + "DISABLE_PINBOARD_CREATION", + "DEVELOPER", + "APPLICATION_ADMINISTRATION", + "USER_ADMINISTRATION", + "GROUP_ADMINISTRATION", + "SYSTEM_INFO_ADMINISTRATION", + "SYNCMANAGEMENT", + "ORG_ADMINISTRATION", + "ROLE_ADMINISTRATION", + "AUTHENTICATION_ADMINISTRATION", + "BILLING_INFO_ADMINISTRATION" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { "type": "string", - "description": "Username of the committer" - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role" + }, + "author_id": { "type": "string", - "description": "Email id of the committer" + "description": "Unique identifier of author of the role." }, - "username": { + "modifier_id": { "type": "string", - "description": "Username of the committer" + "description": "Unique identifier of modifier of the role." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds." + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds." + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted." + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external." + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden." + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection" } } }, - "DataWarehouseObjects": { + "LiveboardOptionsInput": { "type": "object", "required": [ - "databases" + "visualization_identifiers" ], "properties": { - "databases": { + "visualization_identifiers": { "type": "array", "items": { - "$ref": "#/components/schemas/Database" + "type": "string" }, - "description": "Databases of the connection." + "description": "Unique ID or name of visualizations." } - } + }, + "description": "Options to specify details of Liveboard." }, - "DataWarehouseObjectInput": { + "SchedulesPdfOptionsInput": { "type": "object", "properties": { - "database": { - "type": "string", - "description": "Name of the database." + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard." }, - "schema": { + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title." + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available." + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters." + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page" + }, + "page_footer_text": { "type": "string", - "description": "Name of the schema within the database." + "description": "Text to include in the footer of each page." }, - "table": { + "page_orientation": { "type": "string", - "description": "Name of the table within the schema." + "description": "Page orientation of the PDF." }, - "column": { + "page_size": { "type": "string", - "description": "Name of the column within the table." - } - } - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type" + "enum": [ + "A4" + ], + "description": "Page size." }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type" - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { + "truncate_table": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Indicates whether to include only first page of the tables." } }, - "description": "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." + "description": "Options for PDF export." }, - "Metadata_Association_Item": { + "FrequencyInput": { "type": "object", "required": [ - "action_config", - "identifier", - "type" + "cron_expression" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." } - } + }, + "description": "Configuration of schedule with cron expression" }, - "Scope": { + "CronExpressionInput": { "type": "object", "required": [ - "access_type" + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" ], "properties": { - "access_type": { + "day_of_month": { "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata." + "description": "Day of month of the object." }, - "metadata_id": { + "day_of_week": { "type": "string", - "description": "Unique identifier of the Org." - } - } - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." + "description": "Day of Week of the object." }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." + "hour": { + "type": "string", + "description": "Hour of the object." }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." } }, - "description": "List of runtime parameters need to set during the session." + "description": "Schedule selected cron expression." }, - "JWT_Metadata_Object": { + "RecipientDetailsInput": { "type": "object", "properties": { - "identifier": { - "type": "string" + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients." }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ] + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications." } }, - "description": "Metadata objects." + "description": "Recipients of the scheduled job notification." }, - "CommitFileType": { + "PrincipalsListItemInput": { "type": "object", "required": [ - "file_name", - "status_code" + "identifier", + "type" ], "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { + "identifier": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Unique ID or name of the user or group." }, - "status_message": { + "type": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Principal type." } } }, - "RevertedMetadata": { + "ResponseSchedule": { "type": "object", "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" ], "properties": { - "file_name": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { "type": "string", - "description": "Name of the file deployed" + "description": "Description of the job." }, - "metadata_name": { + "file_format": { "type": "string", - "description": "Name of the metadata object" + "description": "Export file format." }, - "metadata_type": { + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { "type": "string", - "description": "Type of the metadata object" + "description": "GUID of the scheduled job." }, - "status_code": { + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard." + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Name of the scheduled job." }, - "status_message": { + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export." + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Status of the job" + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records." } } }, @@ -13240,6 +13328,44 @@ }, "description": "Configuration of schedule with cron expression" }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, "LiveboardOptions": { "type": "object", "required": [ @@ -13332,89 +13458,17 @@ }, "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications." - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run." - } - }, - "description": "Schedule run response object" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications." } }, - "description": "Schedule selected cron expression." + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "PrincipalsListItemInput": { + "PrincipalsListItem": { "type": "object", "required": [ "identifier", @@ -13427,170 +13481,132 @@ }, "type": { "type": "string", - "description": "Principal type." + "description": "Principal type. Valid values are" } } }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name." - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { + "ResponseScheduleRun": { "type": "object", "required": [ - "url" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url." + "start_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "url": { + "end_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run end time in milliseconds." + }, + "status": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Status of the schedule run." }, - "reference": { + "detail": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Message details related to the schedule run." } }, - "description": "URL Custom Action Type" + "description": "Schedule run response object" }, - "ActionConfigInputCreate": { + "MetadataInput": { "type": "object", "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "identifier": { + "type": "string" }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { + "type": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "enum": [ + "LIVEBOARD" + ] } - }, - "description": "CALLBACK Custom Action Type" + } }, - "URLInput": { + "SortingOptions": { "type": "object", "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url." - }, - "url": { + "field_name": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Name of the field to apply the sort on." }, - "reference": { + "order": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, - "description": "URL Custom Action Type" + "description": "Sort options." }, - "ActionConfigInput": { + "ScheduleHistoryRunsOptionsInput": { "type": "object", "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." - }, - "visibility": { + "include_history_runs": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification." + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched." } - }, - "description": "Specify that the association is enabled for the metadata object Default" + } }, - "Database": { + "Action_Details_Input_Create": { "type": "object", - "required": [ - "name" - ], "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database." + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type" }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created." + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type" } - } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" }, - "CALLBACK": { + "CALLBACKInputMandatory": { "type": "object", "properties": { "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" }, - "URL": { + "URLInputMandatory": { "type": "object", "required": [ "url" ], "properties": { "authentication": { - "$ref": "#/components/schemas/Authentication", + "$ref": "#/components/schemas/AuthenticationInput", "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItem" + "$ref": "#/components/schemas/ParametersListItemInput" }, "description": "Query parameters for url." }, @@ -13600,79 +13616,10 @@ }, "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." - } - }, - "description": "URL Custom Action Type" - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" + "description": "Reference name. By default the value will be set to action name" } - } + }, + "description": "URL Custom Action Type" }, "AuthenticationInput": { "type": "object", @@ -13696,6 +13643,34 @@ }, "description": "Authorization type for the custom action." }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name" + }, + "value": { + "type": "string", + "description": "Enter you key value" + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { + "type": "string", + "description": "Username for the basic authentication" + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, "ParametersListItemInput": { "type": "object", "properties": { @@ -13709,188 +13684,176 @@ } } }, - "SchemaObject": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "name" + "identifier" ], "properties": { - "name": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { "type": "string", - "description": "Name of the schema." + "description": "Unique ID or name of the metadata." }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema." + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata." } } }, - "Authentication": { + "ActionConfigInputCreate": { "type": "object", "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "Bearer_Token": { + "position": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, - "description": "Authorization type for the custom action." + "description": "Specify that the association is enabled for the metadata object Default" }, - "ParametersListItem": { + "Default_Action_Config_Input_Create": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter" - }, - "value": { - "type": "string", - "description": "Value for the url query parameter" + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" } - } + }, + "description": "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." }, - "API_KeyInput": { + "Action_Details_Input": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Enter your key name" + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type" }, - "value": { - "type": "string", - "description": "Enter you key value" + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type" } }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." }, - "Basic_AuthInput": { + "CALLBACKInput": { "type": "object", "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication" - }, - "username": { + "reference": { "type": "string", - "description": "Username for the basic authentication" + "description": "Reference name. By default, the value will be set to action name." } }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "CALLBACK Custom Action Type" }, - "Table": { + "URLInput": { "type": "object", - "required": [ - "name" - ], "properties": { - "name": { - "type": "string", - "description": "Name of the table." + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action." }, - "columns": { + "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/Column" + "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Columns of the table." + "description": "Query parameters for url." }, - "type": { + "url": { "type": "string", - "description": "Type of table. Either view or table" + "description": "Request Url for the Custom action." }, - "description": { + "reference": { "type": "string", - "description": "Description of the table" - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected" + "description": "Reference name. By default the value will be set to action name" + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object" }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata." } } }, - "API_Key": { + "ActionConfigInput": { "type": "object", "properties": { - "key": { + "position": { "type": "string", - "description": "Enter your key name" + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, - "value": { - "type": "string", - "description": "Enter you key value" + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "Specify that the association is enabled for the metadata object Default" }, - "Basic_Auth": { + "Default_Action_Config_Input": { "type": "object", "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication" - }, - "username": { - "type": "string", - "description": "Username for the basic authentication" + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "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." }, - "Column": { + "ModelTableList": { "type": "object", - "required": [ - "name", - "data_type" - ], "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { + "model_name": { "type": "string", - "description": "Determines if the column schema is an aggregate" - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported" - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected" + "description": "Name of the Model." }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked" + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." } } }, From c7c42d6e2f2ced29c1d946e88a8d5233b37fc0ec Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 22 Sep 2023 17:08:48 +0000 Subject: [PATCH 070/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9eb81dc90..dfb00f80d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -259,9 +259,19 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "ENABLESPOTAPPCREATION", + "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_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } }, @@ -956,9 +966,19 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "ENABLESPOTAPPCREATION", + "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_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } }, From ab7ff011293ae472205d5bd477f585fdc33ae4f3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 4 Oct 2023 14:36:24 +0000 Subject: [PATCH 071/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index dfb00f80d..e61ac5595 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2882,7 +2882,11 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } }, @@ -7429,7 +7433,11 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } } @@ -7543,7 +7551,11 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } } @@ -11936,7 +11948,11 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] }, "description": "Privileges granted to the role." @@ -13041,7 +13057,11 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] }, "description": "Privileges granted to the role." From 84e967313f53b624adb5338f6dc61d8147eddff0 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 6 Oct 2023 07:38:56 +0000 Subject: [PATCH 072/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e61ac5595..a20a49584 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2691,7 +2691,8 @@ "SINGLESTORE", "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", - "GCP_POSTGRESQL" + "GCP_POSTGRESQL", + "GCP_MYSQL" ] } }, @@ -7140,7 +7141,8 @@ "SINGLESTORE", "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", - "GCP_POSTGRESQL" + "GCP_POSTGRESQL", + "GCP_MYSQL" ] }, "data_warehouse_config": { @@ -11727,7 +11729,8 @@ "SINGLESTORE", "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", - "GCP_POSTGRESQL" + "GCP_POSTGRESQL", + "GCP_MYSQL" ], "description": "Type of data warehouse." }, @@ -12984,7 +12987,8 @@ "SINGLESTORE", "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", - "GCP_POSTGRESQL" + "GCP_POSTGRESQL", + "GCP_MYSQL" ], "description": "Type of data warehouse." }, From 34abe8ac7f7692dc3dccfeb4688c1fac7c403797 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 10 Oct 2023 05:41:53 +0000 Subject: [PATCH 073/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 163 ++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a20a49584..2aac2ddc1 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -29,6 +29,14 @@ ], "description": "Roles for version 9.2.0.cl" }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, { "name": "9.5.0.cl", "id": "9.5.0.cl", @@ -7389,6 +7397,152 @@ } } }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/roles/create": { "post": { "operationId": "createRole", @@ -12998,6 +13152,15 @@ } } }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff." + } + } + }, "RoleResponse": { "type": "object", "required": [ From abb58dff18dd48bb14d7e665b298846e88d560cc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 10 Oct 2023 09:25:39 +0000 Subject: [PATCH 074/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2aac2ddc1..646c927e1 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2687,7 +2687,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQL_SERVER", + "SQLSERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -7137,7 +7137,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQL_SERVER", + "SQLSERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -11871,7 +11871,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQL_SERVER", + "SQLSERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -13129,7 +13129,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQL_SERVER", + "SQLSERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", From a424967e2ae4f3db3d18acbba23bdcfe54c5eda3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 10 Oct 2023 16:03:54 +0000 Subject: [PATCH 075/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 122 ++++++++++++++++++++++++++++---- 1 file changed, 110 insertions(+), 12 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 646c927e1..efb5b3ec6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -9862,7 +9862,7 @@ "/api/rest/2.0/dbt/dbt-connection": { "post": { "operationId": "dbtConnection", - "description": "\n Version: 9.8.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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 to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.8.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.8.0.cl" @@ -9886,7 +9886,8 @@ "default": "DBT_CLOUD", "type": "string", "enum": [ - "DBT_CLOUD" + "DBT_CLOUD", + "ZIP_FILE" ] }, "access_token": { @@ -9912,6 +9913,10 @@ "project_name": { "description": "Name of the project", "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string" } }, "required": [ @@ -9980,8 +9985,8 @@ }, "/api/rest/2.0/dbt/generate-tml": { "post": { - "operationId": "generateTml", - "description": "\n Version: 9.8.0.cl or later\n\nGenerate required table and worksheet and import them.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About generate TML\nModels and Worksheets to be imported can be selected by the user as part of the API.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "dbtGenerateTml", + "description": " Version: 9.8.0.cl or later", "tags": [ "DBT", "9.8.0.cl" @@ -10018,11 +10023,14 @@ "items": { "type": "string" } + }, + "file_content": { + "description": "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’", + "type": "string" } }, "required": [ "dbt_connection_identifier", - "model_tables", "import_worksheets" ] } @@ -10087,8 +10095,8 @@ }, "/api/rest/2.0/dbt/generate-sync-tml": { "post": { - "operationId": "generateSyncTml", - "description": "\n Version: 9.8.0.cl or later\n\nResynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.8.0.cl or later", "tags": [ "DBT", "9.8.0.cl" @@ -10102,6 +10110,10 @@ "dbt_connection_identifier": { "description": "Unique ID of the DBT connection.", "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string" } }, "required": [ @@ -10230,10 +10242,76 @@ } } }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.8.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.8.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/dbt/{dbt_connection_identifier}": { "post": { "operationId": "updateDbtConnection", - "description": "\n Version: 9.8.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou can modify DBT connection object properties such as embrace connection name, embrace database name,import type, account identifier, access token, project identifier and environment settings.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.8.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.8.0.cl" @@ -10257,7 +10335,8 @@ "default": "DBT_CLOUD", "type": "string", "enum": [ - "DBT_CLOUD" + "DBT_CLOUD", + "ZIP_FILE" ] }, "access_token": { @@ -10283,6 +10362,10 @@ "project_name": { "description": "Name of the project", "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string" } } } @@ -10301,8 +10384,15 @@ } ], "responses": { - "204": { - "description": "DBT Connection successfully updated." + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } }, "400": { "description": "Invalid request.", @@ -14050,11 +14140,19 @@ }, "ModelTableList": { "type": "object", + "required": [ + "model_name", + "tables" + ], "properties": { "model_name": { "type": "string", "description": "Name of the Model." }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." + }, "tables": { "type": "array", "items": { @@ -14117,4 +14215,4 @@ } } ] -} \ No newline at end of file +} From dfdb31e8d303316635fcd28b7c9d9bc80c1185e2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 10 Oct 2023 18:09:39 +0000 Subject: [PATCH 076/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efb5b3ec6..58a46e693 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14215,4 +14215,4 @@ } } ] -} +} \ No newline at end of file From 70a844bd8a5b7a48616d7213b5f9f43961e86cb5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 12 Oct 2023 20:32:26 +0000 Subject: [PATCH 077/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 46 +++++++++++++++------------------ 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 58a46e693..e947a75bb 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -60,14 +60,6 @@ "9.6.0.cl" ], "description": "Roles for version 9.6.0.cl" - }, - { - "name": "9.8.0.cl", - "id": "9.8.0.cl", - "tags": [ - "9.8.0.cl" - ], - "description": "Roles for version 9.8.0.cl" } ], "tags": [], @@ -9862,10 +9854,10 @@ "/api/rest/2.0/dbt/dbt-connection": { "post": { "operationId": "dbtConnection", - "description": "\n Version: 9.8.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", - "9.8.0.cl" + "9.9.0.cl" ], "requestBody": { "content": { @@ -9916,7 +9908,8 @@ }, "file_content": { "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string" + "type": "string", + "format": "binary" } }, "required": [ @@ -9986,10 +9979,10 @@ "/api/rest/2.0/dbt/generate-tml": { "post": { "operationId": "dbtGenerateTml", - "description": " Version: 9.8.0.cl or later", + "description": " Version: 9.9.0.cl or later", "tags": [ "DBT", - "9.8.0.cl" + "9.9.0.cl" ], "requestBody": { "content": { @@ -10026,7 +10019,8 @@ }, "file_content": { "description": "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’", - "type": "string" + "type": "string", + "format": "binary" } }, "required": [ @@ -10096,10 +10090,10 @@ "/api/rest/2.0/dbt/generate-sync-tml": { "post": { "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.8.0.cl or later", + "description": " Version: 9.9.0.cl or later", "tags": [ "DBT", - "9.8.0.cl" + "9.9.0.cl" ], "requestBody": { "content": { @@ -10113,7 +10107,8 @@ }, "file_content": { "description": "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’", - "type": "string" + "type": "string", + "format": "binary" } }, "required": [ @@ -10182,10 +10177,10 @@ "/api/rest/2.0/dbt/search": { "post": { "operationId": "dbtSearch", - "description": "\n Version: 9.8.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", - "9.8.0.cl" + "9.9.0.cl" ], "parameters": [], "responses": { @@ -10245,10 +10240,10 @@ "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { "post": { "operationId": "deleteDbtConnection", - "description": "\n Version: 9.8.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", - "9.8.0.cl" + "9.9.0.cl" ], "parameters": [ { @@ -10311,10 +10306,10 @@ "/api/rest/2.0/dbt/{dbt_connection_identifier}": { "post": { "operationId": "updateDbtConnection", - "description": "\n Version: 9.8.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", - "9.8.0.cl" + "9.9.0.cl" ], "requestBody": { "content": { @@ -10365,7 +10360,8 @@ }, "file_content": { "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string" + "type": "string", + "format": "binary" } } } @@ -14215,4 +14211,4 @@ } } ] -} \ No newline at end of file +} From cf98f17250faa5285b013e3b240076faecfc81e3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 13 Oct 2023 05:54:24 +0000 Subject: [PATCH 078/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e947a75bb..1426090b1 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -10303,7 +10303,7 @@ } } }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}": { + "/api/rest/2.0/dbt/update-dbt-connection": { "post": { "operationId": "updateDbtConnection", "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", @@ -10317,6 +10317,10 @@ "schema": { "type": "object", "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, "connection_name": { "description": "Name of the connection.", "type": "string" @@ -10363,22 +10367,16 @@ "type": "string", "format": "binary" } - } + }, + "required": [ + "dbt_connection_identifier" + ] } } - } + }, + "required": true }, - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], + "parameters": [], "responses": { "200": { "description": "DBT Connection successfully updated.", From bf137d86840e63d603ce393b6abf7047a34ceb63 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 13 Oct 2023 06:56:45 +0000 Subject: [PATCH 079/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 1426090b1..3abb74c59 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14209,4 +14209,4 @@ } } ] -} +} \ No newline at end of file From 59d63b6b00217da5f0c7f2c2040ac505467122ba Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 25 Oct 2023 07:53:37 +0000 Subject: [PATCH 080/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 42 ++++++--------------------------- 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3abb74c59..8e649f9fe 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -267,11 +267,7 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "BILLING_INFO_ADMINISTRATION" ] } }, @@ -974,11 +970,7 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "BILLING_INFO_ADMINISTRATION" ] } }, @@ -2883,11 +2875,7 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "PREVIEW_THOUGHTSPOT_SAGE" ] } }, @@ -7581,11 +7569,7 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "BILLING_INFO_ADMINISTRATION" ] } } @@ -7699,11 +7683,7 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "BILLING_INFO_ADMINISTRATION" ] } } @@ -12189,11 +12169,7 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "description": "Privileges granted to the role." @@ -13308,11 +13284,7 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "BILLING_INFO_ADMINISTRATION" ] }, "description": "Privileges granted to the role." From c35df887ab2cb6d4e61fe45bdcdfac10495f5575 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 1 Nov 2023 06:33:45 +0000 Subject: [PATCH 081/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 91 ++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 31 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 8e649f9fe..e4935a9f6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -193,7 +193,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -358,7 +358,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -691,7 +692,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -800,7 +802,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -897,7 +900,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -1030,7 +1033,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -1093,7 +1097,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n* To get all metadata objects, send the API request without any attributes.\n* To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n* To get a specific metadata object, specify the GUID.\n* To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1231,7 +1235,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -2462,7 +2467,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -2633,7 +2639,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n * `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n * `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n * `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n * `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -2744,7 +2750,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -2909,7 +2916,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -3025,7 +3033,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -3138,7 +3147,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -3532,7 +3542,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -3937,7 +3948,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -4353,7 +4365,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -4803,7 +4816,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -5058,7 +5072,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -5636,7 +5651,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -5798,7 +5814,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -6546,7 +6563,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -6625,7 +6643,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -6812,7 +6831,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -7569,7 +7589,9 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CONTROL_TRUSTED_AUTH", + "TAG_MANAGEMENT" ] } } @@ -7683,7 +7705,9 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CONTROL_TRUSTED_AUTH", + "TAG_MANAGEMENT" ] } } @@ -8660,7 +8684,7 @@ "/api/rest/2.0/schedules/search": { "post": { "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -8706,7 +8730,8 @@ } } } - } + }, + "required": true }, "parameters": [], "responses": { @@ -9470,7 +9495,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -9705,7 +9731,8 @@ } } } - } + }, + "required": true }, "parameters": [ { @@ -13284,7 +13311,9 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CONTROL_TRUSTED_AUTH", + "TAG_MANAGEMENT" ] }, "description": "Privileges granted to the role." From 9bb79bf53cc7760c349d80c955568164a71388ec Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Wed, 1 Nov 2023 12:34:19 +0530 Subject: [PATCH 082/410] Update build.sh to use new Apimatic domain --- api-playground/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-playground/build.sh b/api-playground/build.sh index 3cb42c3bb..ac3d8d68c 100644 --- a/api-playground/build.sh +++ b/api-playground/build.sh @@ -10,7 +10,7 @@ cp ../api-spec/* spec/ # native zip and unzip unavailable npx bestzip $PWD/build/portal-input.zip . -curl -X POST --url 'https://www.apimatic.io/api/portal' -H "Authorization:X-Auth-Key "$APIMATIC_API_KEY"" -F 'file=@./build/portal-input.zip' -o ./build/portal-output.zip +curl -X POST --url 'https://api.apimatic.io/portal' -H "Authorization:X-Auth-Key "$APIMATIC_API_KEY"" -F 'file=@./build/portal-input.zip' -o ./build/portal-output.zip npx extract-zip $PWD/build/portal-output.zip $PWD/build/static-portal -ls -R $PWD/build/static-portal \ No newline at end of file +ls -R $PWD/build/static-portal From 9dab3eaa1b4aa40b92c04856cc273d495f1cbfe7 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 1 Nov 2023 10:10:13 +0000 Subject: [PATCH 083/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5331 ++++++++++++------------------- 1 file changed, 2106 insertions(+), 3225 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e4935a9f6..6d7ffad70 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13,14 +13,6 @@ ], "description": "Roles for version 9.0.0.cl" }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, { "name": "9.2.0.cl", "id": "9.2.0.cl", @@ -29,14 +21,6 @@ ], "description": "Roles for version 9.2.0.cl" }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, { "name": "9.5.0.cl", "id": "9.5.0.cl", @@ -212,12 +196,8 @@ "description": "A unique display name string for the user account, usually their first and last name", "type": "string" }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, "visibility": { - "description": "Visibility of the user", + "description": "Visibility of the user.", "type": "string", "enum": [ "SHARABLE", @@ -229,14 +209,14 @@ "type": "string" }, "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", + "description": "GUID or name of the group to which the user belongs.", "type": "array", "items": { "type": "string" } }, "privileges": { - "description": "Privileges assigned to the user", + "description": "Privileges assigned to the user.", "type": "array", "items": { "type": "string", @@ -259,20 +239,14 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "LIVEBOARD_VERIFIER", "ENABLESPOTAPPCREATION", - "PREVIEW_THOUGHTSPOT_SAGE", - "APPLICATION_ADMINISTRATION", - "SYSTEM_INFO_ADMINISTRATION", - "ORG_ADMINISTRATION", - "ROLE_ADMINISTRATION", - "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] } }, "account_type": { - "description": "Type of the account", + "description": "Type of the account.", "type": "string", "enum": [ "LOCAL_USER", @@ -299,12 +273,12 @@ "nullable": true }, "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", + "description": "The user preference for revisiting the onboarding experience.", "type": "boolean", "nullable": true }, "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", + "description": "Indicates if the user has completed the onboarding walkthrough.", "type": "boolean", "nullable": true }, @@ -316,7 +290,7 @@ } }, "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", + "description": "Unique ID or name of the users home liveboard.", "type": "string" }, "favorite_metadata": { @@ -343,7 +317,7 @@ "$ref": "#/components/schemas/SortOptions" }, "role_identifiers": { - "description": "Filters by the role assigned to the user.", + "description": "Filter with list of role assigned to the user.", "type": "array", "items": { "type": "string" @@ -659,15 +633,15 @@ "type": "object", "properties": { "org_identifier": { - "description": "ID or name of the Org", + "description": "ID or name of the Org.", "type": "string" }, "description": { - "description": "Description of the Org", + "description": "Description of the Org.", "type": "string" }, "visibility": { - "description": "Visibility of the Org", + "description": "Visibility of the Org.", "type": "string", "enum": [ "SHOW", @@ -675,7 +649,7 @@ ] }, "status": { - "description": "Status of the Org", + "description": "Status of the Org.", "type": "string", "enum": [ "ACTIVE", @@ -683,7 +657,7 @@ ] }, "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data.", "type": "array", "items": { "type": "string" @@ -791,10 +765,6 @@ "description": "Name or Id of the tag.", "type": "string" }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, "color": { "description": "Color of the tag.", "type": "string" @@ -912,30 +882,26 @@ "type": "object", "properties": { "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "description": "GUID of Liveboards which will be assigned as default Liveboards for the users in the specified group.", "type": "array", "items": { "type": "string" } }, "description": { - "description": "Description of the group", + "description": "Description of the group.", "type": "string" }, "display_name": { "description": "Display name of the group", "type": "string" }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, "group_identifier": { "description": "GUID or name of the group", "type": "string" }, "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", + "description": "ID or name of the Org to which the group belongs.", "type": "array", "items": { "type": "string" @@ -965,15 +931,9 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "LIVEBOARD_VERIFIER", "ENABLESPOTAPPCREATION", - "PREVIEW_THOUGHTSPOT_SAGE", - "APPLICATION_ADMINISTRATION", - "SYSTEM_INFO_ADMINISTRATION", - "ORG_ADMINISTRATION", - "ROLE_ADMINISTRATION", - "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] } }, @@ -1130,7 +1090,7 @@ } }, "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", + "description": "Version of the dependent table of the metadata like worksheets.", "default": "V1", "type": "string", "enum": [ @@ -1197,7 +1157,7 @@ "nullable": true }, "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", + "description": "Includes ID or names of the users who have modified the metadata object.", "type": "array", "items": { "type": "string" @@ -1311,7 +1271,7 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "ID or name of the Liveboard.", + "description": "ID or name of an Liveboard.", "type": "string" }, "visualization_identifiers": { @@ -1602,7 +1562,7 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", + "description": "Unique ID or name of the metadata.", "type": "string" }, "file_format": { @@ -1703,7 +1663,7 @@ "type": "object", "properties": { "principals": { - "description": "GUID or name of the user or group.", + "description": "GUID or name of the principal.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" @@ -1846,14 +1806,14 @@ } }, "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "description": "Principal objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" } }, "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "description": "Indicates whether to fetch permissions of depedent metadata objects.", "default": false, "type": "boolean", "nullable": true @@ -2006,7 +1966,7 @@ "type": "string" }, "logical_table_identifier": { - "description": "GUID of the data source object, such as a Worksheet, View, or Table.", + "description": "GUID of the data source object, such as a worksheet, view, or table.", "type": "string" }, "data_format": { @@ -2360,7 +2320,7 @@ "type": "object", "properties": { "log_type": { - "description": "Name of the log type", + "description": "Name of the log type.", "type": "string", "enum": [ "SECURITY_AUDIT" @@ -2458,7 +2418,7 @@ "type": "object", "properties": { "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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": " List of Unique identifier of the organization. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]\n \n\nNote: If no org identifier is specified,then the configurations will be returned for all orgs the user has access to
Version: 9.5.0.cl or later", "type": "array", "items": { "type": "string" @@ -2677,7 +2637,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQLSERVER", + "SQL_SERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -2685,12 +2645,7 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA", - "SINGLESTORE", - "GCP_SQLSERVER", - "GCP_ALLOYDB_POSTGRESQL", - "GCP_POSTGRESQL", - "GCP_MYSQL" + "AMAZON_ATHENA" ] } }, @@ -2826,7 +2781,7 @@ "type": "object", "properties": { "role_identifiers": { - "description": "unique ID or name of the roles", + "description": "unique ID or name of the Roles", "type": "array", "items": { "type": "string" @@ -2992,25 +2947,21 @@ "type": "object", "properties": { "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", + "description": "Name or Id of the custom action.", "type": "string" }, "default_action_config": { - "description": "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.", + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", "$ref": "#/components/schemas/Default_Action_Config_Search_Input" }, "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", + "description": "When set to true, returns associated groups for custom action.", "default": false, "type": "boolean", "nullable": true }, "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", + "description": "When set to true, returns associated metadata for custom action.", "default": false, "type": "boolean", "nullable": true @@ -3127,19 +3078,19 @@ "type": "object", "properties": { "username": { - "description": "Username of the ThoughtSpot user", + "description": "Username of the user account", "type": "string" }, "password": { - "description": "Password of the user account", + "description": "The password of the user account", "type": "string" }, "org_identifier": { - "description": "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.", + "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", "type": "string" }, "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", "default": false, "type": "boolean", "nullable": true @@ -3213,59 +3164,55 @@ "type": "object", "properties": { "username": { - "description": "Username of the ThoughtSpot user", + "description": "Username of the user account", "type": "string" }, "object_id": { - "description": "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.", + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", "type": "string" }, "password": { - "description": "Password of the user account", + "description": "The password of the user account", "default": "", "type": "string" }, "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", "default": "", "type": "string" }, "validity_time_in_sec": { - "description": "Token validity duration in seconds", + "description": "Duration in seconds after which the token expires", "default": 300, "type": "integer", "format": "int32" }, "org_id": { - "description": "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.", + "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", "default": 0, "type": "integer", "format": "int32" }, "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", "type": "string" }, "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", "type": "string" }, "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. ", + "description": "“Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT) \n\n\nNote: This is only available for clusters with trusted authentication enabled. ", "default": false, "type": "boolean", "nullable": true }, "group_identifiers": { - "description": "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.", + "description": "Unique ID or name of the User Groups to which newly created user to be added. Use this parameter to provision a user just-in-time (JIT).", "type": "array", "items": { "type": "string" } - }, - "jwt_user_options": { - "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -3348,33 +3295,33 @@ "type": "object", "properties": { "username": { - "description": "Username of the ThoughtSpot user", + "description": "Username of the user account", "type": "string" }, "password": { - "description": "Password of the user account", + "description": "The password of the user account", "default": "", "type": "string" }, "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", "default": "", "type": "string" }, "validity_time_in_sec": { - "description": "Token validity duration in seconds", + "description": "Duration in seconds after which the token expires", "default": 300, "type": "integer", "format": "int32" }, "org_id": { - "description": "ID of the Org context to log in to. If the Org ID is not specified, the user will be logged in to the Org context of their previous login session.", + "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", "default": 0, "type": "integer", "format": "int32" }, "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", "type": "string" }, "display_name": { @@ -3382,7 +3329,7 @@ "type": "string" }, "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "description": " Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT). \n\nNote: This is only available for clusters with trusted authentication enabled.", "default": false, "type": "boolean", "nullable": true @@ -3393,10 +3340,6 @@ "items": { "type": "string" } - }, - "jwt_user_options": { - "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -4416,185 +4359,6 @@ } } }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": " Version: 9.7.0.cl or later", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": " Version: 9.7.0.cl or later", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -4782,22 +4546,15 @@ "type": "object", "properties": { "name": { - "description": "Name of the Org", + "description": "Name of the Org.", "type": "string" }, "description": { - "description": "Description of the Org", + "description": "Description of the Org.", "type": "string" }, "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", + "description": "Add Users to an Org.", "type": "array", "items": { "type": "string" @@ -4827,7 +4584,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org" + "description": "ID or name of the Org." } ], "responses": { @@ -4893,7 +4650,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org" + "description": "ID or name of the Org." } ], "responses": { @@ -5390,22 +5147,22 @@ "type": "string" }, "display_name": { - "description": "Display name for the group.", + "description": "Unique display name for the group.", "type": "string" }, "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", "type": "array", "items": { "type": "string" } }, "description": { - "description": "Description of the group", + "description": "Description of the group.", "type": "string" }, "privileges": { - "description": "Privileges to assign to the group", + "description": "Privileges to assign to the group.", "type": "array", "items": { "type": "string", @@ -5557,7 +5314,7 @@ "type": "string" }, "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", "type": "array", "items": { "type": "string" @@ -5609,7 +5366,7 @@ } }, "type": { - "description": "Type of the group", + "description": "Type of the user group.", "type": "string", "enum": [ "LOCAL_GROUP", @@ -5793,7 +5550,7 @@ "type": "object", "properties": { "groups": { - "description": "Details of groups which are to be imported", + "description": "Details of user groups which are to be imported", "type": "array", "items": { "$ref": "#/components/schemas/GroupsImportListInput" @@ -6404,7 +6161,7 @@ "type": "string" }, "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", "type": "string" }, "branch_names": { @@ -6414,29 +6171,19 @@ "type": "string" } }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true + "description": "Name of the default remote branch", + "type": "string" }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, + "default": false, "type": "boolean", "nullable": true }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - }, "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true + "description": " Name of the branch where file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "type": "string" } }, "required": [ @@ -6519,15 +6266,15 @@ "type": "object", "properties": { "username": { - "description": "Username to authenticate connection to version control system", + "description": "Username to authenticate connection to vcs", "type": "string" }, "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", + "description": "Access token corresponding to the user to authenticate connection to vcs", "type": "string" }, "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", "type": "string" }, "branch_names": { @@ -6537,28 +6284,18 @@ "type": "string" } }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true + "description": "Name of the default remote branch", + "type": "string" }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", "nullable": true }, - "configuration_branch_name": { - "description": "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", - "type": "string" - }, "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true + "description": " Name of the branch where file containing guid mapping should be maintained This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "type": "string" } } } @@ -6636,7 +6373,7 @@ "type": "object", "properties": { "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "description": "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", "type": "boolean", "nullable": true } @@ -6715,14 +6452,8 @@ "$ref": "#/components/schemas/MetadataObject" } }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string" }, "comment": { @@ -6816,11 +6547,11 @@ } }, "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "description": " Name of the branch where the reverted version should be comitted\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string" }, "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -7008,7 +6739,7 @@ "type": "string" }, "branch_name": { - "description": "Name of the remote branch where changes should be picked", + "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", "type": "string" }, "deploy_type": { @@ -7026,14 +6757,10 @@ "type": "string", "enum": [ "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" + "PARTIAL" ] } - }, - "required": [ - "branch_name" - ] + } } } }, @@ -7137,7 +6864,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQLSERVER", + "SQL_SERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -7145,20 +6872,15 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA", - "SINGLESTORE", - "GCP_SQLSERVER", - "GCP_ALLOYDB_POSTGRESQL", - "GCP_POSTGRESQL", - "GCP_MYSQL" + "AMAZON_ATHENA" ] }, "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "description": "Configuration of the data warehouse in JSON.", "type": "object" }, "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "description": "Indicates whether to validate the connection details.", "default": true, "type": "boolean", "nullable": true @@ -7397,159 +7119,13 @@ } } }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "/api/rest/2.0/roles/create": { "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" + "Roles", + "9.5.0.cl" ], "requestBody": { "content": { @@ -7589,9 +7165,7 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION", - "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "BILLING_INFO_ADMINISTRATION" ] } } @@ -7705,9 +7279,7 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION", - "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "BILLING_INFO_ADMINISTRATION" ] } } @@ -7874,14 +7446,14 @@ "type": "string" }, "metadata_type": { - "description": "Type of the metadata object.", + "description": "Type of metadata.", "type": "string", "enum": [ "LIVEBOARD" ] }, "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", + "description": "Unique ID or name of the metadata.", "type": "string" }, "file_format": { @@ -7894,11 +7466,11 @@ ] }, "liveboard_options": { - "description": "Options to specify details of Liveboard.", + "description": "Options to specify details of liveboard.", "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "description": "Options for PDF export.", "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { @@ -8539,11 +8111,11 @@ ] }, "frequency": { - "description": "Frequency settings for the scheduled job.", + "description": "Configuration of schedule with cron expression", "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { - "description": "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.", + "description": "Recipient configuration which includes emails and recipients of the schedule", "$ref": "#/components/schemas/RecipientDetailsInput" } }, @@ -8618,7 +8190,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "description": "\nDeletes a schedule
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -8631,7 +8203,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the scheduled job." + "description": "Unique ID or name of the schedule." } ], "responses": { @@ -8696,7 +8268,7 @@ "type": "object", "properties": { "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", + "description": "Metadata objects associated with schedules.", "type": "array", "items": { "$ref": "#/components/schemas/MetadataInput" @@ -8717,7 +8289,7 @@ "$ref": "#/components/schemas/SortingOptions" }, "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", + "description": "Options while fetching history runs wrt to the schedule.", "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" }, "schedule_identifiers": { @@ -8810,18 +8382,18 @@ "type": "string" }, "description": { - "description": "Description of the scheduled job.", + "description": "Description of the job.", "type": "string" }, "metadata_type": { - "description": "Type of metadata object.", + "description": "Type of metadata.", "type": "string", "enum": [ "LIVEBOARD" ] }, "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", + "description": "Unique ID or name of the metadata.", "type": "string" }, "file_format": { @@ -8833,7 +8405,7 @@ ] }, "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", + "description": "Options to specify details of liveboard.", "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { @@ -9477,11 +9049,11 @@ ] }, "frequency": { - "description": "Frequency of the scheduled job run.", + "description": "Configuration of schedule with cron expression", "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { - "description": "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.", + "description": "Recipient configuration which includes emails and recipients of the schedule", "$ref": "#/components/schemas/RecipientDetailsInput" }, "status": { @@ -9575,7 +9147,7 @@ "type": "string" }, "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "description": "Action details includes Type and Configuration for Custom Actions,either Callback or URL is required.", "$ref": "#/components/schemas/Action_Details_Input_Create" }, "associate_metadata": { @@ -9586,11 +9158,11 @@ } }, "default_action_config": { - "description": "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.", + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", "$ref": "#/components/schemas/Default_Action_Config_Input_Create" }, "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", + "description": "Unique ID or name of the User groups who will be associated with the custom action.", "type": "array", "items": { "type": "string" @@ -9694,7 +9266,7 @@ "type": "object", "properties": { "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.", "$ref": "#/components/schemas/Action_Details_Input" }, "associate_metadata": { @@ -9705,11 +9277,11 @@ } }, "default_action_config": { - "description": "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.", + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", "$ref": "#/components/schemas/Default_Action_Config_Input" }, "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", + "description": "Unique ID or name of the User groups who will be associated with the custom action.", "type": "array", "items": { "type": "string" @@ -9808,7 +9380,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the custom action." + "description": "Unique ID or name of the Custom action." } ], "responses": { @@ -9857,872 +9429,653 @@ } } } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } + "name": { + "type": "string", + "description": "Name of the user." }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "display_name": { + "type": "string", + "description": "Display name of the user." }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user." }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } + "can_change_password": { + "type": "boolean", + "description": "Indicates whether the user can change their password." }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the user." }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds." }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged in Organizations of the user." }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted." }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated." }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account." }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account." }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "email": { + "type": "string", + "description": "Email of the user." }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds." }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } + "external": { + "type": "boolean", + "description": "Indicates whether the user is external." }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to be assigned as favorites for the imported user." }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "First login time of the user in milliseconds." }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user." }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden." + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the users home liveboard." + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present." + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user." + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds." + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user." + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared answers or liveboard." + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Organizations in which user exists." + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user." + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user." + }, + "privileges": { + "type": "array", + "items": { "type": "string" }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." + "description": "Privileges which are assigned to the user." }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "show_onboarding_experience": { + "type": "boolean", + "description": "The user preference for revisiting the onboarding experience." }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user." }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user." }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user." }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user." }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "User Groups which the user is part of." }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of." }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user." + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org." + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user." }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } + "extended_properties": { + "type": "object", + "description": "Properties for the user" + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user" } } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { + }, + "FavoriteMetadataInput": { "type": "object", "properties": { - "error": { - "type": "object" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata." } } }, - "GetTokenResponse": { + "ImportUser": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" + "user_identifier", + "display_name" ], "properties": { - "token": { + "user_identifier": { "type": "string", - "description": "Bearer auth token." + "description": "Unique ID or name of the user." }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." + "display_name": { + "type": "string", + "description": "Unique display name of the user." }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." + "password": { + "type": "string", + "description": "Password of the user." }, - "valid_for_user_id": { + "account_type": { "type": "string", - "description": "Username to whom the token is issued." + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account." }, - "valid_for_username": { + "account_status": { "type": "string", - "description": "Unique identifier of the user to whom the token is issued." + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account." + }, + "email": { + "type": "string", + "description": "Email of the user." + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the Orgs for the users." + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the User Groups of the users." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups,\nand thus allows them to share objects." + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "User preference for receiving email notifications on shared answers or liveboard." + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "The user preference for revisiting the onboarding experience." + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience." + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the users home liveboard." + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to be assigned as favorites for the imported user." } } }, - "RiseSetter": { + "ImportUsersResponse": { "type": "object", - "required": [ - "field", - "path" - ], "properties": { - "field": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + }, + "description": "Sort options." + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { "type": "string" }, - "path": { + "name": { "type": "string" } } }, - "User": { + "VisualizationIdentifiersInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the visualization." + } + } + }, + "MetadataTypeInput": { "type": "object", "required": [ - "id", - "name", - "display_name", - "visibility" + "identifier" ], "properties": { - "id": { + "type": { "type": "string", - "description": "Unique identifier of the user." + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID)." }, - "name": { + "identifier": { "type": "string", - "description": "Name of the user." - }, - "display_name": { + "description": "Unique ID or name of the metadata." + } + }, + "description": "MetadataType InputType associated in the Product" + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { "type": "string", - "description": "Display name of the user." + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID)." }, - "visibility": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + }, + "description": "MetadataType InputType used in Export MetadataType API's" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { "type": "string", "enum": [ - "SHARABLE", - "NON_SHARABLE" + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + "description": "Type of metadata (Optional when given identifier is ID)." }, - "author_id": { + "identifier": { "type": "string", - "description": "Unique identifier of author of the user." - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password." - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds." - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user." - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted." - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated." + "description": "Unique ID or name of the metadata." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API's" + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal." }, - "account_type": { + "type": { "type": "string", "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" + "USER", + "USER_GROUP" ], - "description": "Type of the user account." - }, - "account_status": { + "description": "Principal type." + } + } + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { "type": "string", "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" ], - "description": "Status of the user account." + "description": "Type of metadata." }, - "email": { + "identifier": { "type": "string", - "description": "Email of the user." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external." - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list." - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds." - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user." - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden." - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user." - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present." - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user." - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds." - }, - "modifier_id": { + "description": "Unique ID or name of the metadata." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { "type": "string", - "description": "Unique identifier of modifier of the user." - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard." - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs." + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata." }, - "owner_id": { + "identifier": { "type": "string", - "description": "Unique identifier of owner of the user." + "description": "Unique ID or name of the metadata." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or user groups." }, - "parent_type": { + "share_mode": { "type": "string", "enum": [ - "USER", - "GROUP" + "READ_ONLY", + "MODIFY", + "NO_ACCESS" ], - "description": "Parent type of the user." - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user." - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience." - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user." - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user." - }, - "tags": { + "description": "Object share mode." + } + } + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { "type": "array", "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" + "$ref": "#/components/schemas/AnswerContent" }, - "description": "Tags associated with the user." + "description": "Data content of metadata objects." + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" }, - "tenant_id": { + "metadata_name": { "type": "string", - "description": "Unique identifier of tenant of the user." + "description": "Name of the metadata." }, - "user_groups": { + "contents": { "type": "array", "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" + "$ref": "#/components/schemas/AnswerContent" }, - "description": "Groups to which the user is assigned." + "description": "Data content of metadata objects." + } + }, + "description": "Response format associated with fetch data api" + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" }, - "user_inherited_groups": { + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "contents": { "type": "array", "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" + "$ref": "#/components/schemas/LiveboardContent" }, - "description": "Inherited User Groups which the user is part of." - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user." - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org." - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user." - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user" - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user" + "description": "Data content of metadata objects." } } }, @@ -10743,40 +10096,40 @@ "description": "Name of the object." } }, - "description": "The current Org context of the user." + "description": "Current logged in Organizations of the user." }, - "FavoriteMetadataItem": { + "GenericInfo": { "type": "object", - "required": [ - "id", - "name", - "type" - ], "properties": { "id": { - "type": "string", - "description": "Unique ID of the metadata object." + "type": "string" }, "name": { - "type": "string", - "description": "name of the metadata object." - }, + "type": "string" + } + } + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { "type": { "type": "string", "enum": [ - "LIVEBOARD", + "VISUALIZATION", "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "WORKSHEET" ], - "description": "Type of metadata object." + "description": "Type of metadata." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." } - } + }, + "description": "MetadataType InputType used in Custom Action API's" }, "Object_ID_And_Name": { "type": "object", @@ -10792,47 +10145,54 @@ }, "description": "The object representation with ID and Name." }, - "FavoriteMetadataInput": { + "RiseSetter": { "type": "object", + "required": [ + "field", + "path" + ], "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object." + "path": { + "type": "string" } } }, - "SortOptions": { + "GetTokenResponse": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], "properties": { - "field_name": { + "token": { "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on." + "description": "Bearer auth token." }, - "order": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." } - }, - "description": "Sort options." + } }, "SystemInfo": { "type": "object", @@ -10915,7 +10275,7 @@ }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL group." + "description": "The unique identifier of ALL user group." }, "accept_language": { "type": "string", @@ -10924,7 +10284,7 @@ "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL group." + "description": "The count of users of ALL user group." }, "logical_model_version": { "type": "integer", @@ -10947,11 +10307,11 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the Org." + "description": "Unique identifier of the organization." }, "name": { "type": "string", - "description": "Name of the Org." + "description": "Name of the organization." }, "status": { "type": "string", @@ -10959,11 +10319,11 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the Org." + "description": "Status of the organization." }, "description": { "type": "string", - "description": "Description of the Org." + "description": "Description of the organization." }, "visibility": { "type": "string", @@ -10971,7 +10331,7 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the Org." + "description": "Visibility of the organization." } } }, @@ -11037,52 +10397,52 @@ }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the group." + "description": "Indicates whether the response has complete detail of the user group." }, "content": { "type": "object", - "description": "Content details of the group" + "description": "Content details of the user group." }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the group in milliseconds" + "description": "Creation time of the user group in milliseconds." }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards that are assigned as default Liveboards to the group." + "description": "Liveboards which are assigned as default liveboards to the user group." }, "deleted": { "type": "boolean", - "description": "Indicates whether the group is deleted" + "description": "Indicates whether the user group is deleted." }, "deprecated": { "type": "boolean", - "description": "Indicates whether the group is deprecated" + "description": "Indicates whether the user group is deprecated." }, "description": { "type": "string", - "description": "Description of the group" + "description": "Description of the user group." }, "display_name": { "type": "string", - "description": "Display name of the group." + "description": "Display name of the user group." }, "external": { "type": "boolean", - "description": "Indicates whether the group is external" + "description": "Indicates whether the user group is external." }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the group" + "description": "Generation number of the user group." }, "hidden": { "type": "boolean", - "description": "Indicates whether the group is hidden" + "description": "Indicates whether the user group is hidden." }, "id": { "type": "string", @@ -11091,22 +10451,22 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the group" + "description": "Index number of the user group." }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the group" + "description": "Index version number of the user group." }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the group" + "description": "Metadata version number of the user group." }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the group in milliseconds." + "description": "Last modified time of the user group in milliseconds." }, "modifier_id": { "type": "string", @@ -11114,14 +10474,14 @@ }, "name": { "type": "string", - "description": "Name of the group." + "description": "Name of the user group." }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which group exists." + "description": "Orgs in which user group exists." }, "owner_id": { "type": "string", @@ -11133,32 +10493,32 @@ "USER", "GROUP" ], - "description": "Parent type of the group." + "description": "Parent type of the user group." }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the group" + "description": "Privileges which are assigned to the user group." }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Groups who are part of the group" + "description": "User Groups who are part of the user group." }, "system_group": { "type": "boolean", - "description": "Indicates whether the group is a system group." + "description": "Indicates whether the user group is a system group." }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the group." + "description": "Tags associated with the user group." }, "type": { "type": "string", @@ -11166,14 +10526,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group." + "description": "Type of the user group." }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the group." + "description": "Users who are part of the user group." }, "visibility": { "type": "string", @@ -11181,7 +10541,7 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." }, "roles": { "type": "array", @@ -11192,18 +10552,67 @@ } } }, - "Role": { + "MetadataSearchResponse": { "type": "object", + "required": [ + "metadata_type" + ], "properties": { - "id": { + "metadata_id": { "type": "string", - "description": "id of the role" + "description": "Unique identifier of the metadata." }, - "name": { + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { "type": "string", - "description": "name of the role" + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects." + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any." + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects." + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects." + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects." + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed." } - } + }, + "description": "Metadata Search Response Object." }, "MetadataListItemInput": { "type": "object", @@ -11214,7 +10623,7 @@ }, "name_pattern": { "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." + "description": "A pattern to match case-insensitive name of the metadata object. User % for a wildcard match." }, "type": { "type": "string", @@ -11229,7 +10638,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for user group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" } } }, @@ -11242,7 +10651,7 @@ "properties": { "principal": { "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." + "description": "Details of users or user groups." }, "share_mode": { "type": "string", @@ -11254,7 +10663,7 @@ "description": "Object share mode." } }, - "description": "Details of users or groups." + "description": "Details of users or user groups." }, "ExcludeMetadataListItemInput": { "type": "object", @@ -11280,7 +10689,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." + "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for user group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" } } }, @@ -11290,14 +10699,14 @@ "include": { "type": "boolean", "default": false, - "description": "Includes objects marked as favorite for the specified users." + "description": "Includes objects marked as favorite for the specified user GUIDs." }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." + "description": "Unique ID or name of the users. If not specified then favorite of current logged in user is considered." } }, "description": "Favorite object options." @@ -11324,73 +10733,11 @@ "enum": [ "ASC", "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects." - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any." - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects." - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects." - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects." - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed." + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, - "description": "Metadata Search Response Object." + "description": "Sort options." }, "SqlQueryResponse": { "type": "object", @@ -11433,36 +10780,13 @@ } } }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, "PdfOptionsInput": { "type": "object", "properties": { "include_cover_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", @@ -11489,255 +10813,30 @@ "description": "Page orientation of the PDF." }, "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables." - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page." - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title." - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters." - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type." - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization." - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization." - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" + "type": "boolean", + "default": false, + "description": "Indicates whether to include only first page of the tables." }, - "metadata_name": { + "page_footer_text": { "type": "string", - "description": "Name of the metadata object" + "description": "Text to include in the footer of each page." + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include cover page with the Liveboard title." }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters." } - }, - "description": "Response format associated with fetch data api" + } }, "LogResponse": { "type": "object", @@ -11765,11 +10864,11 @@ }, "username": { "type": "string", - "description": "Username to authenticate connection to the version control system" + "description": "Username to authenticate connection to vcs" }, - "commit_branch_name": { + "default_branch": { "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." + "description": "Name of the default remote branch" }, "branches": { "type": "array", @@ -11782,13 +10881,13 @@ "type": "boolean", "description": "Maintain mapping of guid for the deployment to an instance" }, - "configuration_branch_name": { + "guid_mapping_branch_name": { "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." + "description": "Name of the branch where file containing guid mapping should be maintained" }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the Org" + "description": "Details of the organization" } } }, @@ -11829,102 +10928,6 @@ } } }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer" - }, - "username": { - "type": "string", - "description": "Username of the committer" - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer" - }, - "username": { - "type": "string", - "description": "Username of the committer" - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection." - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns." - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database." - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database." - }, - "table": { - "type": "string", - "description": "Name of the table within the schema." - }, - "column": { - "type": "string", - "description": "Name of the column within the table." - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on." - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." - } - } - }, "SearchConnectionResponse": { "type": "object", "required": [ @@ -11962,7 +10965,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQLSERVER", + "SQL_SERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -11970,12 +10973,7 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA", - "SINGLESTORE", - "GCP_SQLSERVER", - "GCP_ALLOYDB_POSTGRESQL", - "GCP_POSTGRESQL", - "GCP_MYSQL" + "AMAZON_ATHENA" ], "description": "Type of data warehouse." }, @@ -11989,135 +10987,52 @@ } } }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database." - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created." - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema." - } - } - }, - "Table": { + "ConnectionInput": { "type": "object", - "required": [ - "name" - ], "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table." - }, - "type": { + "identifier": { "type": "string", - "description": "Type of table. Either view or table" + "description": "Unique ID or name of the connection." }, - "description": { + "name_pattern": { "type": "string", - "description": "Description of the table" - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected" - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked" + "description": "A pattern to match case-insensitive name of the connection object. User % for a wildcard match." }, - "relationships": { + "data_warehouse_objects": { "type": "array", "items": { - "type": "object" + "$ref": "#/components/schemas/DataWarehouseObjectInput" }, - "description": "List of relationships for the table" + "description": "Filter options for databases, schemas, tables and columns." } } }, - "Column": { + "SortOptionInput": { "type": "object", - "required": [ - "name", - "data_type" - ], "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { + "field_name": { "type": "string", - "description": "Determines if the column schema is an aggregate" - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported" - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected" - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked" + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } } }, @@ -12152,7 +11067,7 @@ "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists." + "description": "Organizations in which role exists." }, "groups": { "type": "array", @@ -12249,16 +11164,6 @@ }, "description": "Response for search role api should handle hidden privileges as well." }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." - } - }, - "description": "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." - }, "ResponseCustomAction": { "type": "object", "required": [ @@ -12267,305 +11172,49 @@ "id", "name" ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to." - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action." - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type" - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action." - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url." - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization." - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name" - }, - "value": { - "type": "string", - "description": "Enter you key value" - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication" - }, - "username": { - "type": "string", - "description": "Username for the basic authentication" - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter" - }, - "value": { - "type": "string", - "description": "Value for the url query parameter" - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "Type and Configuration for Custom Actions" }, - "metadata": { + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { "type": "array", "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - } - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to which the custom action needs to be associated." }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." + "name": { + "type": "string", + "description": "Unique name of the custom action." }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action." } }, - "description": "List of runtime parameters need to set during the session." + "description": "Custom action details" }, - "JWT_Metadata_Object": { + "Default_Action_Config_Search_Input": { "type": "object", "properties": { - "identifier": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ] + "visibility": { + "type": "boolean", + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, - "description": "Metadata objects." + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." }, "Token": { "type": "object", @@ -12606,986 +11255,1131 @@ } } }, - "Scope": { + "TagMetadataTypeInput": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { + "type": { "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata." + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." }, - "metadata_id": { + "identifier": { "type": "string", - "description": "Unique identifier of the Org." + "description": "Unique ID or name of the metadata." } } }, - "ResponseActivationURL": { + "ImportUserGroupsResponse": { "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user." + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The user groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The user groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The user groups which are updated in the system." } - }, - "description": "The object representation with activation link." + } }, - "ImportUser": { + "GroupsImportListInput": { "type": "object", "required": [ - "user_identifier", - "display_name" + "display_name", + "group_identifier" ], "properties": { - "user_identifier": { + "display_name": { "type": "string", - "description": "Unique ID or name of the user." + "description": "Unique display name of the user group." }, - "display_name": { + "group_identifier": { "type": "string", - "description": "Display name of the user." + "description": "Unique ID or name of the User Group." }, - "password": { + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of liveboards which will be assigned as default liveboards to the user group." + }, + "description": { "type": "string", - "description": "Password of the user." + "description": "Description of the user group." }, - "account_type": { + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADMINISTRATION", + "AUTHORING", + "USERDATAUPLOADING", + "DATADOWNLOADING", + "USERMANAGEMENT", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "BYPASSRLS", + "RANALYSIS", + "DEVELOPER", + "USER_ADMINISTRATION", + "GROUP_ADMINISTRATION", + "SYNCMANAGEMENT", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" + ] + }, + "description": "Privileges which will be assigned to the user group." + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the User Groups who will be part of the user group." + }, + "type": { "type": "string", "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" + "LOCAL_GROUP", + "LDAP_GROUP" ], - "default": "LOCAL_USER", - "description": "Type of the user account." + "description": "Type of the user group." }, - "account_status": { + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the Users who will be part of the user group." + }, + "visibility": { "type": "string", "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" + "SHARABLE", + "NON_SHARABLE" ], - "default": "ACTIVE", - "description": "Status of the user account." + "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata." + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." }, - "email": { + "commit_id": { "type": "string", - "description": "Email address of the user." + "description": "SHA id associated with the commit" }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs." + "branch": { + "type": "string", + "description": "Branch where changes were committed" }, - "group_identifiers": { + "committed_files": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/CommitFileType" }, - "description": "ID or name of the groups to which the user belongs." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects" - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs" - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs" - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user." + "description": "Files that were pushed as part of this commit" }, - "favorite_metadata": { + "reverted_metadata": { "type": "array", "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" + "$ref": "#/components/schemas/RevertedMetadata" }, - "description": "Metadata objects to add to the user's favorites list." + "description": "Metadata of reverted file of this commit" } } }, - "ImportUsersResponse": { + "DeployResponse": { "type": "object", "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } + "file_name": { + "type": "string", + "description": "Name of the file deployed" }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" } } }, - "ImportUserType": { + "CreateConnectionResponse": { "type": "object", "required": [ - "name" + "id", + "name", + "data_warehouse_type" ], "properties": { "id": { "type": "string", - "description": "Unique identifier of the user." + "description": "ID of the connection created." }, "name": { "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { + "description": "Name of the connection." + }, + "data_warehouse_type": { "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" + "SNOWFLAKE", + "AMAZON_REDSHIFT", + "GOOGLE_BIGQUERY", + "AZURE_SYNAPSE", + "TERADATA", + "SAP_HANA", + "STARBURST", + "ORACLE_ADW", + "DATABRICKS", + "DENODO", + "DREMIO", + "TRINO", + "PRESTO", + "POSTGRES", + "SQL_SERVER", + "MYSQL", + "GENERIC_JDBC", + "AMAZON_RDS_POSTGRESQL", + "AMAZON_AURORA_POSTGRESQL", + "AMAZON_RDS_MYSQL", + "AMAZON_AURORA_MYSQL", + "LOOKER", + "AMAZON_ATHENA" ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." + "description": "Type of data warehouse." }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "details": { + "type": "object", + "description": "Details of the connection." } } }, - "GroupsImportListInput": { + "RoleResponse": { "type": "object", "required": [ - "display_name", - "group_identifier" + "id", + "name", + "description", + "privileges" ], "properties": { - "display_name": { + "id": { "type": "string", - "description": "Unique display name of the group." + "description": "Unique Id of the role." }, - "group_identifier": { + "name": { "type": "string", - "description": "Unique ID or name of the group." + "description": "Name of the role" }, - "default_liveboard_identifiers": { + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role" + }, + "orgs": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/GenericInfo" }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." + "description": "Organizations in which role exists." }, - "description": { - "type": "string", - "description": "Description of the group." + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role" }, "privileges": { "type": "array", "items": { "type": "string", "enum": [ - "ADMINISTRATION", - "AUTHORING", "USERDATAUPLOADING", "DATADOWNLOADING", - "USERMANAGEMENT", "DATAMANAGEMENT", "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", - "RANALYSIS", + "DISABLE_PINBOARD_CREATION", "DEVELOPER", + "APPLICATION_ADMINISTRATION", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", + "SYSTEM_INFO_ADMINISTRATION", "SYNCMANAGEMENT", - "CAN_CREATE_CATALOG", - "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", - "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "ORG_ADMINISTRATION", + "ROLE_ADMINISTRATION", + "AUTHENTICATION_ADMINISTRATION", + "BILLING_INFO_ADMINISTRATION" ] }, - "description": "Privileges that will be assigned to the group." + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role" + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role." + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds." + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds." + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted." + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external." + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden." + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection" + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job." + }, + "file_format": { + "type": "string", + "description": "Export file format." }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group." + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" }, - "type": { + "id": { "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group." + "description": "GUID of the scheduled job." }, - "user_identifiers": { + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of liveboard." + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export." + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient configuration which includes emails and recipients of the schedule" + }, + "status": { + "type": "string", + "description": "Status of the job" + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/ResponseScheduleRun" }, - "description": "Unique ID or name of the users to assign to the group." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + "description": "Schedule runs history records." } } }, - "ImportUserGroupsResponse": { + "LiveboardOptionsInput": { "type": "object", "required": [ - "groups_added", - "groups_deleted", - "groups_updated" + "visualization_identifiers" ], "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { + "visualization_identifiers": { "type": "array", "items": { - "$ref": "#/components/schemas/UserGroup" + "type": "string" }, - "description": "The groups which are updated in the system." + "description": "Unique ID or name of visualizations." } - } + }, + "description": "Options to specify details of liveboard." }, - "ExportMetadataTypeInput": { + "SchedulesPdfOptionsInput": { "type": "object", - "required": [ - "identifier" - ], "properties": { - "type": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete liveboard." + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the liveboard title." + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available." + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters." + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page" + }, + "page_footer_text": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION" - ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Text to include in the footer of each page." }, - "identifier": { + "page_orientation": { "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { + "description": "Page orientation of the PDF." + }, + "page_size": { "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" + "A4" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Page size." }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables." } }, - "description": "MetadataType InputType used in Delete MetadataType API" + "description": "Options for PDF export." }, - "AuthorMetadataTypeInput": { + "FrequencyInput": { "type": "object", "required": [ - "identifier" + "cron_expression" ], "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." } }, - "description": "MetadataType InputType used in Author API's" + "description": "Configuration of schedule with cron expression" }, - "SharePermissionsInput": { + "RecipientDetailsInput": { "type": "object", - "required": [ - "principal", - "share_mode" - ], "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients." }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "List of user or user groups to be associated for schedule." } - } + }, + "description": "Recipient configuration which includes emails and recipients of the schedule" }, - "MetadataObject": { + "MetadataInput": { "type": "object", - "required": [ - "identifier" - ], "properties": { "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" + "type": "string" }, "type": { "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata." + "LIVEBOARD" + ] } } }, - "CommitResponse": { + "SortingOptions": { "type": "object", "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { + "field_name": { "type": "string", - "description": "Comments associated with the commit" + "description": "Name of the field to apply the sort on." }, - "commit_time": { + "order": { "type": "string", - "description": "Time at which the changes were committed." + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs wrt to the schedule or not." }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as history runs wrt any scheduled job." }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched." + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type" }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit" + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type" } - } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" }, - "CommitFileType": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "file_name", - "status_code" + "identifier" ], "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object" }, - "status_code": { + "identifier": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Unique ID or name of the metadata." }, - "status_message": { + "type": { "type": "string", - "description": "Any error or warning with the deployment" + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata." } } }, - "RevertResponse": { + "Default_Action_Config_Input_Create": { "type": "object", "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit" - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit" + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\n\nDefault: true" } - } + }, + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." }, - "RevertedMetadata": { + "Action_Details_Input": { "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type" }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type" } - } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required." }, - "DeployResponse": { + "Associate_Metadata_Input": { "type": "object", "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object" }, - "status_code": { + "identifier": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Unique ID or name of the metadata." }, - "status_message": { + "type": { "type": "string", - "description": "Any error or warning with the deployment" + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata." } } }, - "CreateConnectionResponse": { + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, + "FavoriteMetadataItem": { "type": "object", "required": [ "id", "name", - "data_warehouse_type" + "type" ], "properties": { "id": { "type": "string", - "description": "ID of the connection created." + "description": "Unique ID of the metadata." }, "name": { "type": "string", - "description": "Name of the connection." + "description": "name of the metadata." }, - "data_warehouse_type": { + "type": { "type": "string", "enum": [ - "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" + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" ], - "description": "Type of data warehouse." + "description": "Type of metadata." + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." }, - "details": { - "type": "object", - "description": "Details of the connection." + "name": { + "type": "string", + "description": "Name of the user." } } }, - "FetchConnectionDiffStatusResponse": { + "AnswerContent": { "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff." + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." } } }, - "RoleResponse": { + "LiveboardContent": { "type": "object", "required": [ - "id", - "name", - "description", - "privileges" + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" ], "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { + "available_data_row_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role" - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists." + "description": "Total available data row count." }, - "groups": { + "column_names": { "type": "array", "items": { - "$ref": "#/components/schemas/GenericInfo" + "type": "string" }, - "description": "Details of groups assigned with this role" + "description": "Name of the columns." }, - "privileges": { + "data_rows": { "type": "array", "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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", - "TAG_MANAGEMENT" - ] + "type": "object" }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role" - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role." - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role." + "description": "Rows of data set." }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds." + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds." + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted." + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated." + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external." + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization." }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden." + "visualization_name": { + "type": "string", + "description": "Name of the visualization." + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the Role" }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "name": { + "type": "string", + "description": "name of the Role" } } }, - "LiveboardOptionsInput": { + "SqlQuery": { "type": "object", "required": [ - "visualization_identifiers" + "metadata_id", + "metadata_name", + "sql_query" ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." } }, - "description": "Options to specify details of Liveboard." + "description": "Response format associated with fetch SQL query api" }, - "SchedulesPdfOptionsInput": { + "CommiterType": { "type": "object", "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard." - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" - }, - "page_footer_text": { + "email": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Email id of the committer" }, - "page_orientation": { + "username": { "type": "string", - "description": "Page orientation of the PDF." - }, - "page_size": { + "description": "Username of the committer" + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { "type": "string", - "enum": [ - "A4" - ], - "description": "Page size." + "description": "Email id of the committer" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "username": { + "type": "string", + "description": "Username of the committer" } - }, - "description": "Options for PDF export." + } }, - "FrequencyInput": { + "DataWarehouseObjects": { "type": "object", "required": [ - "cron_expression" + "databases" ], "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." } - }, - "description": "Configuration of schedule with cron expression" + } }, - "CronExpressionInput": { + "DataWarehouseObjectInput": { "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { + "database": { "type": "string", - "description": "Hour of the object." + "description": "Name of the database." }, - "minute": { + "schema": { "type": "string", - "description": "Minute of the object." + "description": "Name of the schema within the database." }, - "month": { + "table": { "type": "string", - "description": "Month of the object." + "description": "Name of the table within the schema." }, - "second": { + "column": { "type": "string", - "description": "Second of the object." + "description": "Name of the column within the table." } - }, - "description": "Schedule selected cron expression." + } }, - "RecipientDetailsInput": { + "Action_details": { "type": "object", "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients." + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type" }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications." + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type" } }, - "description": "Recipients of the scheduled job notification." + "description": "Type and Configuration for Custom Actions" }, - "PrincipalsListItemInput": { + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + }, + "Metadata_Association_Item": { "type": "object", "required": [ + "action_config", "identifier", "type" ], "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, "identifier": { "type": "string", - "description": "Unique ID or name of the user or group." + "description": "Unique ID or name of the metadata." }, "type": { "type": "string", - "description": "Principal type." + "description": "Type of metadata." } } }, - "ResponseSchedule": { + "Scope": { "type": "object", "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" + "access_type" ], "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." + "access_type": { + "type": "string", + "description": "Object access scope type." }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata." }, - "description": { + "metadata_id": { "type": "string", - "description": "Description of the job." - }, - "file_format": { + "description": "Unique identifier of the organization." + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" + "description": "Name of the file deployed" }, - "id": { + "status_code": { "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard." - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." + "description": "Indicates the status of deployment for the file" }, - "name": { + "status_message": { "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export." + "description": "Any error or warning with the deployment" + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" }, - "status": { + "metadata_type": { "type": "string", - "description": "Status of the job" + "description": "Type of the metadata object" }, - "time_zone": { + "status_code": { "type": "string", - "description": "Time zone" + "description": "Indicates the status of deployment for the file" }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records." + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" } } }, @@ -13620,44 +12414,6 @@ }, "description": "Configuration of schedule with cron expression" }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, "LiveboardOptions": { "type": "object", "required": [ @@ -13672,7 +12428,7 @@ "description": "Unique ID or name of visualizations." } }, - "description": "Options to specify details of Liveboard." + "description": "Options to specify details of liveboard." }, "MetadataResponse": { "type": "object", @@ -13700,11 +12456,11 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard." + "description": "Indicates whether to include complete liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the liveboard title." }, "include_custom_logo": { "type": "boolean", @@ -13748,19 +12504,91 @@ "items": { "type": "string" }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." + "description": "Emails of the recipients." + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or user groups to be associated for schedule." + } + }, + "description": "Recipient configuration which includes emails and recipients of the schedule" + }, + "ResponseScheduleRun": { + "type": "object", + "required": [ + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "start_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run start time in milliseconds." + }, + "end_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run end time in milliseconds." + }, + "status": { + "type": "string", + "description": "Status of the schedule run." + }, + "detail": { + "type": "string", + "description": "Message details related to the schedule run." + } + }, + "description": "Schedule run response object" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications." + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." } }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." + "description": "Schedule selected cron expression." }, - "PrincipalsListItem": { + "PrincipalsListItemInput": { "type": "object", "required": [ "identifier", @@ -13769,136 +12597,174 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the user or group." + "description": "Unique ID or name of the principal." }, "type": { "type": "string", - "description": "Principal type. Valid values are" + "description": "Principal type." } } }, - "ResponseScheduleRun": { + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" + "url" ], "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action." }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url." }, - "status": { + "url": { "type": "string", - "description": "Status of the schedule run." + "description": "Request Url for the Custom action." }, - "detail": { + "reference": { "type": "string", - "description": "Message details related to the schedule run." + "description": "Reference name of the sdk. By default the value will be set to action name" } }, - "description": "Schedule run response object" + "description": "URL Custom Action Type" }, - "MetadataInput": { + "ActionConfigInputCreate": { "type": "object", "properties": { - "identifier": { - "type": "string" - }, - "type": { + "position": { "type": "string", "enum": [ - "LIVEBOARD" - ] + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } - } + }, + "description": "Specify that the association is enabled for the metadata object Default" }, - "SortingOptions": { + "CALLBACKInput": { "type": "object", "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on." - }, - "order": { + "reference": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Reference name of the sdk. By default the value will be set to action name" } }, - "description": "Sort options." + "description": "CALLBACK Custom Action Type" }, - "ScheduleHistoryRunsOptionsInput": { + "URLInput": { "type": "object", "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification." + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action." }, - "record_size": { - "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url." }, - "record_offset": { - "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched." + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the sdk. By default the value will be set to action name" } - } + }, + "description": "URL Custom Action Type" }, - "Action_Details_Input_Create": { + "ActionConfigInput": { "type": "object", "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type" + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type" + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + "description": "Specify that the association is enabled for the metadata object Default" }, - "CALLBACKInputMandatory": { + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database." + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created." + } + } + }, + "CALLBACK": { "type": "object", "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Reference name of the sdk. By default the value will be set to action name" } }, "description": "CALLBACK Custom Action Type" }, - "URLInputMandatory": { + "URL": { "type": "object", "required": [ "url" ], "properties": { "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", + "$ref": "#/components/schemas/Authentication", "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" + "$ref": "#/components/schemas/ParametersListItem" }, "description": "Query parameters for url." }, @@ -13908,11 +12774,80 @@ }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Reference name of the sdk. By default the value will be set to action name" } }, "description": "URL Custom Action Type" }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "PrincipalsListItem": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, "AuthenticationInput": { "type": "object", "properties": { @@ -13935,34 +12870,6 @@ }, "description": "Authorization type for the custom action." }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name" - }, - "value": { - "type": "string", - "description": "Enter you key value" - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication" - }, - "username": { - "type": "string", - "description": "Username for the basic authentication" - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, "ParametersListItemInput": { "type": "object", "properties": { @@ -13976,216 +12883,190 @@ } } }, - "Associate_Metadata_Input_Create": { + "SchemaObject": { "type": "object", "required": [ - "identifier" + "name" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { + "name": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Name of the schema." }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata." + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables of the schema." } } }, - "ActionConfigInputCreate": { + "Authentication": { "type": "object", "properties": { - "position": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "Bearer_Token": { "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Bearer tokens enable requests to authenticate using an access key." }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization." } }, - "description": "Specify that the association is enabled for the metadata object Default" + "description": "Authorization type for the custom action." }, - "Default_Action_Config_Input_Create": { + "ParametersListItem": { "type": "object", "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" + "key": { + "type": "string", + "description": "Key for the url query parameter" + }, + "value": { + "type": "string", + "description": "Value for the url query parameter" } - }, - "description": "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." + } }, - "Action_Details_Input": { + "API_KeyInput": { "type": "object", "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type" + "key": { + "type": "string", + "description": "Enter your key name" }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type" + "value": { + "type": "string", + "description": "Enter you key value" } }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." }, - "CALLBACKInput": { + "Basic_AuthInput": { "type": "object", "properties": { - "reference": { + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Username for the basic authentication" } }, - "description": "CALLBACK Custom Action Type" + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." }, - "URLInput": { + "Table": { "type": "object", + "required": [ + "name" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "name": { + "type": "string", + "description": "Name of the table." }, - "parameters": { + "columns": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" + "$ref": "#/components/schemas/Column" }, - "description": "Query parameters for url." + "description": "Columns of the table." }, - "url": { + "type": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Type of table. Either view or table" }, - "reference": { + "description": { "type": "string", - "description": "Reference name. By default the value will be set to action name" - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object" + "description": "Description of the table" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata." + "linked": { + "type": "boolean", + "description": "Determines if the table is linked" + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table" } } }, - "ActionConfigInput": { + "API_Key": { "type": "object", "properties": { - "position": { + "key": { "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Enter your key name" }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "value": { + "type": "string", + "description": "Enter you key value" } }, - "description": "Specify that the association is enabled for the metadata object Default" + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." }, - "Default_Action_Config_Input": { + "Basic_Auth": { "type": "object", "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { + "type": "string", + "description": "Username for the basic authentication" } }, - "description": "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." + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." }, - "ModelTableList": { + "Column": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "data_type" ], "properties": { - "model_name": { + "name": { "type": "string", - "description": "Name of the Model." + "description": "Name of the column." }, - "model_path": { + "data_type": { "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." + "description": "Data type of the column." }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate" + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported" + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { @@ -14210,4 +13091,4 @@ } } ] -} \ No newline at end of file +} From 664653036bd5ada0667f9bbf6d3daa94f35ee1f8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 1 Nov 2023 11:33:25 +0000 Subject: [PATCH 084/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5463 +++++++++++++++++++------------ 1 file changed, 3291 insertions(+), 2172 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6d7ffad70..3c7dee762 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13,6 +13,14 @@ ], "description": "Roles for version 9.0.0.cl" }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, { "name": "9.2.0.cl", "id": "9.2.0.cl", @@ -21,6 +29,14 @@ ], "description": "Roles for version 9.2.0.cl" }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, { "name": "9.5.0.cl", "id": "9.5.0.cl", @@ -196,8 +212,12 @@ "description": "A unique display name string for the user account, usually their first and last name", "type": "string" }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, "visibility": { - "description": "Visibility of the user.", + "description": "Visibility of the user", "type": "string", "enum": [ "SHARABLE", @@ -209,14 +229,14 @@ "type": "string" }, "group_identifiers": { - "description": "GUID or name of the group to which the user belongs.", + "description": "GUID or name of the group to which the user belongs", "type": "array", "items": { "type": "string" } }, "privileges": { - "description": "Privileges assigned to the user.", + "description": "Privileges assigned to the user", "type": "array", "items": { "type": "string", @@ -239,14 +259,20 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "ENABLESPOTAPPCREATION", + "PREVIEW_THOUGHTSPOT_SAGE", + "APPLICATION_ADMINISTRATION", + "SYSTEM_INFO_ADMINISTRATION", + "ORG_ADMINISTRATION", + "ROLE_ADMINISTRATION", + "AUTHENTICATION_ADMINISTRATION", + "BILLING_INFO_ADMINISTRATION" ] } }, "account_type": { - "description": "Type of the account.", + "description": "Type of the account", "type": "string", "enum": [ "LOCAL_USER", @@ -273,12 +299,12 @@ "nullable": true }, "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", + "description": "The user preference for revisiting the onboarding experience", "type": "boolean", "nullable": true }, "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough.", + "description": "Indicates if the user has completed the onboarding walkthrough", "type": "boolean", "nullable": true }, @@ -290,7 +316,7 @@ } }, "home_liveboard_identifier": { - "description": "Unique ID or name of the users home liveboard.", + "description": "Unique ID or name of the user's home Liveboard.", "type": "string" }, "favorite_metadata": { @@ -317,7 +343,7 @@ "$ref": "#/components/schemas/SortOptions" }, "role_identifiers": { - "description": "Filter with list of role assigned to the user.", + "description": "Filters by the role assigned to the user.", "type": "array", "items": { "type": "string" @@ -633,15 +659,15 @@ "type": "object", "properties": { "org_identifier": { - "description": "ID or name of the Org.", + "description": "ID or name of the Org", "type": "string" }, "description": { - "description": "Description of the Org.", + "description": "Description of the Org", "type": "string" }, "visibility": { - "description": "Visibility of the Org.", + "description": "Visibility of the Org", "type": "string", "enum": [ "SHOW", @@ -649,7 +675,7 @@ ] }, "status": { - "description": "Status of the Org.", + "description": "Status of the Org", "type": "string", "enum": [ "ACTIVE", @@ -657,7 +683,7 @@ ] }, "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data.", + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", "type": "array", "items": { "type": "string" @@ -765,6 +791,10 @@ "description": "Name or Id of the tag.", "type": "string" }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, "color": { "description": "Color of the tag.", "type": "string" @@ -882,26 +912,30 @@ "type": "object", "properties": { "default_liveboard_identifiers": { - "description": "GUID of Liveboards which will be assigned as default Liveboards for the users in the specified group.", + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", "type": "array", "items": { "type": "string" } }, "description": { - "description": "Description of the group.", + "description": "Description of the group", "type": "string" }, "display_name": { "description": "Display name of the group", "type": "string" }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, "group_identifier": { "description": "GUID or name of the group", "type": "string" }, "org_identifiers": { - "description": "ID or name of the Org to which the group belongs.", + "description": "ID or name of the Org to which the group belongs", "type": "array", "items": { "type": "string" @@ -931,9 +965,15 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "ENABLESPOTAPPCREATION", + "PREVIEW_THOUGHTSPOT_SAGE", + "APPLICATION_ADMINISTRATION", + "SYSTEM_INFO_ADMINISTRATION", + "ORG_ADMINISTRATION", + "ROLE_ADMINISTRATION", + "AUTHENTICATION_ADMINISTRATION", + "BILLING_INFO_ADMINISTRATION" ] } }, @@ -1090,7 +1130,7 @@ } }, "dependent_object_version": { - "description": "Version of the dependent table of the metadata like worksheets.", + "description": "Version of the dependent table of the metadata objects like Worksheets.", "default": "V1", "type": "string", "enum": [ @@ -1157,7 +1197,7 @@ "nullable": true }, "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who have modified the metadata object.", + "description": "Includes ID or names of the users who modified the metadata object.", "type": "array", "items": { "type": "string" @@ -1271,7 +1311,7 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "ID or name of an Liveboard.", + "description": "ID or name of the Liveboard.", "type": "string" }, "visualization_identifiers": { @@ -1562,7 +1602,7 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "Unique ID or name of the metadata.", + "description": "Unique ID or name of the metadata object.", "type": "string" }, "file_format": { @@ -1663,7 +1703,7 @@ "type": "object", "properties": { "principals": { - "description": "GUID or name of the principal.", + "description": "GUID or name of the user or group.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" @@ -1806,14 +1846,14 @@ } }, "principals": { - "description": "Principal objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsInput" } }, "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of depedent metadata objects.", + "description": "Indicates whether to fetch permissions of dependent metadata objects.", "default": false, "type": "boolean", "nullable": true @@ -1966,7 +2006,7 @@ "type": "string" }, "logical_table_identifier": { - "description": "GUID of the data source object, such as a worksheet, view, or table.", + "description": "GUID of the data source object, such as a Worksheet, View, or Table.", "type": "string" }, "data_format": { @@ -2320,7 +2360,7 @@ "type": "object", "properties": { "log_type": { - "description": "Name of the log type.", + "description": "Name of the log type", "type": "string", "enum": [ "SECURITY_AUDIT" @@ -2418,7 +2458,7 @@ "type": "object", "properties": { "org_identifiers": { - "description": " List of Unique identifier of the organization. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"]\n \n\nNote: If no org identifier is specified,then the configurations will be returned for all orgs the user has access to
Version: 9.5.0.cl or later", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", "type": "array", "items": { "type": "string" @@ -2637,7 +2677,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQL_SERVER", + "SQLSERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -2645,7 +2685,12 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA" + "AMAZON_ATHENA", + "SINGLESTORE", + "GCP_SQLSERVER", + "GCP_ALLOYDB_POSTGRESQL", + "GCP_POSTGRESQL", + "GCP_MYSQL" ] } }, @@ -2781,7 +2826,7 @@ "type": "object", "properties": { "role_identifiers": { - "description": "unique ID or name of the Roles", + "description": "unique ID or name of the roles", "type": "array", "items": { "type": "string" @@ -2947,21 +2992,25 @@ "type": "object", "properties": { "custom_action_identifier": { - "description": "Name or Id of the custom action.", + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", "type": "string" }, "default_action_config": { - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "description": "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.", "$ref": "#/components/schemas/Default_Action_Config_Search_Input" }, "include_group_associations": { - "description": "When set to true, returns associated groups for custom action.", + "description": "When set to true, returns the associated groups for a custom action.", "default": false, "type": "boolean", "nullable": true }, "include_metadata_associations": { - "description": "When set to true, returns associated metadata for custom action.", + "description": "When set to true, returns the associated metadata for a custom action.", "default": false, "type": "boolean", "nullable": true @@ -3078,19 +3127,19 @@ "type": "object", "properties": { "username": { - "description": "Username of the user account", + "description": "Username of the ThoughtSpot user", "type": "string" }, "password": { - "description": "The password of the user account", + "description": "Password of the user account", "type": "string" }, "org_identifier": { - "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", + "description": "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.", "type": "string" }, "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", "default": false, "type": "boolean", "nullable": true @@ -3164,55 +3213,59 @@ "type": "object", "properties": { "username": { - "description": "Username of the user account", + "description": "Username of the ThoughtSpot user", "type": "string" }, "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "description": "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.", "type": "string" }, "password": { - "description": "The password of the user account", + "description": "Password of the user account", "default": "", "type": "string" }, "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", "default": "", "type": "string" }, "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", + "description": "Token validity duration in seconds", "default": 300, "type": "integer", "format": "int32" }, "org_id": { - "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", + "description": "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.", "default": 0, "type": "integer", "format": "int32" }, "email": { - "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", "type": "string" }, "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", "type": "string" }, "auto_create": { - "description": "“Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT) \n\n\nNote: This is only available for clusters with trusted authentication enabled. ", + "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. ", "default": false, "type": "boolean", "nullable": true }, "group_identifiers": { - "description": "Unique ID or name of the User Groups to which newly created user to be added. Use this parameter to provision a user just-in-time (JIT).", + "description": "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.", "type": "array", "items": { "type": "string" } + }, + "jwt_user_options": { + "description": "JWT user options to create a JWT token given the payload.", + "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -3295,33 +3348,33 @@ "type": "object", "properties": { "username": { - "description": "Username of the user account", + "description": "Username of the ThoughtSpot user", "type": "string" }, "password": { - "description": "The password of the user account", + "description": "Password of the user account", "default": "", "type": "string" }, "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", "default": "", "type": "string" }, "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", + "description": "Token validity duration in seconds", "default": 300, "type": "integer", "format": "int32" }, "org_id": { - "description": "Id of the Org to be associated with the user login. If no input is provided then last logged in Org will be considered", + "description": "ID of the Org context to log in to. If the Org ID is not specified, the user will be logged in to the Org context of their previous login session.", "default": 0, "type": "integer", "format": "int32" }, "email": { - "description": "Indicates email id of the user. Use this parameter to provision a user just-in-time (JIT).", + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", "type": "string" }, "display_name": { @@ -3329,7 +3382,7 @@ "type": "string" }, "auto_create": { - "description": " Creates a new user if the specified username does not already exist in ThoughtSpot. Use this parameter to provision a user just-in-time (JIT). \n\nNote: This is only available for clusters with trusted authentication enabled.", + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", "default": false, "type": "boolean", "nullable": true @@ -3340,6 +3393,10 @@ "items": { "type": "string" } + }, + "jwt_user_options": { + "description": "JWT user options to create a JWT token given the payload.", + "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -4359,6 +4416,185 @@ } } }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": " Version: 9.7.0.cl or later", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": " Version: 9.7.0.cl or later", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -4546,15 +4782,22 @@ "type": "object", "properties": { "name": { - "description": "Name of the Org.", + "description": "Name of the Org", "type": "string" }, "description": { - "description": "Description of the Org.", + "description": "Description of the Org", "type": "string" }, "user_identifiers": { - "description": "Add Users to an Org.", + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", "type": "array", "items": { "type": "string" @@ -4584,7 +4827,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org." + "description": "ID or name of the Org" } ], "responses": { @@ -4650,7 +4893,7 @@ "schema": { "type": "string" }, - "description": "ID or name of the Org." + "description": "ID or name of the Org" } ], "responses": { @@ -5147,22 +5390,22 @@ "type": "string" }, "display_name": { - "description": "Unique display name for the group.", + "description": "Display name for the group.", "type": "string" }, "default_liveboard_identifiers": { - "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", "type": "array", "items": { "type": "string" } }, "description": { - "description": "Description of the group.", + "description": "Description of the group", "type": "string" }, "privileges": { - "description": "Privileges to assign to the group.", + "description": "Privileges to assign to the group", "type": "array", "items": { "type": "string", @@ -5314,7 +5557,7 @@ "type": "string" }, "default_liveboard_identifiers": { - "description": "Unique ID of Liveboards to assign as default liveboards to the users in the group.", + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", "type": "array", "items": { "type": "string" @@ -5366,7 +5609,7 @@ } }, "type": { - "description": "Type of the user group.", + "description": "Type of the group", "type": "string", "enum": [ "LOCAL_GROUP", @@ -5550,7 +5793,7 @@ "type": "object", "properties": { "groups": { - "description": "Details of user groups which are to be imported", + "description": "Details of groups which are to be imported", "type": "array", "items": { "$ref": "#/components/schemas/GroupsImportListInput" @@ -6161,7 +6404,7 @@ "type": "string" }, "org_identifier": { - "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", "type": "string" }, "branch_names": { @@ -6171,19 +6414,29 @@ "type": "string" } }, - "default_branch_name": { - "description": "Name of the default remote branch", + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": false, + "default": true, "type": "boolean", "nullable": true }, - "guid_mapping_branch_name": { - "description": " Name of the branch where file containing guid mapping should be maintained. This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } }, "required": [ @@ -6266,15 +6519,15 @@ "type": "object", "properties": { "username": { - "description": "Username to authenticate connection to vcs", + "description": "Username to authenticate connection to version control system", "type": "string" }, "access_token": { - "description": "Access token corresponding to the user to authenticate connection to vcs", + "description": "Access token corresponding to the user to authenticate connection to version control system", "type": "string" }, "org_identifier": { - "description": " Unique identifier of the organization. If no value is provided then user will be created in the organization associated with the login session. Provide value -1 for cluster level. Example : OrgID1-or-Name1\n \n\nNote: If no org identifier is specified, then current org identifier of the user will be considered
Version: 9.5.0.cl or later", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", "type": "string" }, "branch_names": { @@ -6284,18 +6537,28 @@ "type": "string" } }, - "default_branch_name": { - "description": "Name of the default remote branch", + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", "nullable": true }, - "guid_mapping_branch_name": { - "description": " Name of the branch where file containing guid mapping should be maintained This will be set only when enable_guid_mapping is true.\n \n\nNote: If no guid mapping branch is specified, then the default branch for this configuration will be considered.
Version: 9.4.0.cl or later", + "configuration_branch_name": { + "description": "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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } } } @@ -6373,7 +6636,7 @@ "type": "object", "properties": { "cluster_level": { - "description": "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", + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", "type": "boolean", "nullable": true } @@ -6452,8 +6715,14 @@ "$ref": "#/components/schemas/MetadataObject" } }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", "type": "string" }, "comment": { @@ -6547,11 +6816,11 @@ } }, "branch_name": { - "description": " Name of the branch where the reverted version should be comitted\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", "type": "string" }, "revert_policy": { - "description": "Policy to be followed while importing. Valid values: [ALL_OR_NONE, PARTIAL]", + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", "default": "ALL_OR_NONE", "type": "string", "enum": [ @@ -6739,7 +7008,7 @@ "type": "string" }, "branch_name": { - "description": " Name of the remote branch where changes should be picked\n \n\nNote: If no branch_name is specified, then the default branch will be considered.", + "description": "Name of the remote branch where changes should be picked", "type": "string" }, "deploy_type": { @@ -6757,10 +7026,14 @@ "type": "string", "enum": [ "ALL_OR_NONE", - "PARTIAL" + "PARTIAL", + "VALIDATE_ONLY" ] } - } + }, + "required": [ + "branch_name" + ] } } }, @@ -6864,7 +7137,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQL_SERVER", + "SQLSERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -6872,15 +7145,20 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA" + "AMAZON_ATHENA", + "SINGLESTORE", + "GCP_SQLSERVER", + "GCP_ALLOYDB_POSTGRESQL", + "GCP_POSTGRESQL", + "GCP_MYSQL" ] }, "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", "type": "object" }, "validate": { - "description": "Indicates whether to validate the connection details.", + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", "default": true, "type": "boolean", "nullable": true @@ -7119,27 +7397,173 @@ } } }, - "/api/rest/2.0/roles/create": { + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Roles", - "9.5.0.cl" + "Connections", + "9.9.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the role.", - "type": "string" - }, - "description": { - "description": "Description of the role.", - "type": "string" + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the role.", + "type": "string" + }, + "description": { + "description": "Description of the role.", + "type": "string" }, "privileges": { "description": "Privileges granted to the role.", @@ -7165,7 +7589,9 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CONTROL_TRUSTED_AUTH", + "TAG_MANAGEMENT" ] } } @@ -7279,7 +7705,9 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CONTROL_TRUSTED_AUTH", + "TAG_MANAGEMENT" ] } } @@ -7446,14 +7874,14 @@ "type": "string" }, "metadata_type": { - "description": "Type of metadata.", + "description": "Type of the metadata object.", "type": "string", "enum": [ "LIVEBOARD" ] }, "metadata_identifier": { - "description": "Unique ID or name of the metadata.", + "description": "Unique ID or name of the metadata object.", "type": "string" }, "file_format": { @@ -7466,11 +7894,11 @@ ] }, "liveboard_options": { - "description": "Options to specify details of liveboard.", + "description": "Options to specify details of Liveboard.", "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { - "description": "Options for PDF export.", + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { @@ -8111,11 +8539,11 @@ ] }, "frequency": { - "description": "Configuration of schedule with cron expression", + "description": "Frequency settings for the scheduled job.", "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { - "description": "Recipient configuration which includes emails and recipients of the schedule", + "description": "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.", "$ref": "#/components/schemas/RecipientDetailsInput" } }, @@ -8190,7 +8618,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "\nDeletes a schedule
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -8203,7 +8631,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the schedule." + "description": "Unique ID or name of the scheduled job." } ], "responses": { @@ -8268,7 +8696,7 @@ "type": "object", "properties": { "metadata": { - "description": "Metadata objects associated with schedules.", + "description": "Metadata objects associated with the scheduled jobs.", "type": "array", "items": { "$ref": "#/components/schemas/MetadataInput" @@ -8289,7 +8717,7 @@ "$ref": "#/components/schemas/SortingOptions" }, "history_runs_options": { - "description": "Options while fetching history runs wrt to the schedule.", + "description": "Options while fetching history runs for the schedule.", "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" }, "schedule_identifiers": { @@ -8382,18 +8810,18 @@ "type": "string" }, "description": { - "description": "Description of the job.", + "description": "Description of the scheduled job.", "type": "string" }, "metadata_type": { - "description": "Type of metadata.", + "description": "Type of metadata object.", "type": "string", "enum": [ "LIVEBOARD" ] }, "metadata_identifier": { - "description": "Unique ID or name of the metadata.", + "description": "Unique ID or name of the metadata object.", "type": "string" }, "file_format": { @@ -8405,7 +8833,7 @@ ] }, "liveboard_options": { - "description": "Options to specify details of liveboard.", + "description": "Options to specify the details of a Liveboard.", "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { @@ -9049,11 +9477,11 @@ ] }, "frequency": { - "description": "Configuration of schedule with cron expression", + "description": "Frequency of the scheduled job run.", "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { - "description": "Recipient configuration which includes emails and recipients of the schedule", + "description": "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.", "$ref": "#/components/schemas/RecipientDetailsInput" }, "status": { @@ -9147,7 +9575,7 @@ "type": "string" }, "action_details": { - "description": "Action details includes Type and Configuration for Custom Actions,either Callback or URL is required.", + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", "$ref": "#/components/schemas/Action_Details_Input_Create" }, "associate_metadata": { @@ -9158,11 +9586,11 @@ } }, "default_action_config": { - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "description": "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.", "$ref": "#/components/schemas/Default_Action_Config_Input_Create" }, "group_identifiers": { - "description": "Unique ID or name of the User groups who will be associated with the custom action.", + "description": "Unique ID or name of the groups that can view and access the custom action.", "type": "array", "items": { "type": "string" @@ -9266,7 +9694,7 @@ "type": "object", "properties": { "action_details": { - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.", + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", "$ref": "#/components/schemas/Action_Details_Input" }, "associate_metadata": { @@ -9277,11 +9705,11 @@ } }, "default_action_config": { - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations.", + "description": "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.", "$ref": "#/components/schemas/Default_Action_Config_Input" }, "group_identifiers": { - "description": "Unique ID or name of the User groups who will be associated with the custom action.", + "description": "Unique ID or name of the groups that can view and access the custom action.", "type": "array", "items": { "type": "string" @@ -9380,7 +9808,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the Custom action." + "description": "Unique ID or name of the custom action." } ], "responses": { @@ -9429,281 +9857,704 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } }, - "display_name": { - "type": "string", - "description": "Display name of the user." + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups, and thus allows them to share objects." + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user." + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "can_change_password": { - "type": "boolean", - "description": "Indicates whether the user can change their password." + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the user." + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds." + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged in Organizations of the user." + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted." + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated." + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account." + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account." + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } }, - "email": { - "type": "string", - "description": "Email of the user." + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds." + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external." + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to be assigned as favorites for the imported user." + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object" + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." }, - "first_login_time_in_millis": { + "creation_time_in_millis": { "type": "number", "format": "float", - "description": "First login time of the user in milliseconds." - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user." - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden." - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the users home liveboard." - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present." - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user." + "description": "Token creation time in milliseconds." }, - "modification_time_in_millis": { + "expiration_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user in milliseconds." - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user." - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared answers or liveboard." - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Organizations in which user exists." - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user." - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user." - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user." - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "The user preference for revisiting the onboarding experience." - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user." - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user." - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user." + "description": "Token expiration time in milliseconds." }, - "tenant_id": { + "valid_for_user_id": { "type": "string", - "description": "Unique identifier of tenant of the user." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "User Groups which the user is part of." - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of." - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user." - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org." + "description": "Username to whom the token is issued." }, - "preferred_locale": { + "valid_for_username": { "type": "string", - "description": "Locale for the user." - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user" - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user" + "description": "Unique identifier of the user to whom the token is issued." } } }, - "FavoriteMetadataInput": { + "RiseSetter": { "type": "object", + "required": [ + "field", + "path" + ], "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata." + "path": { + "type": "string" } } }, - "ImportUser": { + "User": { "type": "object", "required": [ - "user_identifier", - "display_name" + "id", + "name", + "display_name", + "visibility" ], "properties": { - "user_identifier": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { "type": "string", - "description": "Unique ID or name of the user." + "description": "Name of the user." }, "display_name": { "type": "string", - "description": "Unique display name of the user." + "description": "Display name of the user." }, - "password": { + "visibility": { "type": "string", - "description": "Password of the user." + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user." + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password." + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds." + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user." + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted." + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated." }, "account_type": { "type": "string", @@ -9714,7 +10565,6 @@ "OIDC_USER", "REMOTE_USER" ], - "default": "LOCAL_USER", "description": "Type of the user account." }, "account_status": { @@ -9726,356 +10576,153 @@ "LOCKED", "PENDING" ], - "default": "ACTIVE", "description": "Status of the user account." }, "email": { "type": "string", "description": "Email of the user." }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the Orgs for the users." - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the User Groups of the users." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE makes a users visible to other users and user groups,\nand thus allows them to share objects." - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "User preference for receiving email notifications on shared answers or liveboard." - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "The user preference for revisiting the onboarding experience." + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds." }, - "onboarding_experience_completed": { + "external": { "type": "boolean", - "description": "The user preference for turning off the onboarding experience." - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the users home liveboard." + "description": "Indicates whether the user is external." }, "favorite_metadata": { "type": "array", "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" + "$ref": "#/components/schemas/FavoriteMetadataItem" }, - "description": "Metadata objects to be assigned as favorites for the imported user." - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - } - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on." - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." - } - }, - "description": "Sort options." - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string" + "description": "Metadata objects to add to the users' favorites list." }, - "name": { - "type": "string" - } - } - }, - "VisualizationIdentifiersInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the visualization." - } - } - }, - "MetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID)." + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds." }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - }, - "description": "MetadataType InputType associated in the Product" - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID)." + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user." }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - }, - "description": "MetadataType InputType used in Export MetadataType API's" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID)." + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden." }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API's" - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal." + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user." }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type." - } - } - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata." + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present." }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user." + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds." + }, + "modifier_id": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata." + "description": "Unique identifier of modifier of the user." }, - "identifier": { + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard." + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs." + }, + "owner_id": { "type": "string", - "description": "Unique ID or name of the metadata." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or user groups." + "description": "Unique identifier of owner of the user." }, - "share_mode": { + "parent_type": { "type": "string", "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" + "USER", + "GROUP" ], - "description": "Object share mode." - } - } - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { + "description": "Parent type of the user." + }, + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/AnswerContent" + "type": "string" }, - "description": "Data content of metadata objects." - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" + "description": "Privileges which are assigned to the user." }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience." }, - "contents": { + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user." + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user." + }, + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/AnswerContent" + "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Data content of metadata objects." - } - }, - "description": "Response format associated with fetch data api" - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" + "description": "Tags associated with the user." }, - "metadata_name": { + "tenant_id": { "type": "string", - "description": "Name of the metadata." + "description": "Unique identifier of tenant of the user." }, - "contents": { + "user_groups": { "type": "array", "items": { - "$ref": "#/components/schemas/LiveboardContent" + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned." + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Data content of metadata objects." + "description": "Inherited User Groups which the user is part of." + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user." + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org." + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user." + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user" + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user" } } }, @@ -10096,40 +10743,40 @@ "description": "Name of the object." } }, - "description": "Current logged in Organizations of the user." + "description": "The current Org context of the user." }, - "GenericInfo": { + "FavoriteMetadataItem": { "type": "object", + "required": [ + "id", + "name", + "type" + ], "properties": { "id": { - "type": "string" + "type": "string", + "description": "Unique ID of the metadata object." }, "name": { - "type": "string" - } - } - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { + "type": "string", + "description": "name of the metadata object." + }, "type": { "type": "string", "enum": [ - "VISUALIZATION", + "LIVEBOARD", "ANSWER", - "WORKSHEET" + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata." - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Type of metadata object." } - }, - "description": "MetadataType InputType used in Custom Action API's" + } }, "Object_ID_And_Name": { "type": "object", @@ -10145,54 +10792,47 @@ }, "description": "The object representation with ID and Name." }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "GetTokenResponse": { + "FavoriteMetadataInput": { "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], "properties": { - "token": { + "identifier": { "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." + "description": "Unique ID or name of the metadata object." }, - "valid_for_user_id": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object." + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { "type": "string", - "description": "Username to whom the token is issued." + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on." }, - "valid_for_username": { + "order": { "type": "string", - "description": "Unique identifier of the user to whom the token is issued." + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } - } + }, + "description": "Sort options." }, "SystemInfo": { "type": "object", @@ -10275,7 +10915,7 @@ }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL user group." + "description": "The unique identifier of ALL group." }, "accept_language": { "type": "string", @@ -10284,7 +10924,7 @@ "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL user group." + "description": "The count of users of ALL group." }, "logical_model_version": { "type": "integer", @@ -10307,11 +10947,11 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the organization." + "description": "Unique identifier of the Org." }, "name": { "type": "string", - "description": "Name of the organization." + "description": "Name of the Org." }, "status": { "type": "string", @@ -10319,11 +10959,11 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the organization." + "description": "Status of the Org." }, "description": { "type": "string", - "description": "Description of the organization." + "description": "Description of the Org." }, "visibility": { "type": "string", @@ -10331,7 +10971,7 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the organization." + "description": "Visibility of the Org." } } }, @@ -10397,52 +11037,52 @@ }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the user group." + "description": "Indicates whether the response has complete detail of the group." }, "content": { "type": "object", - "description": "Content details of the user group." + "description": "Content details of the group" }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the user group in milliseconds." + "description": "Creation time of the group in milliseconds" }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards which are assigned as default liveboards to the user group." + "description": "Liveboards that are assigned as default Liveboards to the group." }, "deleted": { "type": "boolean", - "description": "Indicates whether the user group is deleted." + "description": "Indicates whether the group is deleted" }, "deprecated": { "type": "boolean", - "description": "Indicates whether the user group is deprecated." + "description": "Indicates whether the group is deprecated" }, "description": { "type": "string", - "description": "Description of the user group." + "description": "Description of the group" }, "display_name": { "type": "string", - "description": "Display name of the user group." + "description": "Display name of the group." }, "external": { "type": "boolean", - "description": "Indicates whether the user group is external." + "description": "Indicates whether the group is external" }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the user group." + "description": "Generation number of the group" }, "hidden": { "type": "boolean", - "description": "Indicates whether the user group is hidden." + "description": "Indicates whether the group is hidden" }, "id": { "type": "string", @@ -10451,22 +11091,22 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the user group." + "description": "Index number of the group" }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the user group." + "description": "Index version number of the group" }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the user group." + "description": "Metadata version number of the group" }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user group in milliseconds." + "description": "Last modified time of the group in milliseconds." }, "modifier_id": { "type": "string", @@ -10474,14 +11114,14 @@ }, "name": { "type": "string", - "description": "Name of the user group." + "description": "Name of the group." }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which user group exists." + "description": "Orgs in which group exists." }, "owner_id": { "type": "string", @@ -10493,32 +11133,32 @@ "USER", "GROUP" ], - "description": "Parent type of the user group." + "description": "Parent type of the group." }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the user group." + "description": "Privileges which are assigned to the group" }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "User Groups who are part of the user group." + "description": "Groups who are part of the group" }, "system_group": { "type": "boolean", - "description": "Indicates whether the user group is a system group." + "description": "Indicates whether the group is a system group." }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the user group." + "description": "Tags associated with the group." }, "type": { "type": "string", @@ -10526,14 +11166,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the user group." + "description": "Type of the group." }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the user group." + "description": "Users who are part of the group." }, "visibility": { "type": "string", @@ -10541,7 +11181,7 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." }, "roles": { "type": "array", @@ -10552,6 +11192,144 @@ } } }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role" + }, + "name": { + "type": "string", + "description": "name of the role" + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users." + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + }, + "description": "Sort options." + }, "MetadataSearchResponse": { "type": "object", "required": [ @@ -10607,75 +11385,161 @@ }, "description": "Visualization header information of the metadata objects." }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed." + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed." + } + }, + "description": "Metadata Search Response Object." + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title." + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available." + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters." + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page." + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF." + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables." + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page." } - }, - "description": "Metadata Search Response Object." + } }, - "MetadataListItemInput": { + "PngOptionsInput": { "type": "object", "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the metadata object. User % for a wildcard match." + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title." }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for user group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters." } } }, - "PermissionInput": { + "PrincipalsInput": { "type": "object", "required": [ - "principal", - "share_mode" + "identifier" ], "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or user groups." + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." }, - "share_mode": { + "type": { "type": "string", "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" + "USER", + "USER_GROUP" ], - "description": "Object share mode." + "description": "Principal type." } - }, - "description": "Details of users or user groups." + } }, - "ExcludeMetadataListItemInput": { + "PermissionsMetadataTypeInput": { "type": "object", "required": [ - "identifier", - "type" + "identifier" ], "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, "type": { "type": "string", "enum": [ @@ -10683,160 +11547,197 @@ "ANSWER", "LOGICAL_TABLE", "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "CONNECTION" ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for user group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "Type of metadata object." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." } - } + }, + "description": "MetadataType InputType used in Permission API's" }, - "FavoriteObjectOptionsInput": { + "SearchDataResponse": { "type": "object", + "required": [ + "contents" + ], "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified user GUIDs." - }, - "user_identifiers": { + "contents": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/AnswerContent" }, - "description": "Unique ID or name of the users. If not specified then favorite of current logged in user is considered." + "description": "Data content of metadata objects" } }, - "description": "Favorite object options." + "description": "Response format associated with the search data API." }, - "MetadataSearchSortOptions": { + "AnswerContent": { "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on." + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." } - }, - "description": "Sort options." + } }, - "SqlQueryResponse": { + "LiveboardDataResponse": { "type": "object", "required": [ "metadata_id", "metadata_name", - "metadata_type", - "sql_queries" + "contents" ], "properties": { "metadata_id": { "type": "string", - "description": "Unique identifier of the metadata." + "description": "The unique identifier of the object" }, "metadata_name": { "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." + "description": "Name of the metadata object" }, - "sql_queries": { + "contents": { "type": "array", "items": { - "$ref": "#/components/schemas/SqlQuery" + "$ref": "#/components/schemas/LiveboardContent" }, - "description": "SQL query details of metadata objects." + "description": "Data content of metadata objects" } } }, - "PdfOptionsInput": { + "LiveboardContent": { "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include cover page with the Liveboard title." + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available." + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters." + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page." + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF." + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only first page of the tables." + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization." }, - "page_footer_text": { + "visualization_name": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Name of the visualization." } } }, - "PngOptionsInput": { + "AnswerDataResponse": { "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include cover page with the Liveboard title." + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters." + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" } - } + }, + "description": "Response format associated with fetch data api" }, "LogResponse": { "type": "object", @@ -10864,11 +11765,11 @@ }, "username": { "type": "string", - "description": "Username to authenticate connection to vcs" + "description": "Username to authenticate connection to the version control system" }, - "default_branch": { + "commit_branch_name": { "type": "string", - "description": "Name of the default remote branch" + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." }, "branches": { "type": "array", @@ -10881,13 +11782,13 @@ "type": "boolean", "description": "Maintain mapping of guid for the deployment to an instance" }, - "guid_mapping_branch_name": { + "configuration_branch_name": { "type": "string", - "description": "Name of the branch where file containing guid mapping should be maintained" + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the organization" + "description": "Details of the Org" } } }, @@ -10928,6 +11829,102 @@ } } }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer" + }, + "username": { + "type": "string", + "description": "Username of the committer" + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer" + }, + "username": { + "type": "string", + "description": "Username of the committer" + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection." + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns." + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database." + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database." + }, + "table": { + "type": "string", + "description": "Name of the table within the schema." + }, + "column": { + "type": "string", + "description": "Name of the column within the table." + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending)." + } + } + }, "SearchConnectionResponse": { "type": "object", "required": [ @@ -10965,7 +11962,7 @@ "TRINO", "PRESTO", "POSTGRES", - "SQL_SERVER", + "SQLSERVER", "MYSQL", "GENERIC_JDBC", "AMAZON_RDS_POSTGRESQL", @@ -10973,7 +11970,12 @@ "AMAZON_RDS_MYSQL", "AMAZON_AURORA_MYSQL", "LOOKER", - "AMAZON_ATHENA" + "AMAZON_ATHENA", + "SINGLESTORE", + "GCP_SQLSERVER", + "GCP_ALLOYDB_POSTGRESQL", + "GCP_POSTGRESQL", + "GCP_MYSQL" ], "description": "Type of data warehouse." }, @@ -10987,52 +11989,135 @@ } } }, - "ConnectionInput": { + "DataWarehouseObjects": { "type": "object", + "required": [ + "databases" + ], "properties": { - "identifier": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { "type": "string", - "description": "Unique ID or name of the connection." + "description": "Name of the database." }, - "name_pattern": { + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database." + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created." + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User % for a wildcard match." + "description": "Name of the schema." }, - "data_warehouse_objects": { + "tables": { "type": "array", "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" + "$ref": "#/components/schemas/Table" }, - "description": "Filter options for databases, schemas, tables and columns." + "description": "Tables in the schema." } } }, - "SortOptionInput": { + "Table": { "type": "object", + "required": [ + "name" + ], "properties": { - "field_name": { + "name": { "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on." + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table." + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table" + }, + "description": { + "type": "string", + "description": "Description of the table" + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked" + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table" + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" }, - "order": { + "data_type": { "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate" + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported" + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected" + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked" } } }, @@ -11067,7 +12152,7 @@ "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Organizations in which role exists." + "description": "Orgs in which role exists." }, "groups": { "type": "array", @@ -11164,6 +12249,16 @@ }, "description": "Response for search role api should handle hidden privileges as well." }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "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." + }, "ResponseCustomAction": { "type": "object", "required": [ @@ -11175,11 +12270,11 @@ "properties": { "action_details": { "$ref": "#/components/schemas/Action_details", - "description": "Type and Configuration for Custom Actions" + "description": "`Type` and configuration data for custom actions" }, "default_action_config": { "$ref": "#/components/schemas/Default_action_config", - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "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." }, "id": { "type": "string", @@ -11190,31 +12285,287 @@ "items": { "$ref": "#/components/schemas/Metadata_Association_Item" }, - "description": "Metadata objects to which the custom action needs to be associated." + "description": "Metadata objects to assign the the custom action to." }, "name": { "type": "string", "description": "Unique name of the custom action." }, - "user_groups": { + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action." + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type" + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name." + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action." + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url." + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name." + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key." + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization." + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name" + }, + "value": { + "type": "string", + "description": "Enter you key value" + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { + "type": "string", + "description": "Username for the basic authentication" + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter" + }, + "value": { + "type": "string", + "description": "Value for the url query parameter" + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata object." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { "type": "array", "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action." + "$ref": "#/components/schemas/JWT_Metadata_Object" + } } }, - "description": "Custom action details" + "description": "JWT user options to create a JWT token given the payload." }, - "Default_Action_Config_Search_Input": { + "JWT_Parameter": { "type": "object", "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ] } }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "Metadata objects." }, "Token": { "type": "object", @@ -11255,137 +12606,97 @@ } } }, - "TagMetadataTypeInput": { + "Scope": { "type": "object", "required": [ - "identifier" + "access_type" ], "properties": { - "type": { + "access_type": { "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." + "description": "Object access scope type." }, - "identifier": { + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata." + }, + "metadata_id": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique identifier of the Org." } } }, - "ImportUserGroupsResponse": { + "ResponseActivationURL": { "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The user groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The user groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The user groups which are updated in the system." + "activation_link": { + "type": "string", + "description": "Activation link to activate the user." } - } + }, + "description": "The object representation with activation link." }, - "GroupsImportListInput": { + "ImportUser": { "type": "object", "required": [ - "display_name", - "group_identifier" + "user_identifier", + "display_name" ], "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, "display_name": { "type": "string", - "description": "Unique display name of the user group." + "description": "Display name of the user." }, - "group_identifier": { + "password": { "type": "string", - "description": "Unique ID or name of the User Group." + "description": "Password of the user." }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of liveboards which will be assigned as default liveboards to the user group." + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account." }, - "description": { + "account_status": { "type": "string", - "description": "Description of the user group." + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account." }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADMINISTRATION", - "AUTHORING", - "USERDATAUPLOADING", - "DATADOWNLOADING", - "USERMANAGEMENT", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "BYPASSRLS", - "RANALYSIS", - "DEVELOPER", - "USER_ADMINISTRATION", - "GROUP_ADMINISTRATION", - "SYNCMANAGEMENT", - "CAN_CREATE_CATALOG", - "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", - "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" - ] - }, - "description": "Privileges which will be assigned to the user group." + "email": { + "type": "string", + "description": "Email address of the user." }, - "sub_group_identifiers": { + "org_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the User Groups who will be part of the user group." - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the user group." + "description": "ID or name of the Orgs to which the user belongs." }, - "user_identifiers": { + "group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the Users who will be part of the user group." + "description": "ID or name of the groups to which the user belongs." }, "visibility": { "type": "string", @@ -11393,993 +12704,888 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the user group. The SHARABLE makes a user group visible to other users and user groups, and thus allows them to share objects." - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata." - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects" }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs" }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit" + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs" }, - "reverted_metadata": { + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user." + }, + "favorite_metadata": { "type": "array", "items": { - "$ref": "#/components/schemas/RevertedMetadata" + "$ref": "#/components/schemas/FavoriteMetadataInput" }, - "description": "Metadata of reverted file of this commit" + "description": "Metadata objects to add to the user's favorites list." } } }, - "DeployResponse": { + "ImportUsersResponse": { "type": "object", "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + } } } }, - "CreateConnectionResponse": { + "ImportUserType": { "type": "object", "required": [ - "id", - "name", - "data_warehouse_type" + "name" ], "properties": { "id": { "type": "string", - "description": "ID of the connection created." + "description": "Unique identifier of the user." }, "name": { "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { "type": "string", "enum": [ - "SNOWFLAKE", - "AMAZON_REDSHIFT", - "GOOGLE_BIGQUERY", - "AZURE_SYNAPSE", - "TERADATA", - "SAP_HANA", - "STARBURST", - "ORACLE_ADW", - "DATABRICKS", - "DENODO", - "DREMIO", - "TRINO", - "PRESTO", - "POSTGRES", - "SQL_SERVER", - "MYSQL", - "GENERIC_JDBC", - "AMAZON_RDS_POSTGRESQL", - "AMAZON_AURORA_POSTGRESQL", - "AMAZON_RDS_MYSQL", - "AMAZON_AURORA_MYSQL", - "LOOKER", - "AMAZON_ATHENA" + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" ], - "description": "Type of data warehouse." + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." }, - "details": { - "type": "object", - "description": "Details of the connection." + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." } } }, - "RoleResponse": { + "GroupsImportListInput": { "type": "object", "required": [ - "id", - "name", - "description", - "privileges" + "display_name", + "group_identifier" ], "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { + "display_name": { "type": "string", - "description": "Name of the role" + "description": "Unique display name of the group." }, - "description": { + "group_identifier": { "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role" + "description": "Unique ID or name of the group." }, - "orgs": { + "default_liveboard_identifiers": { "type": "array", "items": { - "$ref": "#/components/schemas/GenericInfo" + "type": "string" }, - "description": "Organizations in which role exists." + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role" + "description": { + "type": "string", + "description": "Description of the group." }, "privileges": { "type": "array", "items": { "type": "string", "enum": [ + "ADMINISTRATION", + "AUTHORING", "USERDATAUPLOADING", "DATADOWNLOADING", + "USERMANAGEMENT", "DATAMANAGEMENT", "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", - "DISABLE_PINBOARD_CREATION", + "RANALYSIS", "DEVELOPER", - "APPLICATION_ADMINISTRATION", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", - "SYSTEM_INFO_ADMINISTRATION", "SYNCMANAGEMENT", - "ORG_ADMINISTRATION", - "ROLE_ADMINISTRATION", - "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", + "ENABLESPOTAPPCREATION", + "LIVEBOARD_VERIFIER", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role" - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role." - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds." - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds." - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted." - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external." - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden." - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection" - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job." - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of liveboard." - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export." - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient configuration which includes emails and recipients of the schedule" - }, - "status": { - "type": "string", - "description": "Status of the job" + "description": "Privileges that will be assigned to the group." }, - "time_zone": { + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group." + }, + "type": { "type": "string", - "description": "Time zone" + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group." }, - "history_runs": { + "user_identifiers": { "type": "array", "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" + "type": "string" }, - "description": "Schedule runs history records." + "description": "Unique ID or name of the users to assign to the group." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." } } }, - "LiveboardOptionsInput": { + "ImportUserGroupsResponse": { "type": "object", "required": [ - "visualization_identifiers" + "groups_added", + "groups_deleted", + "groups_updated" ], "properties": { - "visualization_identifiers": { + "groups_added": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/UserGroup" }, - "description": "Unique ID or name of visualizations." + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." } - }, - "description": "Options to specify details of liveboard." + } }, - "SchedulesPdfOptionsInput": { + "ExportMetadataTypeInput": { "type": "object", + "required": [ + "identifier" + ], "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete liveboard." - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the liveboard title." - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" - }, - "page_footer_text": { + "type": { "type": "string", - "description": "Text to include in the footer of each page." + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION" + ], + "description": "Type of metadata (Optional when given identifier is ID)." }, - "page_orientation": { + "identifier": { "type": "string", - "description": "Page orientation of the PDF." - }, - "page_size": { + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { "type": "string", "enum": [ - "A4" + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" ], - "description": "Page size." + "description": "Type of metadata (Optional when given identifier is ID)." }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." } }, - "description": "Options for PDF export." + "description": "MetadataType InputType used in Delete MetadataType API" }, - "FrequencyInput": { + "AuthorMetadataTypeInput": { "type": "object", "required": [ - "cron_expression" + "identifier" ], "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." } }, - "description": "Configuration of schedule with cron expression" + "description": "MetadataType InputType used in Author API's" }, - "RecipientDetailsInput": { + "SharePermissionsInput": { "type": "object", + "required": [ + "principal", + "share_mode" + ], "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients." + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "List of user or user groups to be associated for schedule." + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" } - }, - "description": "Recipient configuration which includes emails and recipients of the schedule" + } }, - "MetadataInput": { + "MetadataObject": { "type": "object", + "required": [ + "identifier" + ], "properties": { "identifier": { - "type": "string" + "type": "string", + "description": "Unique ID or name of the metadata" }, "type": { "type": "string", "enum": [ - "LIVEBOARD" - ] + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata." } } }, - "SortingOptions": { + "CommitResponse": { "type": "object", "properties": { - "field_name": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { "type": "string", - "description": "Name of the field to apply the sort on." + "description": "Comments associated with the commit" }, - "order": { + "commit_time": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit" } - }, - "description": "Sort options." + } }, - "ScheduleHistoryRunsOptionsInput": { + "CommitFileType": { "type": "object", + "required": [ + "file_name", + "status_code" + ], "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs wrt to the schedule or not." + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" }, - "record_size": { - "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as history runs wrt any scheduled job." + "branch": { + "type": "string", + "description": "Branch where changes were committed" }, - "record_offset": { - "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched." - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type" + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit" }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type" + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit" } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + } }, - "Associate_Metadata_Input_Create": { + "RevertedMetadata": { "type": "object", "required": [ - "identifier" + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object" + "file_name": { + "type": "string", + "description": "Name of the file deployed" }, - "identifier": { + "metadata_name": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Name of the metadata object" }, - "type": { + "metadata_type": { "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata." + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" } } }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\n\nDefault: true" - } - }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." - }, - "Action_Details_Input": { + "DeployResponse": { "type": "object", "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type" + "file_name": { + "type": "string", + "description": "Name of the file deployed" }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type" - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required." - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object" + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" }, - "identifier": { + "metadata_type": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Type of the metadata object" }, - "type": { + "status_code": { "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata." + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" } } }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." - } - }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." - }, - "FavoriteMetadataItem": { + "CreateConnectionResponse": { "type": "object", "required": [ "id", "name", - "type" + "data_warehouse_type" ], "properties": { "id": { "type": "string", - "description": "Unique ID of the metadata." + "description": "ID of the connection created." }, "name": { "type": "string", - "description": "name of the metadata." + "description": "Name of the connection." }, - "type": { + "data_warehouse_type": { "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "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" ], - "description": "Type of metadata." - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." + "description": "Type of data warehouse." }, - "name": { - "type": "string", - "description": "Name of the user." + "details": { + "type": "object", + "description": "Details of the connection." } } }, - "AnswerContent": { + "FetchConnectionDiffStatusResponse": { "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." + "status": { + "type": "boolean", + "description": "Status of the connection diff." } } }, - "LiveboardContent": { + "RoleResponse": { "type": "object", "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" + "id", + "name", + "description", + "privileges" ], "properties": { - "available_data_row_count": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "Total available data row count." + "description": "number of groups assigned with this role" }, - "column_names": { + "orgs": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/GenericInfo" }, - "description": "Name of the columns." + "description": "Orgs in which role exists." }, - "data_rows": { + "groups": { "type": "array", "items": { - "type": "object" + "$ref": "#/components/schemas/GenericInfo" }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." + "description": "Details of groups assigned with this role" }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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", + "TAG_MANAGEMENT" + ] + }, + "description": "Privileges granted to the role." }, - "visualization_id": { + "permission": { "type": "string", - "description": "Unique ID of the visualization." + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role" }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization." - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { + "author_id": { "type": "string", - "description": "id of the Role" + "description": "Unique identifier of author of the role." }, - "name": { + "modifier_id": { "type": "string", - "description": "name of the Role" + "description": "Unique identifier of modifier of the role." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds." + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds." + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted." + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external." + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden." + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection" } } }, - "SqlQuery": { + "LiveboardOptionsInput": { "type": "object", "required": [ - "metadata_id", - "metadata_name", - "sql_query" + "visualization_identifiers" ], "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." } }, - "description": "Response format associated with fetch SQL query api" + "description": "Options to specify details of Liveboard." }, - "CommiterType": { + "SchedulesPdfOptionsInput": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "Email id of the committer" + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard." }, - "username": { + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title." + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available." + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters." + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page" + }, + "page_footer_text": { "type": "string", - "description": "Username of the committer" - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { + "description": "Text to include in the footer of each page." + }, + "page_orientation": { "type": "string", - "description": "Email id of the committer" + "description": "Page orientation of the PDF." }, - "username": { + "page_size": { "type": "string", - "description": "Username of the committer" + "enum": [ + "A4" + ], + "description": "Page size." + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables." } - } + }, + "description": "Options for PDF export." }, - "DataWarehouseObjects": { + "FrequencyInput": { "type": "object", "required": [ - "databases" + "cron_expression" ], "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." } - } + }, + "description": "Configuration of schedule with cron expression" }, - "DataWarehouseObjectInput": { + "CronExpressionInput": { "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], "properties": { - "database": { + "day_of_month": { "type": "string", - "description": "Name of the database." + "description": "Day of month of the object." }, - "schema": { + "day_of_week": { "type": "string", - "description": "Name of the schema within the database." + "description": "Day of Week of the object." }, - "table": { + "hour": { "type": "string", - "description": "Name of the table within the schema." + "description": "Hour of the object." }, - "column": { + "minute": { "type": "string", - "description": "Name of the column within the table." - } - } - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type" + "description": "Minute of the object." }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type" + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." } }, - "description": "Type and Configuration for Custom Actions" + "description": "Schedule selected cron expression." }, - "Default_action_config": { + "RecipientDetailsInput": { "type": "object", "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is visible to all Visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients." + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications." } }, - "description": "Default Custom action configuration. This includes if the custom action visibility across visualization. By default, visible across visualizations." + "description": "Recipients of the scheduled job notification." }, - "Metadata_Association_Item": { + "PrincipalsListItemInput": { "type": "object", "required": [ - "action_config", "identifier", "type" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the user or group." }, "type": { "type": "string", - "description": "Type of metadata." + "description": "Principal type." } } }, - "Scope": { + "ResponseSchedule": { "type": "object", "required": [ - "access_type" + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" ], "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata." + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the organization." - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { + "description": { "type": "string", - "description": "Name of the file deployed" + "description": "Description of the job." }, - "status_code": { + "file_format": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Export file format." }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" }, - "metadata_name": { + "id": { "type": "string", - "description": "Name of the metadata object" + "description": "GUID of the scheduled job." }, - "metadata_type": { + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard." + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { "type": "string", - "description": "Type of the metadata object" + "description": "Name of the scheduled job." }, - "status_code": { + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export." + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Status of the job" }, - "status_message": { + "time_zone": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records." } } }, @@ -12414,6 +13620,44 @@ }, "description": "Configuration of schedule with cron expression" }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, "LiveboardOptions": { "type": "object", "required": [ @@ -12428,7 +13672,7 @@ "description": "Unique ID or name of visualizations." } }, - "description": "Options to specify details of liveboard." + "description": "Options to specify details of Liveboard." }, "MetadataResponse": { "type": "object", @@ -12456,11 +13700,11 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete liveboard." + "description": "Indicates whether to include complete Liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", @@ -12494,101 +13738,29 @@ "description": "Indicates whether to include only first page of the tables." } }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients." - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or user groups to be associated for schedule." - } - }, - "description": "Recipient configuration which includes emails and recipients of the schedule" - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run." - } - }, - "description": "Schedule run response object" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." }, - "second": { - "type": "string", - "description": "Second of the object." + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications." } }, - "description": "Schedule selected cron expression." + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "PrincipalsListItemInput": { + "PrincipalsListItem": { "type": "object", "required": [ "identifier", @@ -12597,174 +13769,136 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the principal." + "description": "Unique ID or name of the user or group." }, "type": { "type": "string", - "description": "Principal type." + "description": "Principal type. Valid values are" } } }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { + "ResponseScheduleRun": { "type": "object", "required": [ - "url" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url." + "start_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "url": { + "end_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "Schedule run end time in milliseconds." + }, + "status": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Status of the schedule run." }, - "reference": { + "detail": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Message details related to the schedule run." } }, - "description": "URL Custom Action Type" + "description": "Schedule run response object" }, - "ActionConfigInputCreate": { + "MetadataInput": { "type": "object", "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "identifier": { + "type": "string" }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { + "type": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "enum": [ + "LIVEBOARD" + ] } - }, - "description": "CALLBACK Custom Action Type" + } }, - "URLInput": { + "SortingOptions": { "type": "object", "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url." - }, - "url": { + "field_name": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Name of the field to apply the sort on." }, - "reference": { + "order": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, - "description": "URL Custom Action Type" + "description": "Sort options." }, - "ActionConfigInput": { + "ScheduleHistoryRunsOptionsInput": { "type": "object", "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." - }, - "visibility": { + "include_history_runs": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification." + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched." } - }, - "description": "Specify that the association is enabled for the metadata object Default" + } }, - "Database": { + "Action_Details_Input_Create": { "type": "object", - "required": [ - "name" - ], "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database." + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type" }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created." + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type" } - } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" }, - "CALLBACK": { + "CALLBACKInputMandatory": { "type": "object", "properties": { "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" }, - "URL": { + "URLInputMandatory": { "type": "object", "required": [ "url" ], "properties": { "authentication": { - "$ref": "#/components/schemas/Authentication", + "$ref": "#/components/schemas/AuthenticationInput", "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItem" + "$ref": "#/components/schemas/ParametersListItemInput" }, "description": "Query parameters for url." }, @@ -12774,79 +13908,10 @@ }, "reference": { "type": "string", - "description": "Reference name of the sdk. By default the value will be set to action name" - } - }, - "description": "URL Custom Action Type" - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal." - }, - "type": { - "type": "string", - "description": "Principal type." + "description": "Reference name. By default the value will be set to action name" } - } + }, + "description": "URL Custom Action Type" }, "AuthenticationInput": { "type": "object", @@ -12870,6 +13935,34 @@ }, "description": "Authorization type for the custom action." }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name" + }, + "value": { + "type": "string", + "description": "Enter you key value" + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication" + }, + "username": { + "type": "string", + "description": "Username for the basic authentication" + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, "ParametersListItemInput": { "type": "object", "properties": { @@ -12883,190 +13976,216 @@ } } }, - "SchemaObject": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "name" + "identifier" ], "properties": { - "name": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { "type": "string", - "description": "Name of the schema." + "description": "Unique ID or name of the metadata." }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables of the schema." + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata." } } }, - "Authentication": { + "ActionConfigInputCreate": { "type": "object", "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "Bearer_Token": { + "position": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, - "description": "Authorization type for the custom action." + "description": "Specify that the association is enabled for the metadata object Default" }, - "ParametersListItem": { + "Default_Action_Config_Input_Create": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter" - }, - "value": { - "type": "string", - "description": "Value for the url query parameter" + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" } - } + }, + "description": "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." }, - "API_KeyInput": { + "Action_Details_Input": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Enter your key name" + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type" }, - "value": { - "type": "string", - "description": "Enter you key value" + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type" } }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." }, - "Basic_AuthInput": { + "CALLBACKInput": { "type": "object", "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication" - }, - "username": { + "reference": { "type": "string", - "description": "Username for the basic authentication" + "description": "Reference name. By default, the value will be set to action name." } }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "CALLBACK Custom Action Type" }, - "Table": { + "URLInput": { "type": "object", - "required": [ - "name" - ], "properties": { - "name": { - "type": "string", - "description": "Name of the table." + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action." }, - "columns": { + "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/Column" + "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Columns of the table." + "description": "Query parameters for url." }, - "type": { + "url": { "type": "string", - "description": "Type of table. Either view or table" + "description": "Request Url for the Custom action." }, - "description": { + "reference": { "type": "string", - "description": "Description of the table" - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected" + "description": "Reference name. By default the value will be set to action name" + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object" }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata." } } }, - "API_Key": { + "ActionConfigInput": { "type": "object", "properties": { - "key": { + "position": { "type": "string", - "description": "Enter your key name" + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, - "value": { - "type": "string", - "description": "Enter you key value" + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "Specify that the association is enabled for the metadata object Default" }, - "Basic_Auth": { + "Default_Action_Config_Input": { "type": "object", "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication" - }, - "username": { - "type": "string", - "description": "Username for the basic authentication" + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "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." }, - "Column": { + "ModelTableList": { "type": "object", "required": [ - "name", - "data_type" + "model_name", + "tables" ], "properties": { - "name": { - "type": "string", - "description": "Name of the column." - }, - "data_type": { + "model_name": { "type": "string", - "description": "Data type of the column." + "description": "Name of the Model." }, - "is_aggregate": { + "model_path": { "type": "string", - "description": "Determines if the column schema is an aggregate" - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported" - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected" + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked" + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 9da315e448951797ff8bc09ba624bda66f6d3859 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 2 Nov 2023 08:21:21 +0000 Subject: [PATCH 085/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3c7dee762..257b26bb0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6280,7 +6280,7 @@ ] }, "metadata_identifiers": { - "description": "Unique ID or name of metadata objects.", + "description": "Unique ID or name of metadata objects. Note: All the identifiers should belong to same metadata_type", "type": "array", "items": { "type": "string" @@ -14210,4 +14210,4 @@ } } ] -} +} \ No newline at end of file From eb117ce86375b5252f7eca2e9323f209f973fb02 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 8 Nov 2023 20:33:05 +0000 Subject: [PATCH 086/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 257b26bb0..fb8f993c6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6017,6 +6017,15 @@ "JSON", "YAML" ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in V1 or V2 version.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] } }, "required": [ From 777312a16d0ee2e85540cd8876141868f38eda8b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 10 Nov 2023 06:41:46 +0000 Subject: [PATCH 087/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index fb8f993c6..978105694 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6325,6 +6325,18 @@ "default": false, "type": "boolean", "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ From da35083c55b69b5a9a4dcd1a13e3ca8f1d26dafb Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Tue, 14 Nov 2023 18:27:55 +0530 Subject: [PATCH 088/410] Update openapiSpecv3-2_0.json (#111) --- api-spec/openapiSpecv3-2_0.json | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 978105694..2ae2cf86d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1766,15 +1766,7 @@ } ] } - ], - "__args": { - "principals": [ - { - "identifier": "test_user", - "type": "USER" - } - ] - } + ] } } } @@ -1928,16 +1920,7 @@ } ] } - ], - "__args": { - "metadata": [ - { - "type": "LIVEBOARD", - "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" - } - ], - "include_dependent_objects": false - } + ] } } } @@ -14231,4 +14214,4 @@ } } ] -} \ No newline at end of file +} From e42d329856bb45a4d001f1be2c849647201cae97 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 14 Nov 2023 13:25:14 +0000 Subject: [PATCH 089/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 56 +++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2ae2cf86d..e8f3913fa 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1766,7 +1766,15 @@ } ] } - ] + ], + "__args": { + "principals": [ + { + "identifier": "test_user", + "type": "USER" + } + ] + } } } } @@ -1920,7 +1928,16 @@ } ] } - ] + ], + "__args": { + "metadata": [ + { + "type": "LIVEBOARD", + "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" + } + ], + "include_dependent_objects": false + } } } } @@ -10200,7 +10217,10 @@ "content": { "application/json": { "schema": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } } } } @@ -14161,6 +14181,36 @@ } } }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string" + }, + "project_name": { + "type": "string" + }, + "connection_id": { + "type": "string" + }, + "connection_name": { + "type": "string" + }, + "cdw_database": { + "type": "string" + }, + "import_type": { + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "author_name": { + "type": "string" + } + } + }, "Runtime_Filter": { "type": "object", "properties": { From 5c26a77aedb2aea2583a1f38879adacb2ce7d3a4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 14 Nov 2023 14:17:16 +0000 Subject: [PATCH 090/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e8f3913fa..489a2b588 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14200,11 +14200,7 @@ "type": "string" }, "import_type": { - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] + "type": "string" }, "author_name": { "type": "string" From 345904b16f8abd95452fd9745608808df8167c86 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 16 Nov 2023 09:30:03 +0000 Subject: [PATCH 091/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 489a2b588..315c1a738 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14260,4 +14260,4 @@ } } ] -} +} \ No newline at end of file From b8277335855742ff32a8681f66d7d91cec6a34f4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 20 Nov 2023 07:33:32 +0000 Subject: [PATCH 092/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 315c1a738..763ba2bad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3269,8 +3269,7 @@ } }, "required": [ - "username", - "object_id" + "username" ] } } From 3b532a48fe55aed387318686034747a515c50602 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 20 Nov 2023 11:54:49 +0000 Subject: [PATCH 093/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 763ba2bad..b57ee59e6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2889,16 +2889,19 @@ "deprecated": { "description": "Indicates whether the role is deprecated.", "type": "boolean", + "deprecated": true, "nullable": true }, "external": { "description": "Indicates whether the Role is external", "type": "boolean", + "deprecated": true, "nullable": true }, "shared_via_connection": { "description": "Indicates whether the role is shared via connection", "type": "boolean", + "deprecated": true, "nullable": true }, "permissions": { @@ -2911,7 +2914,8 @@ "MODIFY", "NO_ACCESS" ] - } + }, + "deprecated": true } } } From cc5aced129f4e7afe7d024e49c9ae4c676ceb378 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 21 Nov 2023 10:11:27 +0000 Subject: [PATCH 094/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b57ee59e6..f711186c6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3399,7 +3399,7 @@ }, "jwt_user_options": { "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options" + "$ref": "#/components/schemas/JWT_User_Options_Full" } }, "required": [ @@ -12654,6 +12654,18 @@ } } }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + } + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, "ResponseActivationURL": { "type": "object", "properties": { @@ -14263,4 +14275,4 @@ } } ] -} \ No newline at end of file +} From 71bfcf81c8fec52b152ee7532e50d616311f0a3b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 21 Nov 2023 12:35:59 +0000 Subject: [PATCH 095/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f711186c6..303d5ee1b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3399,7 +3399,7 @@ }, "jwt_user_options": { "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options_Full" + "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -7615,7 +7615,7 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "TAGMANAGEMENT" ] } } @@ -7731,7 +7731,7 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "TAGMANAGEMENT" ] } } @@ -12654,18 +12654,6 @@ } } }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - } - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, "ResponseActivationURL": { "type": "object", "properties": { @@ -13352,7 +13340,7 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "TAGMANAGEMENT" ] }, "description": "Privileges granted to the role." @@ -14275,4 +14263,4 @@ } } ] -} +} \ No newline at end of file From 617b7c8dacf077032c2be13b33f5d738dd22ec01 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 22 Nov 2023 11:48:17 +0000 Subject: [PATCH 096/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 303d5ee1b..b4d4e5c3a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2882,7 +2882,8 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "LIVEBOARD_VERIFIER" ] } }, @@ -7615,7 +7616,8 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAGMANAGEMENT" + "TAGMANAGEMENT", + "LIVEBOARD_VERIFIER" ] } } @@ -7731,7 +7733,8 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAGMANAGEMENT" + "TAGMANAGEMENT", + "LIVEBOARD_VERIFIER" ] } } @@ -12223,7 +12226,8 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "LIVEBOARD_VERIFIER" ] }, "description": "Privileges granted to the role." @@ -13340,7 +13344,8 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAGMANAGEMENT" + "TAGMANAGEMENT", + "LIVEBOARD_VERIFIER" ] }, "description": "Privileges granted to the role." From 37e4da05e9c33fa9159aa3a18a49a91ce49cbaac Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 23 Nov 2023 10:23:01 +0000 Subject: [PATCH 097/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b4d4e5c3a..f711186c6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2882,8 +2882,7 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE", - "LIVEBOARD_VERIFIER" + "PREVIEW_THOUGHTSPOT_SAGE" ] } }, @@ -3400,7 +3399,7 @@ }, "jwt_user_options": { "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options" + "$ref": "#/components/schemas/JWT_User_Options_Full" } }, "required": [ @@ -7616,8 +7615,7 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAGMANAGEMENT", - "LIVEBOARD_VERIFIER" + "TAG_MANAGEMENT" ] } } @@ -7733,8 +7731,7 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAGMANAGEMENT", - "LIVEBOARD_VERIFIER" + "TAG_MANAGEMENT" ] } } @@ -12226,8 +12223,7 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE", - "LIVEBOARD_VERIFIER" + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "description": "Privileges granted to the role." @@ -12658,6 +12654,18 @@ } } }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + } + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, "ResponseActivationURL": { "type": "object", "properties": { @@ -13344,8 +13352,7 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAGMANAGEMENT", - "LIVEBOARD_VERIFIER" + "TAG_MANAGEMENT" ] }, "description": "Privileges granted to the role." @@ -14268,4 +14275,4 @@ } } ] -} \ No newline at end of file +} From 352f21217efe90702e53cf9b59b73b56bb44dd20 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 23 Nov 2023 12:00:39 +0000 Subject: [PATCH 098/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f711186c6..20ce6585a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2882,7 +2882,8 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "LIVEBOARD_VERIFIER" ] } }, @@ -7615,7 +7616,8 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "TAGMANAGEMENT", + "LIVEBOARD_VERIFIER" ] } } @@ -7731,7 +7733,8 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "TAGMANAGEMENT", + "LIVEBOARD_VERIFIER" ] } } @@ -12223,7 +12226,8 @@ "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "LIVEBOARD_VERIFIER" ] }, "description": "Privileges granted to the role." @@ -13352,7 +13356,8 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", - "TAG_MANAGEMENT" + "TAGMANAGEMENT", + "LIVEBOARD_VERIFIER" ] }, "description": "Privileges granted to the role." @@ -14275,4 +14280,4 @@ } } ] -} +} \ No newline at end of file From d82acd2b2154ca6f8bb642af7c91858095657fad Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 24 Nov 2023 04:57:13 +0000 Subject: [PATCH 099/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 20ce6585a..83104aa02 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3400,7 +3400,7 @@ }, "jwt_user_options": { "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options_Full" + "$ref": "#/components/schemas/JWT_User_Options" } }, "required": [ @@ -12658,18 +12658,6 @@ } } }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - } - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, "ResponseActivationURL": { "type": "object", "properties": { @@ -14280,4 +14268,4 @@ } } ] -} \ No newline at end of file +} From 22f08bf063c799643101c53bf9cf3c963246eaf3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 29 Nov 2023 05:25:51 +0000 Subject: [PATCH 100/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 83104aa02..294e45d5d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2531,7 +2531,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -3400,7 +3400,7 @@ }, "jwt_user_options": { "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options" + "$ref": "#/components/schemas/JWT_User_Options_Full" } }, "required": [ @@ -3746,7 +3746,6 @@ "required": [ "name", "display_name", - "password", "email" ] } @@ -4423,7 +4422,7 @@ "/api/rest/2.0/users/activate": { "post": { "operationId": "activateUser", - "description": " Version: 9.7.0.cl or later", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n* Username or the GUID of the user account.\n* Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n* Password for the user account.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.7.0.cl" @@ -4515,7 +4514,7 @@ "/api/rest/2.0/users/deactivate": { "post": { "operationId": "deactivateUser", - "description": " Version: 9.7.0.cl or later", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n* Username or the GUID of the user account\n* Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.7.0.cl" @@ -6722,7 +6721,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6822,7 +6821,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -6927,7 +6926,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7017,7 +7016,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -12658,6 +12657,18 @@ } } }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + } + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, "ResponseActivationURL": { "type": "object", "properties": { @@ -14268,4 +14279,4 @@ } } ] -} +} \ No newline at end of file From 9e7d341152a993d7c2ee5687a69da3cd443f5171 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 5 Dec 2023 06:18:14 +0000 Subject: [PATCH 101/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 294e45d5d..0a73c7d5e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6442,11 +6442,6 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, - "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true - }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "default": true, @@ -6456,11 +6451,6 @@ "configuration_branch_name": { "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" - }, - "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true } }, "required": [ @@ -6565,11 +6555,6 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, - "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true - }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", @@ -6578,11 +6563,6 @@ "configuration_branch_name": { "description": "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", "type": "string" - }, - "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true } } } @@ -14279,4 +14259,4 @@ } } ] -} \ No newline at end of file +} From a064715b63a22cd7cd9e793c756771853f15ba60 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 7 Dec 2023 09:29:50 +0000 Subject: [PATCH 102/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 34 ++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0a73c7d5e..4b150f162 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6029,6 +6029,18 @@ "V1", "V2" ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -6442,6 +6454,11 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "default": true, @@ -6451,6 +6468,11 @@ "configuration_branch_name": { "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } }, "required": [ @@ -6555,6 +6577,11 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", @@ -6563,6 +6590,11 @@ "configuration_branch_name": { "description": "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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } } } @@ -14259,4 +14291,4 @@ } } ] -} +} \ No newline at end of file From 9e00c4fee8c595497f762c69c810577cec5ce038 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 12 Dec 2023 10:26:54 +0000 Subject: [PATCH 103/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4b150f162..cccf095e6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3741,6 +3741,11 @@ "description": "Flag to indicate whether welcome email should be sent to user", "type": "boolean", "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user", + "type": "boolean", + "nullable": true } }, "required": [ From d44416669d7f30c8408204c91e098a5e8c923083 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 18 Dec 2023 06:30:21 +0000 Subject: [PATCH 104/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cccf095e6..d8b83b599 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6459,11 +6459,6 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, - "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true - }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "default": true, @@ -6473,11 +6468,6 @@ "configuration_branch_name": { "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" - }, - "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true } }, "required": [ @@ -6582,11 +6572,6 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, - "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true - }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", @@ -6595,11 +6580,6 @@ "configuration_branch_name": { "description": "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", "type": "string" - }, - "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true } } } From d5b4dbb14a5845549350457a3e3eaa6d7373ba60 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 19 Dec 2023 05:47:48 +0000 Subject: [PATCH 105/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d8b83b599..cccf095e6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6459,6 +6459,11 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "default": true, @@ -6468,6 +6473,11 @@ "configuration_branch_name": { "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } }, "required": [ @@ -6572,6 +6582,11 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, + "default_branch_name": { + "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", + "type": "string", + "deprecated": true + }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", @@ -6580,6 +6595,11 @@ "configuration_branch_name": { "description": "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", "type": "string" + }, + "guid_mapping_branch_name": { + "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", + "type": "string", + "deprecated": true } } } From b8bda12a934046a1f41f6b2e38e692956fcb9cfc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 22 Dec 2023 09:48:52 +0000 Subject: [PATCH 106/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 41 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cccf095e6..66328aeb7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1732,7 +1732,7 @@ "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" }, "examples": { "example_1": { @@ -1766,15 +1766,7 @@ } ] } - ], - "__args": { - "principals": [ - { - "identifier": "test_user", - "type": "USER" - } - ] - } + ] } } } @@ -1874,7 +1866,7 @@ "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/PermissionOfMetadataResponse" }, "examples": { "example_1": { @@ -1928,16 +1920,7 @@ } ] } - ], - "__args": { - "metadata": [ - { - "type": "LIVEBOARD", - "identifier": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9" - } - ], - "include_dependent_objects": false - } + ] } } } @@ -11560,6 +11543,22 @@ } } }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object" + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object" + } + } + }, "PrincipalsInput": { "type": "object", "required": [ From dffb7d80e09eb3cf49f16b724651575f0b0c9cd5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 22 Dec 2023 11:11:22 +0000 Subject: [PATCH 107/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 37 ++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 66328aeb7..5546adac6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -267,7 +267,10 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } }, @@ -973,7 +976,10 @@ "ORG_ADMINISTRATION", "ROLE_ADMINISTRATION", "AUTHENTICATION_ADMINISTRATION", - "BILLING_INFO_ADMINISTRATION" + "BILLING_INFO_ADMINISTRATION", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } }, @@ -2866,7 +2872,11 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "PREVIEW_THOUGHTSPOT_SAGE", - "LIVEBOARD_VERIFIER" + "LIVEBOARD_VERIFIER", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } }, @@ -7616,7 +7626,10 @@ "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", "TAGMANAGEMENT", - "LIVEBOARD_VERIFIER" + "LIVEBOARD_VERIFIER", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } } @@ -7733,7 +7746,10 @@ "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", "TAGMANAGEMENT", - "LIVEBOARD_VERIFIER" + "LIVEBOARD_VERIFIER", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] } } @@ -12242,7 +12258,11 @@ "AUTHENTICATION_ADMINISTRATION", "BILLING_INFO_ADMINISTRATION", "PREVIEW_THOUGHTSPOT_SAGE", - "LIVEBOARD_VERIFIER" + "LIVEBOARD_VERIFIER", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_CONFIGURE_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] }, "description": "Privileges granted to the role." @@ -13372,7 +13392,10 @@ "BILLING_INFO_ADMINISTRATION", "CONTROL_TRUSTED_AUTH", "TAGMANAGEMENT", - "LIVEBOARD_VERIFIER" + "LIVEBOARD_VERIFIER", + "CAN_MANAGE_CUSTOM_CALENDAR", + "CAN_CREATE_OR_EDIT_CONNECTIONS", + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" ] }, "description": "Privileges granted to the role." From f64658730341f282816a5fe8d0bea505ef03fe2f Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 10 Jan 2024 06:20:33 +0000 Subject: [PATCH 108/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 82 ++++++++++++++++----------------- 1 file changed, 39 insertions(+), 43 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5546adac6..ccfca9355 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1014,7 +1014,7 @@ ] }, "role_identifiers": { - "description": "Filter groups with a list of roles assigned to a group", + "description": "Filter groups with a list of Roles assigned to a group", "type": "array", "items": { "type": "string" @@ -1476,7 +1476,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\nYou can also apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1514,11 +1514,11 @@ ] }, "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:'region', op1: 'EQ', val1: 'northeast' }", + "description": "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).", "type": "object" }, "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: 'region', asc1 : true, sortCol2 : 'date' }", + "description": "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).", "type": "object" }, "pdf_options": { @@ -1530,7 +1530,7 @@ "$ref": "#/components/schemas/PngOptionsInput" }, "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", + "description": "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).", "type": "object" } }, @@ -1596,7 +1596,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\nYou can apply [runtime filter](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#_apply_runtime_filters_via_rest_api_v2_0_endpoints) overrides and [sort columns](https://developers.thoughtspot.com/docs/?pageid=runtime-sort#_rest_api_v2_0) to the data retrieved in the API response.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1979,7 +1979,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source.\n\n#### Usage guidelines\n\nTo generate a new Answer, specify the data source GUID. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example. For more information passing search query string in API requests, see [`Components of a search query`](https://developers.thoughtspot.com/docs/?pageid=search-data-api#components). \n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -1991,11 +1991,11 @@ "type": "object", "properties": { "query_string": { - "description": "Data search query string token.", + "description": "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)", "type": "string" }, "logical_table_identifier": { - "description": "GUID of the data source object, such as a Worksheet, View, or Table.", + "description": "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.", "type": "string" }, "data_format": { @@ -2019,15 +2019,15 @@ "format": "int32" }, "runtime_filter": { - "description": "JSON object representing filter condition to filter the data.", + "description": "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": "object" }, "runtime_sort": { - "description": "JSON object representing columns to sort the data.", + "description": "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).", "type": "object" }, "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", + "description": "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).", "type": "object" } }, @@ -2098,7 +2098,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2145,15 +2145,15 @@ "format": "int32" }, "runtime_filter": { - "description": "JSON object representing filter condition to filter the data.", + "description": "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": "object" }, "runtime_sort": { - "description": "JSON object representing columns to sort the data.", + "description": "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).", "type": "object" }, "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", + "description": "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).", "type": "object" } }, @@ -2223,7 +2223,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2259,15 +2259,15 @@ "format": "int32" }, "runtime_filter": { - "description": "JSON object representing filter condition to filter the data.", + "description": "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": "object" }, "runtime_sort": { - "description": "JSON object representing columns to sort the data.", + "description": "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).", "type": "object" }, "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", + "description": "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).", "type": "object" } }, @@ -2337,7 +2337,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/logs-api#_security_events).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -2815,7 +2815,7 @@ "type": "object", "properties": { "role_identifiers": { - "description": "unique ID or name of the roles", + "description": "unique ID or name of the Roles", "type": "array", "items": { "type": "string" @@ -2836,7 +2836,7 @@ } }, "privileges": { - "description": "Privileges assigned to the Role.", + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", "type": "array", "items": { "type": "string", @@ -2881,7 +2881,7 @@ } }, "deprecated": { - "description": "Indicates whether the role is deprecated.", + "description": "Indicates whether the Role is deprecated.", "type": "boolean", "deprecated": true, "nullable": true @@ -2893,7 +2893,7 @@ "nullable": true }, "shared_via_connection": { - "description": "Indicates whether the role is shared via connection", + "description": "Indicates whether the Role is shared via connection", "type": "boolean", "deprecated": true, "nullable": true @@ -4420,7 +4420,7 @@ "/api/rest/2.0/users/activate": { "post": { "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n* Username or the GUID of the user account.\n* Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n* Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.7.0.cl" @@ -4512,7 +4512,7 @@ "/api/rest/2.0/users/deactivate": { "post": { "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n* Username or the GUID of the user account\n* Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.7.0.cl" @@ -5633,7 +5633,7 @@ ] }, "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", + "description": "Role identifiers of the Roles that should be assigned to the group.", "type": "array", "items": { "type": "string" @@ -6414,7 +6414,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7527,11 +7527,7 @@ "200": { "description": "Export metadata changes.", "content": { - "application/json": { - "schema": { - "type": "object" - } - } + "application/octet-stream": {} } }, "400": { @@ -7592,15 +7588,15 @@ "type": "object", "properties": { "name": { - "description": "Unique name of the role.", + "description": "Unique name of the Role.", "type": "string" }, "description": { - "description": "Description of the role.", + "description": "Description of the Role.", "type": "string" }, "privileges": { - "description": "Privileges granted to the role.", + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", "type": "array", "items": { "type": "string", @@ -7716,11 +7712,11 @@ "type": "string" }, "description": { - "description": "Description of the Role", + "description": "Description of the Role.", "type": "string" }, "privileges": { - "description": "Privileges granted to the role.", + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", "type": "array", "items": { "type": "string", @@ -7770,7 +7766,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the role." + "description": "Unique ID or name of the Role." } ], "responses": { @@ -7843,7 +7839,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the role." + "description": "Unique ID or name of the Role." } ], "responses": { @@ -11274,7 +11270,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" } } }, @@ -11325,7 +11321,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." } } }, From 080dede64a847f7589f34475c2f635b009ef242e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 11 Jan 2024 19:52:47 +0000 Subject: [PATCH 109/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ccfca9355..17526ccbc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6452,11 +6452,6 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, - "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true - }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "default": true, @@ -6466,11 +6461,6 @@ "configuration_branch_name": { "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", "type": "string" - }, - "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\nNote: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. \n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true } }, "required": [ @@ -6575,11 +6565,6 @@ "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", "type": "string" }, - "default_branch_name": { - "description": " Use commit_branch_name instead.\n \n\nName of the remote branch where objects from this Thoughtspot instance will be versioned.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by commit_branch_name* ", - "type": "string", - "deprecated": true - }, "enable_guid_mapping": { "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", "type": "boolean", @@ -6588,11 +6573,6 @@ "configuration_branch_name": { "description": "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", "type": "string" - }, - "guid_mapping_branch_name": { - "description": " Use configuration_branch_name instead.\n \n\nName of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n\n\n \n\n*Deprecated from 10.0.0.cl : Replaced by configuration_branch_name*
Version: 9.4.0.cl or later", - "type": "string", - "deprecated": true } } } From 9717f8ed14c9390dd3e7fa9ef90241ae6bacd389 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 15 Jan 2024 04:48:57 +0000 Subject: [PATCH 110/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 191 +++++++++++++++++++++++++++++++- 1 file changed, 187 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 17526ccbc..cac6b406d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3262,8 +3262,13 @@ } }, "jwt_user_options": { - "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options" + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.11.0.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.11.0.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" } }, "required": [ @@ -3392,8 +3397,13 @@ } }, "jwt_user_options": { - "description": "JWT user options to create a JWT token given the payload.", - "$ref": "#/components/schemas/JWT_User_Options_Full" + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.11.0.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.11.0.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" } }, "required": [ @@ -10744,6 +10754,10 @@ "extended_preferences": { "type": "object", "description": "Preferences for the user" + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken" } } }, @@ -12609,6 +12623,175 @@ }, "description": "Metadata objects." }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + } + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + } + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + } + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + } + } + }, + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of object." + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters." + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter." + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts." + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort." + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters." + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter." + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, "Token": { "type": "object", "required": [ From 12c582957e77a542de33de90ea6223379c43a357 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 18 Jan 2024 09:59:54 +0000 Subject: [PATCH 111/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cac6b406d..fe7304b92 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2679,7 +2679,8 @@ "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", - "GCP_MYSQL" + "GCP_MYSQL", + "RDBMS_LOOKER_ML" ] } }, @@ -7174,7 +7175,8 @@ "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", - "GCP_MYSQL" + "GCP_MYSQL", + "RDBMS_LOOKER_ML" ] }, "data_warehouse_config": { @@ -12026,7 +12028,8 @@ "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", - "GCP_MYSQL" + "GCP_MYSQL", + "RDBMS_LOOKER_ML" ], "description": "Type of data warehouse." }, @@ -13466,7 +13469,8 @@ "GCP_SQLSERVER", "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", - "GCP_MYSQL" + "GCP_MYSQL", + "RDBMS_LOOKER_ML" ], "description": "Type of data warehouse." }, From 13d011180f3dbdf8330773d738bf42892f335105 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 20 Jan 2024 07:51:16 +0000 Subject: [PATCH 112/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index fe7304b92..dc3b950b6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2680,6 +2680,7 @@ "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", "GCP_MYSQL", + "MODE", "RDBMS_LOOKER_ML" ] } @@ -7176,6 +7177,7 @@ "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", "GCP_MYSQL", + "MODE", "RDBMS_LOOKER_ML" ] }, @@ -12029,6 +12031,7 @@ "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", "GCP_MYSQL", + "MODE", "RDBMS_LOOKER_ML" ], "description": "Type of data warehouse." @@ -13470,6 +13473,7 @@ "GCP_ALLOYDB_POSTGRESQL", "GCP_POSTGRESQL", "GCP_MYSQL", + "MODE", "RDBMS_LOOKER_ML" ], "description": "Type of data warehouse." From 11c856f8e93ee4afa75d691dfc81ae504f3bc1f9 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 30 Jan 2024 04:51:05 +0000 Subject: [PATCH 113/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index dc3b950b6..6a4c5395d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1721,6 +1721,30 @@ "items": { "$ref": "#/components/schemas/PermissionsMetadataTypeInput" } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] } }, "required": [ From 1d80449dd276979d3fba370fe2ed91a503c0aa82 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Thu, 8 Feb 2024 11:24:52 +0530 Subject: [PATCH 114/410] API matic SDK update - multiple authentication --- api-playground/static/js/embedded.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index 500b94fda..09e0cc7c2 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -1,5 +1,3 @@ - - const navigateEndpoint = (apiResourceId) => { document.location.hash = apiResourceId; }; @@ -52,8 +50,6 @@ const patchURLAndPlayground = async ({ baseUrl, accessToken }) => { const channel = new MessageChannel(); let playgroundConfig = {}; - - function getElementByIdAsync(id) { let maxTime = 2000; const STEP = 16; @@ -87,9 +83,15 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => { return { ...defaultConfig, showFullCode: false, + auth: { + ...defaultConfig.auth, + bearerAuth: { + ...defaultConfig.auth.bearerAuth, + AccessToken: "accessToken", + }, + }, config: { ...defaultConfig.config, - AccessToken: accessToken, "base-url": baseUrl, }, }; From 61b26a51c09fc83105f16760451df432a0178d26 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Fri, 9 Feb 2024 02:49:49 +0530 Subject: [PATCH 115/410] SDK Change Multi auth fix (#129) --- api-playground/static/js/embedded.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index 09e0cc7c2..d8dccd327 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -84,14 +84,13 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => { ...defaultConfig, showFullCode: false, auth: { - ...defaultConfig.auth, bearerAuth: { - ...defaultConfig.auth.bearerAuth, - AccessToken: "accessToken", + AccessToken: accessToken, }, }, config: { ...defaultConfig.config, + AccessToken: accessToken, "base-url": baseUrl, }, }; From f8cfc0186020ccc7c58ffdf4870255f963dccede Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Fri, 9 Feb 2024 02:52:44 +0530 Subject: [PATCH 116/410] Update embedded.js --- api-playground/static/js/embedded.js | 1 - 1 file changed, 1 deletion(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index d8dccd327..9ab4e2331 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -90,7 +90,6 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => { }, config: { ...defaultConfig.config, - AccessToken: accessToken, "base-url": baseUrl, }, }; From f4cfadd6917c2571d4cb0f38d429f7ab714ffed5 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Fri, 9 Feb 2024 02:54:53 +0530 Subject: [PATCH 117/410] Update embedded.js --- api-playground/static/js/embedded.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index 9ab4e2331..17821e32c 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -82,14 +82,10 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => { _setConfig((defaultConfig) => { return { ...defaultConfig, - showFullCode: false, - auth: { - bearerAuth: { - AccessToken: accessToken, - }, - }, + showFullCode: false, config: { ...defaultConfig.config, + AccessToken: accessToken, "base-url": baseUrl, }, }; From 6bb3d1ac20eabae771d8bacaca228509521e3a43 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Tue, 13 Feb 2024 16:05:56 +0530 Subject: [PATCH 118/410] APIMATIC : "useHostedPortalScript": false --- api-playground/APIMATIC-BUILD.json | 1 + 1 file changed, 1 insertion(+) diff --git a/api-playground/APIMATIC-BUILD.json b/api-playground/APIMATIC-BUILD.json index e970b1e80..3c9f9209a 100644 --- a/api-playground/APIMATIC-BUILD.json +++ b/api-playground/APIMATIC-BUILD.json @@ -2,6 +2,7 @@ "$schema": "https://titan.apimatic.io/api/build/schema", "buildFileVersion": "1.0", "generatePortal": { + "useHostedPortalScript": false, "pageTitle": "ThoughtSpot Public Rest APIs", "languageConfig": { "http": {} From 371c3242d1c75bc6b3dc65c65bb35f5972f3022a Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Thu, 15 Feb 2024 17:30:38 +0530 Subject: [PATCH 119/410] Apimatic updates --- api-playground/static/js/embedded.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index 17821e32c..d3632fcbc 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -82,10 +82,14 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => { _setConfig((defaultConfig) => { return { ...defaultConfig, - showFullCode: false, + showFullCode: false, + auth: { + bearerAuth: { + AccessToken: accessToken, + }, + }, config: { ...defaultConfig.config, - AccessToken: accessToken, "base-url": baseUrl, }, }; From a93ff25fdf92c5739a362ebd74c9953ed87af325 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Fri, 16 Feb 2024 17:57:50 +0530 Subject: [PATCH 120/410] Update openapiSpecv3-2_0.json (#132) --- api-spec/openapiSpecv3-2_0.json | 131 +++++++++++++++++++++++++++++++- 1 file changed, 130 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6a4c5395d..a147ae819 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13,6 +13,14 @@ ], "description": "Roles for version 9.0.0.cl" }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, { "name": "9.7.0.cl", "id": "9.7.0.cl", @@ -2388,6 +2396,12 @@ "description": "End time in EPOCH format", "type": "number", "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.11.0.cl", + "default": true, + "type": "boolean", + "nullable": true } }, "required": [ @@ -3626,6 +3640,87 @@ } } }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", @@ -12894,6 +12989,40 @@ }, "description": "JWT user options to create a JWT token given the payload." }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, "ResponseActivationURL": { "type": "object", "properties": { @@ -14509,4 +14638,4 @@ } } ] -} \ No newline at end of file +} From 7591a50ce3f15a823fc0820e847b2c4b55c98ef8 Mon Sep 17 00:00:00 2001 From: Prashant Patil <141843298+yinstardev@users.noreply.github.com> Date: Fri, 28 Jun 2024 14:37:11 +0530 Subject: [PATCH 121/410] update-dev-playground-28Jun2024 (#147) --- api-spec/openapiSpecv3-2_0.json | 473 +++++++++++++++++++++++++++++--- 1 file changed, 431 insertions(+), 42 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a147ae819..9abb45420 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -37,6 +37,22 @@ ], "description": "Roles for version 9.2.0.cl" }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, { "name": "9.9.0.cl", "id": "9.9.0.cl", @@ -268,7 +284,6 @@ "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", "LIVEBOARD_VERIFIER", - "ENABLESPOTAPPCREATION", "PREVIEW_THOUGHTSPOT_SAGE", "APPLICATION_ADMINISTRATION", "SYSTEM_INFO_ADMINISTRATION", @@ -278,7 +293,10 @@ "BILLING_INFO_ADMINISTRATION", "CAN_MANAGE_CUSTOM_CALENDAR", "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -977,7 +995,6 @@ "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", "LIVEBOARD_VERIFIER", - "ENABLESPOTAPPCREATION", "PREVIEW_THOUGHTSPOT_SAGE", "APPLICATION_ADMINISTRATION", "SYSTEM_INFO_ADMINISTRATION", @@ -987,7 +1004,10 @@ "BILLING_INFO_ADMINISTRATION", "CAN_MANAGE_CUSTOM_CALENDAR", "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -1175,6 +1195,12 @@ "type": "boolean", "nullable": true }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, "include_details": { "description": "Includes complete details of the metadata objects.", "default": false, @@ -2035,6 +2061,7 @@ "default": "COMPACT", "type": "string", "enum": [ + "FULL", "COMPACT" ] }, @@ -2161,6 +2188,7 @@ "default": "COMPACT", "type": "string", "enum": [ + "FULL", "COMPACT" ] }, @@ -2275,6 +2303,7 @@ "default": "COMPACT", "type": "string", "enum": [ + "FULL", "COMPACT" ] }, @@ -2398,7 +2427,7 @@ "format": "float" }, "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.11.0.cl", + "description": "Fetch all the logs. This is available from 9.10.5.cl", "default": true, "type": "boolean", "nullable": true @@ -2579,7 +2608,8 @@ "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE" + "LOGICAL_TABLE", + "CUSTOM_ACTION" ] }, "branch_name": { @@ -2719,7 +2749,7 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "RDBMS_LOOKER_ML" + "GOOGLE_SHEETS" ] } }, @@ -2916,7 +2946,12 @@ "CAN_MANAGE_CUSTOM_CALENDAR", "CAN_CREATE_OR_EDIT_CONNECTIONS", "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "CONTROL_TRUSTED_AUTH", + "CAN_CREATE_CATALOG", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -3275,8 +3310,7 @@ "format": "int32" }, "org_id": { - "description": "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.", - "default": 0, + "description": "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.", "type": "integer", "format": "int32" }, @@ -3302,12 +3336,12 @@ } }, "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.11.0.cl : Replaced by user_parameters* ", + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", "$ref": "#/components/schemas/JWT_User_Options", "deprecated": true }, "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.11.0.cl or later", + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", "$ref": "#/components/schemas/User_Parameter_Options" } }, @@ -3410,8 +3444,7 @@ "format": "int32" }, "org_id": { - "description": "ID of the Org context to log in to. If the Org ID is not specified, the user will be logged in to the Org context of their previous login session.", - "default": 0, + "description": "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.", "type": "integer", "format": "int32" }, @@ -3437,12 +3470,12 @@ } }, "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.11.0.cl : Replaced by user_parameters* ", + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", "$ref": "#/components/schemas/JWT_User_Options_Full", "deprecated": true }, "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.11.0.cl or later", + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", "$ref": "#/components/schemas/User_Parameter_Options" } }, @@ -5560,9 +5593,11 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -5727,9 +5762,11 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -6040,6 +6077,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -6151,10 +6194,11 @@ ] }, "export_schema_version": { - "description": "Indicates whether to export worksheet TML in V1 or V2 version.", - "default": "V1", + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", "type": "string", "enum": [ + "DEFAULT", "V1", "V2" ] @@ -6170,6 +6214,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -6238,6 +6288,126 @@ } } }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", @@ -6424,7 +6594,7 @@ "type": "object", "properties": { "metadata_type": { - "description": "Type of metadata.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", "type": "string", "enum": [ "LIVEBOARD", @@ -6433,12 +6603,19 @@ ] }, "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the identifiers should belong to same metadata_type", + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", "type": "array", "items": { "type": "string" } }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, "permissions": { "description": "Permission details for sharing the objects.", "type": "array", @@ -6447,7 +6624,7 @@ } }, "visualization_identifiers": { - "description": "Options to specify details of Liveboard.", + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", "type": "array", "items": { "type": "string" @@ -6484,7 +6661,6 @@ } }, "required": [ - "metadata_identifiers", "permissions", "emails", "message" @@ -7297,7 +7473,7 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "RDBMS_LOOKER_ML" + "GOOGLE_SHEETS" ] }, "data_warehouse_config": { @@ -7451,6 +7627,72 @@ } } }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", @@ -7544,6 +7786,102 @@ } } }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { "post": { "operationId": "fetchConnectionDiffStatus", @@ -7738,7 +8076,11 @@ "LIVEBOARD_VERIFIER", "CAN_MANAGE_CUSTOM_CALENDAR", "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "CAN_CREATE_CATALOG", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } } @@ -7858,7 +8200,11 @@ "LIVEBOARD_VERIFIER", "CAN_MANAGE_CUSTOM_CALENDAR", "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "CAN_CREATE_CATALOG", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } } @@ -8041,7 +8387,8 @@ "type": "string", "enum": [ "CSV", - "PDF" + "PDF", + "XLSX" ] }, "liveboard_options": { @@ -8980,7 +9327,8 @@ "type": "string", "enum": [ "CSV", - "PDF" + "PDF", + "XLSX" ] }, "liveboard_options": { @@ -12151,7 +12499,7 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "RDBMS_LOOKER_ML" + "GOOGLE_SHEETS" ], "description": "Type of data warehouse." }, @@ -12377,7 +12725,12 @@ "CAN_MANAGE_CUSTOM_CALENDAR", "CAN_CREATE_OR_EDIT_CONNECTIONS", "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "CONTROL_TRUSTED_AUTH", + "CAN_CREATE_CATALOG", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, "description": "Privileges granted to the role." @@ -12774,6 +13127,11 @@ "items": { "$ref": "#/components/schemas/User_Parameters" } + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later" } }, "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" @@ -12842,7 +13200,7 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime filters." + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", @@ -12872,7 +13230,7 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime sorts." + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", @@ -12905,7 +13263,7 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the parameters." + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", @@ -13239,9 +13597,11 @@ "SYNCMANAGEMENT", "CAN_CREATE_CATALOG", "DISABLE_PINBOARD_CREATION", - "ENABLESPOTAPPCREATION", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, "description": "Privileges that will be assigned to the group." @@ -13322,7 +13682,10 @@ "ANSWER", "LOGICAL_TABLE", "CONNECTION", - "CUSTOM_ACTION" + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" ], "description": "Type of metadata (Optional when given identifier is ID)." }, @@ -13379,6 +13742,27 @@ }, "description": "MetadataType InputType used in Author API's" }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID)." + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, "SharePermissionsInput": { "type": "object", "required": [ @@ -13416,7 +13800,8 @@ "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE" + "LOGICAL_TABLE", + "CUSTOM_ACTION" ], "description": "Type of metadata." } @@ -13627,7 +14012,7 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "RDBMS_LOOKER_ML" + "GOOGLE_SHEETS" ], "description": "Type of data warehouse." }, @@ -13715,7 +14100,11 @@ "LIVEBOARD_VERIFIER", "CAN_MANAGE_CUSTOM_CALENDAR", "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" + "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "CAN_MANAGE_VERSION_CONTROL", + "THIRDPARTY_ANALYSIS", + "CAN_CREATE_CATALOG", + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, "description": "Privileges granted to the role." From 16796e3896f2d7e0c9aa32421d559ce4711fc6c6 Mon Sep 17 00:00:00 2001 From: Aditya Mittal <114516106+adityamittal3107@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:07:54 +0530 Subject: [PATCH 122/410] Update openapiSpecv3-2_0.json (#153) --- api-spec/openapiSpecv3-2_0.json | 1221 +++++++++++++++++++++---------- 1 file changed, 815 insertions(+), 406 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9abb45420..e9d825418 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -296,7 +296,9 @@ "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -1007,7 +1009,9 @@ "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -2398,7 +2402,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/logs-api#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -2951,7 +2955,9 @@ "THIRDPARTY_ANALYSIS", "CONTROL_TRUSTED_AUTH", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -3895,12 +3901,12 @@ "type": "object" }, "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user", + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", "type": "boolean", "nullable": true }, "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user", + "description": "Flag to indicate whether activation email should be sent to user.", "type": "boolean", "nullable": true } @@ -5111,7 +5117,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5215,7 +5221,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5301,7 +5307,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5597,7 +5603,9 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5766,7 +5774,9 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -8080,7 +8090,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -8204,7 +8216,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -10947,7 +10961,8 @@ "type": "object", "properties": { "error": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -11031,32 +11046,39 @@ }, "author_id": { "type": "string", - "description": "Unique identifier of author of the user." + "description": "Unique identifier of author of the user.", + "nullable": true }, "can_change_password": { "type": "boolean", - "description": "Defines whether the user can change their password." + "description": "Defines whether the user can change their password.", + "nullable": true }, "complete_detail": { "type": "boolean", - "description": "Defines whether the response has complete detail of the user." + "description": "Defines whether the response has complete detail of the user.", + "nullable": true }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the user in milliseconds." + "description": "Creation time of the user in milliseconds.", + "nullable": true }, "current_org": { "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user." + "description": "Current logged-in Org of the user.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the user is deleted." + "description": "Indicates whether the user is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the user is deprecated." + "description": "Indicates whether the user is deprecated.", + "nullable": true }, "account_type": { "type": "string", @@ -11067,7 +11089,8 @@ "OIDC_USER", "REMOTE_USER" ], - "description": "Type of the user account." + "description": "Type of the user account.", + "nullable": true }, "account_status": { "type": "string", @@ -11078,81 +11101,98 @@ "LOCKED", "PENDING" ], - "description": "Status of the user account." + "description": "Status of the user account.", + "nullable": true }, "email": { "type": "string", - "description": "Email of the user." + "description": "Email of the user.", + "nullable": true }, "expiration_time_in_millis": { "type": "number", "format": "float", - "description": "Expiration time of the user in milliseconds." + "description": "Expiration time of the user in milliseconds.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the user is external." + "description": "Indicates whether the user is external.", + "nullable": true }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataItem" }, - "description": "Metadata objects to add to the users' favorites list." + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true }, "first_login_time_in_millis": { "type": "number", "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds." + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true }, "group_mask": { "type": "integer", "format": "int32", - "description": "Group mask of the user." + "description": "Group mask of the user.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the user is hidden." + "description": "Indicates whether the user is hidden.", + "nullable": true }, "home_liveboard": { "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user." + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true }, "incomplete_details": { "type": "object", - "description": "Incomplete details of user if any present." + "description": "Incomplete details of user if any present.", + "nullable": true }, "is_first_login": { "type": "boolean", - "description": "Indicates whether it is first login of the user." + "description": "Indicates whether it is first login of the user.", + "nullable": true }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user in milliseconds." + "description": "Last modified time of the user in milliseconds.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the user." + "description": "Unique identifier of modifier of the user.", + "nullable": true }, "notify_on_share": { "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard." + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true }, "onboarding_experience_completed": { "type": "boolean", - "description": "The user preference for turning off the onboarding experience." + "description": "The user preference for turning off the onboarding experience.", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/Org" }, - "description": "Orgs to which the user belongs." + "description": "Orgs to which the user belongs.", + "nullable": true }, "owner_id": { "type": "string", - "description": "Unique identifier of owner of the user." + "description": "Unique identifier of owner of the user.", + "nullable": true }, "parent_type": { "type": "string", @@ -11160,75 +11200,90 @@ "USER", "GROUP" ], - "description": "Parent type of the user." + "description": "Parent type of the user.", + "nullable": true }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the user." + "description": "Privileges which are assigned to the user.", + "nullable": true }, "show_onboarding_experience": { "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience." + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true }, "super_user": { "type": "boolean", - "description": "Indicates whether the user is a super user." + "description": "Indicates whether the user is a super user.", + "nullable": true }, "system_user": { "type": "boolean", - "description": "Indicates whether the user is a system user." + "description": "Indicates whether the user is a system user.", + "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Tags associated with the user." + "description": "Tags associated with the user.", + "nullable": true }, "tenant_id": { "type": "string", - "description": "Unique identifier of tenant of the user." + "description": "Unique identifier of tenant of the user.", + "nullable": true }, "user_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Groups to which the user is assigned." + "description": "Groups to which the user is assigned.", + "nullable": true }, "user_inherited_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Inherited User Groups which the user is part of." + "description": "Inherited User Groups which the user is part of.", + "nullable": true }, "welcome_email_sent": { "type": "boolean", - "description": "Indicates whether welcome email is sent for the user." + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true }, "org_privileges": { "type": "object", - "description": "Privileges which are assigned to the user with org." + "description": "Privileges which are assigned to the user with org.", + "nullable": true }, "preferred_locale": { "type": "string", - "description": "Locale for the user." + "description": "Locale for the user.", + "nullable": true }, "extended_properties": { "type": "object", - "description": "Properties for the user" + "description": "Properties for the user", + "nullable": true }, "extended_preferences": { "type": "object", - "description": "Preferences for the user" + "description": "Preferences for the user", + "nullable": true }, "user_parameters": { "type": "object", - "description": "User Parameters which are specified for the user via JWToken" + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true } } }, @@ -11289,11 +11344,13 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object." + "description": "The unique identifier of the object.", + "nullable": true }, "name": { "type": "string", - "description": "Name of the object." + "description": "Name of the object.", + "nullable": true } }, "description": "The object representation with ID and Name." @@ -11303,7 +11360,8 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata object." + "description": "Unique ID or name of the metadata object.", + "nullable": true }, "type": { "type": "string", @@ -11311,7 +11369,8 @@ "LIVEBOARD", "ANSWER" ], - "description": "Type of metadata object." + "description": "Type of metadata object.", + "nullable": true } } }, @@ -11327,7 +11386,8 @@ "CREATED", "MODIFIED" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -11335,7 +11395,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -11345,97 +11406,120 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "name": { "type": "string", - "description": "Name of the cluster." + "description": "Name of the cluster.", + "nullable": true }, "release_version": { "type": "string", - "description": "The release version of the cluster." + "description": "The release version of the cluster.", + "nullable": true }, "time_zone": { "type": "string", - "description": "The timezone of the cluster." + "description": "The timezone of the cluster.", + "nullable": true }, "locale": { "type": "string", - "description": "The default locale of the cluster." + "description": "The default locale of the cluster.", + "nullable": true }, "date_format": { "type": "string", - "description": "The default date format representation of the cluster." + "description": "The default date format representation of the cluster.", + "nullable": true }, "api_version": { "type": "string", - "description": "The API version of the cluster." + "description": "The API version of the cluster.", + "nullable": true }, "type": { "type": "string", - "description": "The deployment type of the cluster." + "description": "The deployment type of the cluster.", + "nullable": true }, "environment": { "type": "string", - "description": "The deployed environment of the cluster." + "description": "The deployed environment of the cluster.", + "nullable": true }, "license": { "type": "string", - "description": "The license applied to the cluster." + "description": "The license applied to the cluster.", + "nullable": true }, "date_time_format": { "type": "string", - "description": "The default date time format representation of the cluster." + "description": "The default date time format representation of the cluster.", + "nullable": true }, "time_format": { "type": "string", - "description": "The default time format representation of the cluster." + "description": "The default time format representation of the cluster.", + "nullable": true }, "system_user_id": { "type": "string", - "description": "The unique identifier of system user." + "description": "The unique identifier of system user.", + "nullable": true }, "super_user_id": { "type": "string", - "description": "The unique identifier of super user." + "description": "The unique identifier of super user.", + "nullable": true }, "hidden_object_id": { "type": "string", - "description": "The unique identifier of hidden object." + "description": "The unique identifier of hidden object.", + "nullable": true }, "system_group_id": { "type": "string", - "description": "The unique identifier of system group." + "description": "The unique identifier of system group.", + "nullable": true }, "tsadmin_user_id": { "type": "string", - "description": "The unique identifier of tsadmin user." + "description": "The unique identifier of tsadmin user.", + "nullable": true }, "admin_group_id": { "type": "string", - "description": "The unique identifier of admin group." + "description": "The unique identifier of admin group.", + "nullable": true }, "all_tables_connection_id": { "type": "string", - "description": "The unique identifier of all tables connection." + "description": "The unique identifier of all tables connection.", + "nullable": true }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL group." + "description": "The unique identifier of ALL group.", + "nullable": true }, "accept_language": { "type": "string", - "description": "The supported accept language by the cluster." + "description": "The supported accept language by the cluster.", + "nullable": true }, "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL group." + "description": "The count of users of ALL group.", + "nullable": true }, "logical_model_version": { "type": "integer", "format": "int32", - "description": "The version number of logical model of the cluster." + "description": "The version number of logical model of the cluster.", + "nullable": true } } }, @@ -11443,7 +11527,8 @@ "type": "object", "properties": { "onboarding_content_url": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -11453,11 +11538,13 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the Org." + "description": "Unique identifier of the Org.", + "nullable": true }, "name": { "type": "string", - "description": "Name of the Org." + "description": "Name of the Org.", + "nullable": true }, "status": { "type": "string", @@ -11465,11 +11552,13 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the Org." + "description": "Status of the Org.", + "nullable": true }, "description": { "type": "string", - "description": "Description of the Org." + "description": "Description of the Org.", + "nullable": true }, "visibility": { "type": "string", @@ -11477,7 +11566,8 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the Org." + "description": "Visibility of the Org.", + "nullable": true } } }, @@ -11495,36 +11585,46 @@ "type": "string" }, "color": { - "type": "string" + "type": "string", + "nullable": true }, "deleted": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "hidden": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "external": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "deprecated": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "creation_time_in_millis": { "type": "number", - "format": "float" + "format": "float", + "nullable": true }, "modification_time_in_millis": { "type": "number", - "format": "float" + "format": "float", + "nullable": true }, "author_id": { - "type": "string" + "type": "string", + "nullable": true }, "modifier_id": { - "type": "string" + "type": "string", + "nullable": true }, "owner_id": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -11539,39 +11639,47 @@ "properties": { "author_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the group." + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true }, "content": { "type": "object", - "description": "Content details of the group" + "description": "Content details of the group", + "nullable": true }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the group in milliseconds" + "description": "Creation time of the group in milliseconds", + "nullable": true }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards that are assigned as default Liveboards to the group." + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the group is deleted" + "description": "Indicates whether the group is deleted", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the group is deprecated" + "description": "Indicates whether the group is deprecated", + "nullable": true }, "description": { "type": "string", - "description": "Description of the group" + "description": "Description of the group", + "nullable": true }, "display_name": { "type": "string", @@ -11579,16 +11687,19 @@ }, "external": { "type": "boolean", - "description": "Indicates whether the group is external" + "description": "Indicates whether the group is external", + "nullable": true }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the group" + "description": "Generation number of the group", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the group is hidden" + "description": "Indicates whether the group is hidden", + "nullable": true }, "id": { "type": "string", @@ -11597,26 +11708,31 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the group" + "description": "Index number of the group", + "nullable": true }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the group" + "description": "Index version number of the group", + "nullable": true }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the group" + "description": "Metadata version number of the group", + "nullable": true }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the group in milliseconds." + "description": "Last modified time of the group in milliseconds.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "name": { "type": "string", @@ -11627,11 +11743,13 @@ "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which group exists." + "description": "Orgs in which group exists.", + "nullable": true }, "owner_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "parent_type": { "type": "string", @@ -11639,32 +11757,37 @@ "USER", "GROUP" ], - "description": "Parent type of the group." + "description": "Parent type of the group.", + "nullable": true }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the group" + "description": "Privileges which are assigned to the group", + "nullable": true }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Groups who are part of the group" + "description": "Groups who are part of the group", + "nullable": true }, "system_group": { "type": "boolean", - "description": "Indicates whether the group is a system group." + "description": "Indicates whether the group is a system group.", + "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the group." + "description": "Tags associated with the group.", + "nullable": true }, "type": { "type": "string", @@ -11672,14 +11795,16 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group." + "description": "Type of the group.", + "nullable": true }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the group." + "description": "Users who are part of the group.", + "nullable": true }, "visibility": { "type": "string", @@ -11694,7 +11819,8 @@ "items": { "$ref": "#/components/schemas/Role" }, - "description": "List of roles assgined to the user" + "description": "List of roles assgined to the user", + "nullable": true } } }, @@ -11703,11 +11829,13 @@ "properties": { "id": { "type": "string", - "description": "id of the role" + "description": "id of the role", + "nullable": true }, "name": { "type": "string", - "description": "name of the role" + "description": "name of the role", + "nullable": true } } }, @@ -11716,11 +11844,13 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata.", + "nullable": true }, "name_pattern": { "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true }, "type": { "type": "string", @@ -11733,9 +11863,11 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true } } }, @@ -11784,9 +11916,10 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" } } }, @@ -11796,14 +11929,16 @@ "include": { "type": "boolean", "default": false, - "description": "Includes objects marked as favorite for the specified users." + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true } }, "description": "Favorite object options." @@ -11823,7 +11958,8 @@ "FAVORITES", "LAST_ACCESSED" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -11831,7 +11967,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -11844,11 +11981,13 @@ "properties": { "metadata_id": { "type": "string", - "description": "Unique identifier of the metadata." + "description": "Unique identifier of the metadata.", + "nullable": true }, "metadata_name": { "type": "string", - "description": "Name of the metadata." + "description": "Name of the metadata.", + "nullable": true }, "metadata_type": { "type": "string", @@ -11867,33 +12006,39 @@ }, "dependent_objects": { "type": "object", - "description": "Details of dependent objects of the metadata objects." + "description": "Details of dependent objects of the metadata objects.", + "nullable": true }, "incomplete_objects": { "type": "array", "items": { "type": "object" }, - "description": "Details of incomplete information of the metadata objects if any." + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true }, "metadata_detail": { "type": "object", - "description": "Complete details of the metadata objects." + "description": "Complete details of the metadata objects.", + "nullable": true }, "metadata_header": { "type": "object", - "description": "Header information of the metadata objects." + "description": "Header information of the metadata objects.", + "nullable": true }, "visualization_headers": { "type": "array", "items": { "type": "object" }, - "description": "Visualization header information of the metadata objects." + "description": "Visualization header information of the metadata objects.", + "nullable": true }, "stats": { "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed." + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true } }, "description": "Metadata Search Response Object." @@ -11968,22 +12113,26 @@ "include_cover_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", "default": true, - "description": "Indicates whether to include page number in the footer of each page." + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", @@ -11992,16 +12141,19 @@ "LANDSCAPE" ], "default": "PORTRAIT", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "truncate_table": { "type": "boolean", "default": false, - "description": "Indicates whether to include only the first page of the tables." + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true } } }, @@ -12011,12 +12163,14 @@ "include_cover_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true }, "include_filter_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true } } }, @@ -12024,7 +12178,8 @@ "type": "object", "properties": { "principal_permission_details": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -12032,7 +12187,8 @@ "type": "object", "properties": { "metadata_permission_details": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -12052,7 +12208,8 @@ "USER", "USER_GROUP" ], - "description": "Principal type." + "description": "Principal type.", + "nullable": true } } }, @@ -12071,7 +12228,8 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata object." + "description": "Type of metadata object.", + "nullable": true }, "identifier": { "type": "string", @@ -12227,11 +12385,13 @@ }, "visualization_id": { "type": "string", - "description": "Unique ID of the visualization." + "description": "Unique ID of the visualization.", + "nullable": true }, "visualization_name": { "type": "string", - "description": "Name of the visualization." + "description": "Name of the visualization.", + "nullable": true } } }, @@ -12283,34 +12443,41 @@ "properties": { "repository_url": { "type": "string", - "description": "Remote repository URL configured" + "description": "Remote repository URL configured", + "nullable": true }, "username": { "type": "string", - "description": "Username to authenticate connection to the version control system" + "description": "Username to authenticate connection to the version control system", + "nullable": true }, "commit_branch_name": { "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true }, "branches": { "type": "array", "items": { "type": "string" }, - "description": "Branches that have been pulled in local repository" + "description": "Branches that have been pulled in local repository", + "nullable": true }, "enable_guid_mapping": { "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance" + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true }, "configuration_branch_name": { "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the Org" + "description": "Details of the Org", + "nullable": true } } }, @@ -12356,11 +12523,13 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer" + "description": "Email id of the committer", + "nullable": true }, "username": { "type": "string", - "description": "Username of the committer" + "description": "Username of the committer", + "nullable": true } } }, @@ -12369,11 +12538,13 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer" + "description": "Email id of the committer", + "nullable": true }, "username": { "type": "string", - "description": "Username of the committer" + "description": "Username of the committer", + "nullable": true } } }, @@ -12382,18 +12553,21 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the connection." + "description": "Unique ID or name of the connection.", + "nullable": true }, "name_pattern": { "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true }, "data_warehouse_objects": { "type": "array", "items": { "$ref": "#/components/schemas/DataWarehouseObjectInput" }, - "description": "Filter options for databases, schemas, tables and columns." + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true } } }, @@ -12402,19 +12576,23 @@ "properties": { "database": { "type": "string", - "description": "Name of the database." + "description": "Name of the database.", + "nullable": true }, "schema": { "type": "string", - "description": "Name of the schema within the database." + "description": "Name of the schema within the database.", + "nullable": true }, "table": { "type": "string", - "description": "Name of the table within the schema." + "description": "Name of the table within the schema.", + "nullable": true }, "column": { "type": "string", - "description": "Name of the column within the table." + "description": "Name of the column within the table.", + "nullable": true } } }, @@ -12435,7 +12613,8 @@ "USER_STATE", "ROW_COUNT" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -12443,7 +12622,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } } }, @@ -12465,7 +12645,8 @@ }, "description": { "type": "string", - "description": "Description of the connection." + "description": "Description of the connection.", + "nullable": true }, "data_warehouse_type": { "type": "string", @@ -12505,11 +12686,13 @@ }, "data_warehouse_objects": { "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects" + "description": "List of Data warehouse objects", + "nullable": true }, "details": { "type": "object", - "description": "Details of the connection." + "description": "Details of the connection.", + "nullable": true } } }, @@ -12543,11 +12726,13 @@ "items": { "$ref": "#/components/schemas/SchemaObject" }, - "description": "Schemas of the database." + "description": "Schemas of the database.", + "nullable": true }, "auto_created": { "type": "boolean", - "description": "Determines if the object is auto created." + "description": "Determines if the object is auto created.", + "nullable": true } } }, @@ -12566,7 +12751,8 @@ "items": { "$ref": "#/components/schemas/Table" }, - "description": "Tables in the schema." + "description": "Tables in the schema.", + "nullable": true } } }, @@ -12585,30 +12771,36 @@ "items": { "$ref": "#/components/schemas/Column" }, - "description": "Columns of the table." + "description": "Columns of the table.", + "nullable": true }, "type": { "type": "string", - "description": "Type of table. Either view or table" + "description": "Type of table. Either view or table", + "nullable": true }, "description": { "type": "string", - "description": "Description of the table" + "description": "Description of the table", + "nullable": true }, "selected": { "type": "boolean", - "description": "Determines if the table is selected" + "description": "Determines if the table is selected", + "nullable": true }, "linked": { "type": "boolean", - "description": "Determines if the table is linked" + "description": "Determines if the table is linked", + "nullable": true }, "relationships": { "type": "array", "items": { "type": "object" }, - "description": "List of relationships for the table" + "description": "List of relationships for the table", + "nullable": true } } }, @@ -12629,19 +12821,23 @@ }, "is_aggregate": { "type": "string", - "description": "Determines if the column schema is an aggregate" + "description": "Determines if the column schema is an aggregate", + "nullable": true }, "can_import": { "type": "boolean", - "description": "Determines if the column schema can be imported" + "description": "Determines if the column schema can be imported", + "nullable": true }, "selected": { "type": "boolean", - "description": "Determines if the table is selected" + "description": "Determines if the table is selected", + "nullable": true }, "is_linked_active": { "type": "boolean", - "description": "Determines if the table is linked" + "description": "Determines if the table is linked", + "nullable": true } } }, @@ -12669,21 +12865,24 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role" + "description": "number of groups assigned with this role", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists." + "description": "Orgs in which role exists.", + "nullable": true }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role" + "description": "Details of groups assigned with this role", + "nullable": true }, "privileges": { "type": "array", @@ -12730,7 +12929,9 @@ "THIRDPARTY_ANALYSIS", "CONTROL_TRUSTED_AUTH", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -12742,43 +12943,53 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role" + "description": "Permission details of the Role", + "nullable": true }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role." + "description": "Unique identifier of author of the role.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role." + "description": "Unique identifier of modifier of the role.", + "nullable": true }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds." + "description": "Creation time of the role in milliseconds.", + "nullable": true }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds." + "description": "Last modified time of the role in milliseconds.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted." + "description": "Indicates whether the role is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated." + "description": "Indicates whether the role is deprecated.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the role is external." + "description": "Indicates whether the role is external.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden." + "description": "Indicates whether the role is hidden.", + "nullable": true }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "description": "Indicates whether the role is shared via connection", + "nullable": true } }, "description": "Response for search role api should handle hidden privileges as well." @@ -12788,7 +12999,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -12819,7 +13031,8 @@ "items": { "$ref": "#/components/schemas/Metadata_Association_Item" }, - "description": "Metadata objects to assign the the custom action to." + "description": "Metadata objects to assign the the custom action to.", + "nullable": true }, "name": { "type": "string", @@ -12830,7 +13043,8 @@ "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Unique ID or name of the User groups which are associated with the custom action." + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true } }, "description": "Custom action details" @@ -12840,11 +13054,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Type and Configuration for Custom Actions" @@ -12854,7 +13070,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -12867,14 +13084,16 @@ "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItem" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", @@ -12882,7 +13101,8 @@ }, "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true } }, "description": "URL Custom Action Type" @@ -12892,19 +13112,23 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true } }, "description": "Authorization type for the custom action." @@ -12914,11 +13138,13 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name" + "description": "Enter your key name", + "nullable": true }, "value": { "type": "string", - "description": "Enter you key value" + "description": "Enter you key value", + "nullable": true } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -12928,11 +13154,13 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication" + "description": "Password for the basic authentication", + "nullable": true }, "username": { "type": "string", - "description": "Username for the basic authentication" + "description": "Username for the basic authentication", + "nullable": true } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -12942,11 +13170,13 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter" + "description": "Key for the url query parameter", + "nullable": true }, "value": { "type": "string", - "description": "Value for the url query parameter" + "description": "Value for the url query parameter", + "nullable": true } } }, @@ -12955,7 +13185,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -12987,11 +13218,13 @@ "properties": { "position": { "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object" @@ -13009,7 +13242,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata object." + "description": "Type of metadata object.", + "nullable": true }, "identifier": { "type": "string", @@ -13022,10 +13256,12 @@ "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "nullable": true }, "name": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -13033,10 +13269,12 @@ "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "nullable": true }, "name": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -13062,7 +13300,8 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Metadata_Object" - } + }, + "nullable": true } }, "description": "JWT user options to create a JWT token given the payload." @@ -13072,15 +13311,18 @@ "properties": { "runtime_filter": { "type": "object", - "description": "Runtime filter parameter type in JWT." + "description": "Runtime filter parameter type in JWT.", + "nullable": true }, "runtime_sort": { "type": "object", - "description": "Runtime sort parameter type in JWT." + "description": "Runtime sort parameter type in JWT.", + "nullable": true }, "runtime_param_override": { "type": "object", - "description": "Runtime param override type in JWT." + "description": "Runtime param override type in JWT.", + "nullable": true } }, "description": "List of runtime parameters need to set during the session." @@ -13089,14 +13331,16 @@ "type": "object", "properties": { "identifier": { - "type": "string" + "type": "string", + "nullable": true }, "type": { "type": "string", "enum": [ "LIVEBOARD", "ANSWER" - ] + ], + "nullable": true } }, "description": "Metadata objects." @@ -13108,30 +13352,35 @@ "type": "array", "items": { "$ref": "#/components/schemas/User_Object" - } + }, + "nullable": true }, "runtime_filters": { "type": "array", "items": { "$ref": "#/components/schemas/User_Runtime_Filters" - } + }, + "nullable": true }, "runtime_sorts": { "type": "array", "items": { "$ref": "#/components/schemas/User_Runtime_Sorts" - } + }, + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/User_Parameters" - } + }, + "nullable": true }, "compress": { "type": "boolean", "default": false, - "description": " Version: 9.12.0.cl or later" + "description": " Version: 9.12.0.cl or later", + "nullable": true } }, "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" @@ -13149,7 +13398,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of object." + "description": "Type of object.", + "nullable": true }, "identifier": { "type": "string", @@ -13200,14 +13450,16 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later" + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime filter." + "description": "Object to apply the runtime filter.", + "nullable": true } }, "description": "Objects to apply the User_Runtime_Filters." @@ -13217,7 +13469,8 @@ "properties": { "column_name": { "type": "string", - "description": "The column name to apply filter." + "description": "The column name to apply filter.", + "nullable": true }, "order": { "type": "string", @@ -13225,19 +13478,22 @@ "ASC", "DESC" ], - "description": "Order for the sort." + "description": "Order for the sort.", + "nullable": true }, "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later" + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime sort." + "description": "Object to apply the runtime sort.", + "nullable": true } }, "description": "Objects to apply the User_Runtime_Sorts." @@ -13263,14 +13519,16 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later" + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime parameter." + "description": "Object to apply the runtime parameter.", + "nullable": true } }, "description": "Objects to apply the Runtime_Parameters." @@ -13327,11 +13585,13 @@ "org_id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the metadata." + "description": "Unique identifier of the metadata.", + "nullable": true }, "metadata_id": { "type": "string", - "description": "Unique identifier of the Org." + "description": "Unique identifier of the Org.", + "nullable": true } } }, @@ -13342,7 +13602,8 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Parameter" - } + }, + "nullable": true } }, "description": "JWT user options to create a JWT token given the payload." @@ -13386,7 +13647,8 @@ "properties": { "activation_link": { "type": "string", - "description": "Activation link to activate the user." + "description": "Activation link to activate the user.", + "nullable": true } }, "description": "The object representation with activation link." @@ -13408,7 +13670,8 @@ }, "password": { "type": "string", - "description": "Password of the user." + "description": "Password of the user.", + "nullable": true }, "account_type": { "type": "string", @@ -13420,7 +13683,8 @@ "REMOTE_USER" ], "default": "LOCAL_USER", - "description": "Type of the user account." + "description": "Type of the user account.", + "nullable": true }, "account_status": { "type": "string", @@ -13432,25 +13696,29 @@ "PENDING" ], "default": "ACTIVE", - "description": "Status of the user account." + "description": "Status of the user account.", + "nullable": true }, "email": { "type": "string", - "description": "Email address of the user." + "description": "Email address of the user.", + "nullable": true }, "org_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the Orgs to which the user belongs." + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true }, "group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the groups to which the user belongs." + "description": "ID or name of the groups to which the user belongs.", + "nullable": true }, "visibility": { "type": "string", @@ -13458,31 +13726,37 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true }, "notify_on_share": { "type": "boolean", "default": true, - "description": "Notify user when other users or groups share metadata objects" + "description": "Notify user when other users or groups share metadata objects", + "nullable": true }, "show_onboarding_experience": { "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs" + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true }, "onboarding_experience_completed": { "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs" + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true }, "home_liveboard_identifier": { "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user." + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" }, - "description": "Metadata objects to add to the user's favorites list." + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true } } }, @@ -13493,19 +13767,22 @@ "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true }, "users_updated": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true }, "users_deleted": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true } } }, @@ -13517,7 +13794,8 @@ "properties": { "id": { "type": "string", - "description": "Unique identifier of the user." + "description": "Unique identifier of the user.", + "nullable": true }, "name": { "type": "string", @@ -13540,7 +13818,8 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true }, "identifier": { "type": "string", @@ -13568,11 +13847,13 @@ "items": { "type": "string" }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true }, "description": { "type": "string", - "description": "Description of the group." + "description": "Description of the group.", + "nullable": true }, "privileges": { "type": "array", @@ -13601,17 +13882,21 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] }, - "description": "Privileges that will be assigned to the group." + "description": "Privileges that will be assigned to the group.", + "nullable": true }, "sub_group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the sub-groups to add to the group." + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true }, "type": { "type": "string", @@ -13619,14 +13904,16 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group." + "description": "Type of the group.", + "nullable": true }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users to assign to the group." + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true }, "visibility": { "type": "string", @@ -13634,7 +13921,8 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true } } }, @@ -13687,7 +13975,8 @@ "USER_GROUP", "ROLE" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true }, "identifier": { "type": "string", @@ -13711,7 +14000,8 @@ "LOGICAL_COLUMN", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true }, "identifier": { "type": "string", @@ -13733,7 +14023,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true }, "identifier": { "type": "string", @@ -13755,7 +14046,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true }, "identifier": { "type": "string", @@ -13803,7 +14095,8 @@ "LOGICAL_TABLE", "CUSTOM_ACTION" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true } } }, @@ -13812,34 +14105,41 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" + "description": "Repository user using which changes were committed", + "nullable": true }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" + "description": "Thoughtspot user who commits the changes", + "nullable": true }, "comment": { "type": "string", - "description": "Comments associated with the commit" + "description": "Comments associated with the commit", + "nullable": true }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed." + "description": "Time at which the changes were committed.", + "nullable": true }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit" + "description": "SHA id associated with the commit", + "nullable": true }, "branch": { "type": "string", - "description": "Branch where changes were committed" + "description": "Branch where changes were committed", + "nullable": true }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit" + "description": "Files that were pushed as part of this commit", + "nullable": true } } }, @@ -13860,7 +14160,8 @@ }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Any error or warning with the deployment", + "nullable": true } } }, @@ -13869,41 +14170,49 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" + "description": "Repository user using which changes were committed", + "nullable": true }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" + "description": "Thoughtspot user who commits the changes", + "nullable": true }, "comment": { "type": "string", - "description": "Comments associated with the commit" + "description": "Comments associated with the commit", + "nullable": true }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed." + "description": "Time at which the changes were committed.", + "nullable": true }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit" + "description": "SHA id associated with the commit", + "nullable": true }, "branch": { "type": "string", - "description": "Branch where changes were committed" + "description": "Branch where changes were committed", + "nullable": true }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit" + "description": "Files that were pushed as part of this commit", + "nullable": true }, "reverted_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/RevertedMetadata" }, - "description": "Metadata of reverted file of this commit" + "description": "Metadata of reverted file of this commit", + "nullable": true } } }, @@ -13944,23 +14253,28 @@ "properties": { "file_name": { "type": "string", - "description": "Name of the file deployed" + "description": "Name of the file deployed", + "nullable": true }, "metadata_name": { "type": "string", - "description": "Name of the metadata object" + "description": "Name of the metadata object", + "nullable": true }, "metadata_type": { "type": "string", - "description": "Type of the metadata object" + "description": "Type of the metadata object", + "nullable": true }, "status_code": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Indicates the status of deployment for the file", + "nullable": true }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Any error or warning with the deployment", + "nullable": true } } }, @@ -14018,7 +14332,8 @@ }, "details": { "type": "object", - "description": "Details of the connection." + "description": "Details of the connection.", + "nullable": true } } }, @@ -14027,7 +14342,8 @@ "properties": { "status": { "type": "boolean", - "description": "Status of the connection diff." + "description": "Status of the connection diff.", + "nullable": true } } }, @@ -14055,21 +14371,24 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role" + "description": "number of groups assigned with this role", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists." + "description": "Orgs in which role exists.", + "nullable": true }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role" + "description": "Details of groups assigned with this role", + "nullable": true }, "privileges": { "type": "array", @@ -14104,7 +14423,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -14116,43 +14437,53 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role" + "description": "Permission details of the Role", + "nullable": true }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role." + "description": "Unique identifier of author of the role.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role." + "description": "Unique identifier of modifier of the role.", + "nullable": true }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds." + "description": "Creation time of the role in milliseconds.", + "nullable": true }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds." + "description": "Last modified time of the role in milliseconds.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted." + "description": "Indicates whether the role is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated." + "description": "Indicates whether the role is deprecated.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the role is external." + "description": "Indicates whether the role is external.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden." + "description": "Indicates whether the role is hidden.", + "nullable": true }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "description": "Indicates whether the role is shared via connection", + "nullable": true } } }, @@ -14177,42 +14508,51 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard." + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size." + "description": "Page size.", + "nullable": true }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "description": "Indicates whether to include only first page of the tables.", + "nullable": true } }, "description": "Options for PDF export." @@ -14276,14 +14616,16 @@ "items": { "type": "string" }, - "description": "Emails of the recipients." + "description": "Emails of the recipients.", + "nullable": true }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItemInput" }, - "description": "User or groups to be set as recipients of the schedule notifications." + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true } }, "description": "Recipients of the scheduled job notification." @@ -14329,7 +14671,8 @@ }, "description": { "type": "string", - "description": "Description of the job." + "description": "Description of the job.", + "nullable": true }, "file_format": { "type": "string", @@ -14345,7 +14688,8 @@ }, "liveboard_options": { "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard." + "description": "Options to specify details of Liveboard.", + "nullable": true }, "metadata": { "$ref": "#/components/schemas/MetadataResponse", @@ -14357,7 +14701,8 @@ }, "pdf_options": { "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export." + "description": "Options for PDF export.", + "nullable": true }, "recipient_details": { "$ref": "#/components/schemas/RecipientDetails", @@ -14365,7 +14710,8 @@ }, "status": { "type": "string", - "description": "Status of the job" + "description": "Status of the job", + "nullable": true }, "time_zone": { "type": "string", @@ -14376,7 +14722,8 @@ "items": { "$ref": "#/components/schemas/ResponseScheduleRun" }, - "description": "Schedule runs history records." + "description": "Schedule runs history records.", + "nullable": true } } }, @@ -14473,7 +14820,8 @@ ], "properties": { "name": { - "type": "string" + "type": "string", + "nullable": true }, "id": { "type": "string" @@ -14491,42 +14839,51 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard." + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size." + "description": "Page size.", + "nullable": true }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "description": "Indicates whether to include only first page of the tables.", + "nullable": true } }, "description": "Options for PDF export." @@ -14539,14 +14896,16 @@ "items": { "type": "string" }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItem" }, - "description": "List of user or groups to subscribe for the scheduled job notifications." + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } }, "description": "Recipient configuration which includes email address, ID or name of the users and groups." @@ -14597,7 +14956,8 @@ }, "detail": { "type": "string", - "description": "Message details related to the schedule run." + "description": "Message details related to the schedule run.", + "nullable": true } }, "description": "Schedule run response object" @@ -14606,13 +14966,15 @@ "type": "object", "properties": { "identifier": { - "type": "string" + "type": "string", + "nullable": true }, "type": { "type": "string", "enum": [ "LIVEBOARD" - ] + ], + "nullable": true } } }, @@ -14621,11 +14983,13 @@ "properties": { "field_name": { "type": "string", - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -14636,19 +15000,22 @@ "include_history_runs": { "type": "boolean", "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification." + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true }, "record_size": { "type": "integer", "format": "int32", "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true }, "record_offset": { "type": "integer", "format": "int32", "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched." + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true } } }, @@ -14657,11 +15024,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" @@ -14671,7 +15040,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -14684,14 +15054,16 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", @@ -14699,7 +15071,8 @@ }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name", + "nullable": true } }, "description": "URL Custom Action Type" @@ -14709,19 +15082,23 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true } }, "description": "Authorization type for the custom action." @@ -14731,11 +15108,13 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name" + "description": "Enter your key name", + "nullable": true }, "value": { "type": "string", - "description": "Enter you key value" + "description": "Enter you key value", + "nullable": true } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -14745,11 +15124,13 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication" + "description": "Password for the basic authentication", + "nullable": true }, "username": { "type": "string", - "description": "Username for the basic authentication" + "description": "Username for the basic authentication", + "nullable": true } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -14759,11 +15140,13 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter" + "description": "Key for the url query parameter", + "nullable": true }, "value": { "type": "string", - "description": "Value for the url query parameter" + "description": "Value for the url query parameter", + "nullable": true } } }, @@ -14775,7 +15158,8 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object" + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, "identifier": { "type": "string", @@ -14788,7 +15172,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true } } }, @@ -14803,12 +15188,14 @@ "CONTEXT_MENU" ], "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -14819,7 +15206,8 @@ "visibility": { "type": "boolean", "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true } }, "description": "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." @@ -14829,11 +15217,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." @@ -14843,7 +15233,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -14853,22 +15244,26 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Request Url for the Custom action.", + "nullable": true }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name", + "nullable": true } }, "description": "URL Custom Action Type" @@ -14878,11 +15273,13 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object" + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata.", + "nullable": true }, "type": { "type": "string", @@ -14891,7 +15288,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true } } }, @@ -14905,11 +15303,13 @@ "PRIMARY", "CONTEXT_MENU" ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -14919,7 +15319,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -14937,7 +15338,8 @@ }, "model_path": { "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true }, "tables": { "type": "array", @@ -14952,25 +15354,32 @@ "type": "object", "properties": { "dbt_connection_identifier": { - "type": "string" + "type": "string", + "nullable": true }, "project_name": { - "type": "string" + "type": "string", + "nullable": true }, "connection_id": { - "type": "string" + "type": "string", + "nullable": true }, "connection_name": { - "type": "string" + "type": "string", + "nullable": true }, "cdw_database": { - "type": "string" + "type": "string", + "nullable": true }, "import_type": { - "type": "string" + "type": "string", + "nullable": true }, "author_name": { - "type": "string" + "type": "string", + "nullable": true } } }, From 425d01a4a3b658571195664b54f408604eb1de8b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 07:07:38 +0000 Subject: [PATCH 123/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e9d825418..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -15436,4 +15436,4 @@ } } ] -} +} \ No newline at end of file From 2677e5a7818ae2c9c790ad315cbb10670a38b4f4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 10:04:44 +0000 Subject: [PATCH 124/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..14b62259c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,7 +298,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -1011,7 +1012,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -2957,7 +2959,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5605,7 +5608,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5776,7 +5780,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -8092,7 +8097,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8218,7 +8224,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -12931,7 +12938,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -13884,7 +13892,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges that will be assigned to the group.", @@ -14425,7 +14434,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." From eb97911484191dd86bdd0bc3f49c8dfc4e03d973 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 10:10:19 +0000 Subject: [PATCH 125/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 14b62259c..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,8 +298,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -1012,8 +1011,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -2959,8 +2957,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5608,8 +5605,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5780,8 +5776,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -8097,8 +8092,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -8224,8 +8218,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -12938,8 +12931,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -13892,8 +13884,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges that will be assigned to the group.", @@ -14434,8 +14425,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." From 7d5355bb28f63010df8c9d0c15380bca4111f96e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 12:14:24 +0000 Subject: [PATCH 126/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..14b62259c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,7 +298,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -1011,7 +1012,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -2957,7 +2959,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5605,7 +5608,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5776,7 +5780,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -8092,7 +8097,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8218,7 +8224,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -12931,7 +12938,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -13884,7 +13892,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges that will be assigned to the group.", @@ -14425,7 +14434,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." From 8fa4578e6e6d9464517ea7fd7c9d938908da6aa3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 12:33:11 +0000 Subject: [PATCH 127/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1231 ++++++++++--------------------- 1 file changed, 406 insertions(+), 825 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 14b62259c..38a0c32ec 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -296,10 +296,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -1010,10 +1007,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -2404,7 +2398,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/logs-api#_security_events).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -2957,10 +2951,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -3904,12 +3895,12 @@ "type": "object" }, "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "description": "Flag to indicate whether welcome email should be sent to user", "type": "boolean", "nullable": true }, "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", + "description": "Flag to indicate whether activation email should be sent to user", "type": "boolean", "nullable": true } @@ -5120,7 +5111,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5224,7 +5215,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5310,7 +5301,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5606,10 +5597,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -5778,10 +5766,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -8095,10 +8080,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } } @@ -8222,10 +8204,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } } @@ -10968,8 +10947,7 @@ "type": "object", "properties": { "error": { - "type": "object", - "nullable": true + "type": "object" } } }, @@ -11053,39 +11031,32 @@ }, "author_id": { "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true + "description": "Unique identifier of author of the user." }, "can_change_password": { "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true + "description": "Defines whether the user can change their password." }, "complete_detail": { "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true + "description": "Defines whether the response has complete detail of the user." }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true + "description": "Creation time of the user in milliseconds." }, "current_org": { "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true + "description": "Current logged-in Org of the user." }, "deleted": { "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true + "description": "Indicates whether the user is deleted." }, "deprecated": { "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true + "description": "Indicates whether the user is deprecated." }, "account_type": { "type": "string", @@ -11096,8 +11067,7 @@ "OIDC_USER", "REMOTE_USER" ], - "description": "Type of the user account.", - "nullable": true + "description": "Type of the user account." }, "account_status": { "type": "string", @@ -11108,98 +11078,81 @@ "LOCKED", "PENDING" ], - "description": "Status of the user account.", - "nullable": true + "description": "Status of the user account." }, "email": { "type": "string", - "description": "Email of the user.", - "nullable": true + "description": "Email of the user." }, "expiration_time_in_millis": { "type": "number", "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true + "description": "Expiration time of the user in milliseconds." }, "external": { "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true + "description": "Indicates whether the user is external." }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataItem" }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true + "description": "Metadata objects to add to the users' favorites list." }, "first_login_time_in_millis": { "type": "number", "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true + "description": "Timestamp of the first login session of the user in milliseconds." }, "group_mask": { "type": "integer", "format": "int32", - "description": "Group mask of the user.", - "nullable": true + "description": "Group mask of the user." }, "hidden": { "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true + "description": "Indicates whether the user is hidden." }, "home_liveboard": { "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true + "description": "Unique ID or name of the default Liveboard assigned to the user." }, "incomplete_details": { "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true + "description": "Incomplete details of user if any present." }, "is_first_login": { "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true + "description": "Indicates whether it is first login of the user." }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true + "description": "Last modified time of the user in milliseconds." }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true + "description": "Unique identifier of modifier of the user." }, "notify_on_share": { "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true + "description": "User preference for receiving email notifications on shared Answers or Liveboard." }, "onboarding_experience_completed": { "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true + "description": "The user preference for turning off the onboarding experience." }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/Org" }, - "description": "Orgs to which the user belongs.", - "nullable": true + "description": "Orgs to which the user belongs." }, "owner_id": { "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true + "description": "Unique identifier of owner of the user." }, "parent_type": { "type": "string", @@ -11207,90 +11160,75 @@ "USER", "GROUP" ], - "description": "Parent type of the user.", - "nullable": true + "description": "Parent type of the user." }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the user.", - "nullable": true + "description": "Privileges which are assigned to the user." }, "show_onboarding_experience": { "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true + "description": "User's preference to revisit the new user onboarding experience." }, "super_user": { "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true + "description": "Indicates whether the user is a super user." }, "system_user": { "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true + "description": "Indicates whether the user is a system user." }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Tags associated with the user.", - "nullable": true + "description": "Tags associated with the user." }, "tenant_id": { "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true + "description": "Unique identifier of tenant of the user." }, "user_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Groups to which the user is assigned.", - "nullable": true + "description": "Groups to which the user is assigned." }, "user_inherited_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true + "description": "Inherited User Groups which the user is part of." }, "welcome_email_sent": { "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true + "description": "Indicates whether welcome email is sent for the user." }, "org_privileges": { "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true + "description": "Privileges which are assigned to the user with org." }, "preferred_locale": { "type": "string", - "description": "Locale for the user.", - "nullable": true + "description": "Locale for the user." }, "extended_properties": { "type": "object", - "description": "Properties for the user", - "nullable": true + "description": "Properties for the user" }, "extended_preferences": { "type": "object", - "description": "Preferences for the user", - "nullable": true + "description": "Preferences for the user" }, "user_parameters": { "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true + "description": "User Parameters which are specified for the user via JWToken" } } }, @@ -11351,13 +11289,11 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object.", - "nullable": true + "description": "The unique identifier of the object." }, "name": { "type": "string", - "description": "Name of the object.", - "nullable": true + "description": "Name of the object." } }, "description": "The object representation with ID and Name." @@ -11367,8 +11303,7 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true + "description": "Unique ID or name of the metadata object." }, "type": { "type": "string", @@ -11376,8 +11311,7 @@ "LIVEBOARD", "ANSWER" ], - "description": "Type of metadata object.", - "nullable": true + "description": "Type of metadata object." } } }, @@ -11393,8 +11327,7 @@ "CREATED", "MODIFIED" ], - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", @@ -11402,8 +11335,7 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, "description": "Sort options." @@ -11413,120 +11345,97 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "name": { "type": "string", - "description": "Name of the cluster.", - "nullable": true + "description": "Name of the cluster." }, "release_version": { "type": "string", - "description": "The release version of the cluster.", - "nullable": true + "description": "The release version of the cluster." }, "time_zone": { "type": "string", - "description": "The timezone of the cluster.", - "nullable": true + "description": "The timezone of the cluster." }, "locale": { "type": "string", - "description": "The default locale of the cluster.", - "nullable": true + "description": "The default locale of the cluster." }, "date_format": { "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true + "description": "The default date format representation of the cluster." }, "api_version": { "type": "string", - "description": "The API version of the cluster.", - "nullable": true + "description": "The API version of the cluster." }, "type": { "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true + "description": "The deployment type of the cluster." }, "environment": { "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true + "description": "The deployed environment of the cluster." }, "license": { "type": "string", - "description": "The license applied to the cluster.", - "nullable": true + "description": "The license applied to the cluster." }, "date_time_format": { "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true + "description": "The default date time format representation of the cluster." }, "time_format": { "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true + "description": "The default time format representation of the cluster." }, "system_user_id": { "type": "string", - "description": "The unique identifier of system user.", - "nullable": true + "description": "The unique identifier of system user." }, "super_user_id": { "type": "string", - "description": "The unique identifier of super user.", - "nullable": true + "description": "The unique identifier of super user." }, "hidden_object_id": { "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true + "description": "The unique identifier of hidden object." }, "system_group_id": { "type": "string", - "description": "The unique identifier of system group.", - "nullable": true + "description": "The unique identifier of system group." }, "tsadmin_user_id": { "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true + "description": "The unique identifier of tsadmin user." }, "admin_group_id": { "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true + "description": "The unique identifier of admin group." }, "all_tables_connection_id": { "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true + "description": "The unique identifier of all tables connection." }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true + "description": "The unique identifier of ALL group." }, "accept_language": { "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true + "description": "The supported accept language by the cluster." }, "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true + "description": "The count of users of ALL group." }, "logical_model_version": { "type": "integer", "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true + "description": "The version number of logical model of the cluster." } } }, @@ -11534,8 +11443,7 @@ "type": "object", "properties": { "onboarding_content_url": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -11545,13 +11453,11 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true + "description": "Unique identifier of the Org." }, "name": { "type": "string", - "description": "Name of the Org.", - "nullable": true + "description": "Name of the Org." }, "status": { "type": "string", @@ -11559,13 +11465,11 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the Org.", - "nullable": true + "description": "Status of the Org." }, "description": { "type": "string", - "description": "Description of the Org.", - "nullable": true + "description": "Description of the Org." }, "visibility": { "type": "string", @@ -11573,8 +11477,7 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the Org.", - "nullable": true + "description": "Visibility of the Org." } } }, @@ -11592,46 +11495,36 @@ "type": "string" }, "color": { - "type": "string", - "nullable": true + "type": "string" }, "deleted": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "hidden": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "external": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "deprecated": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "creation_time_in_millis": { "type": "number", - "format": "float", - "nullable": true + "format": "float" }, "modification_time_in_millis": { "type": "number", - "format": "float", - "nullable": true + "format": "float" }, "author_id": { - "type": "string", - "nullable": true + "type": "string" }, "modifier_id": { - "type": "string", - "nullable": true + "type": "string" }, "owner_id": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -11646,47 +11539,39 @@ "properties": { "author_id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true + "description": "Indicates whether the response has complete detail of the group." }, "content": { "type": "object", - "description": "Content details of the group", - "nullable": true + "description": "Content details of the group" }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true + "description": "Creation time of the group in milliseconds" }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true + "description": "Liveboards that are assigned as default Liveboards to the group." }, "deleted": { "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true + "description": "Indicates whether the group is deleted" }, "deprecated": { "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true + "description": "Indicates whether the group is deprecated" }, "description": { "type": "string", - "description": "Description of the group", - "nullable": true + "description": "Description of the group" }, "display_name": { "type": "string", @@ -11694,19 +11579,16 @@ }, "external": { "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true + "description": "Indicates whether the group is external" }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the group", - "nullable": true + "description": "Generation number of the group" }, "hidden": { "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true + "description": "Indicates whether the group is hidden" }, "id": { "type": "string", @@ -11715,31 +11597,26 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the group", - "nullable": true + "description": "Index number of the group" }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the group", - "nullable": true + "description": "Index version number of the group" }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the group", - "nullable": true + "description": "Metadata version number of the group" }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true + "description": "Last modified time of the group in milliseconds." }, "modifier_id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "name": { "type": "string", @@ -11750,13 +11627,11 @@ "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which group exists.", - "nullable": true + "description": "Orgs in which group exists." }, "owner_id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "parent_type": { "type": "string", @@ -11764,37 +11639,32 @@ "USER", "GROUP" ], - "description": "Parent type of the group.", - "nullable": true + "description": "Parent type of the group." }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the group", - "nullable": true + "description": "Privileges which are assigned to the group" }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Groups who are part of the group", - "nullable": true + "description": "Groups who are part of the group" }, "system_group": { "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true + "description": "Indicates whether the group is a system group." }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the group.", - "nullable": true + "description": "Tags associated with the group." }, "type": { "type": "string", @@ -11802,16 +11672,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group.", - "nullable": true + "description": "Type of the group." }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the group.", - "nullable": true + "description": "Users who are part of the group." }, "visibility": { "type": "string", @@ -11826,8 +11694,7 @@ "items": { "$ref": "#/components/schemas/Role" }, - "description": "List of roles assgined to the user", - "nullable": true + "description": "List of roles assgined to the user" } } }, @@ -11836,13 +11703,11 @@ "properties": { "id": { "type": "string", - "description": "id of the role", - "nullable": true + "description": "id of the role" }, "name": { "type": "string", - "description": "name of the role", - "nullable": true + "description": "name of the role" } } }, @@ -11851,13 +11716,11 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "description": "Unique ID or name of the metadata." }, "name_pattern": { "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." }, "type": { "type": "string", @@ -11870,11 +11733,9 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" + "LOGICAL_RELATIONSHIP" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" } } }, @@ -11923,10 +11784,9 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" + "LOGICAL_RELATIONSHIP" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." } } }, @@ -11936,16 +11796,14 @@ "include": { "type": "boolean", "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true + "description": "Includes objects marked as favorite for the specified users." }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." } }, "description": "Favorite object options." @@ -11965,8 +11823,7 @@ "FAVORITES", "LAST_ACCESSED" ], - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", @@ -11974,8 +11831,7 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, "description": "Sort options." @@ -11988,13 +11844,11 @@ "properties": { "metadata_id": { "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true + "description": "Unique identifier of the metadata." }, "metadata_name": { "type": "string", - "description": "Name of the metadata.", - "nullable": true + "description": "Name of the metadata." }, "metadata_type": { "type": "string", @@ -12013,39 +11867,33 @@ }, "dependent_objects": { "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true + "description": "Details of dependent objects of the metadata objects." }, "incomplete_objects": { "type": "array", "items": { "type": "object" }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true + "description": "Details of incomplete information of the metadata objects if any." }, "metadata_detail": { "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true + "description": "Complete details of the metadata objects." }, "metadata_header": { "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true + "description": "Header information of the metadata objects." }, "visualization_headers": { "type": "array", "items": { "type": "object" }, - "description": "Visualization header information of the metadata objects.", - "nullable": true + "description": "Visualization header information of the metadata objects." }, "stats": { "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true + "description": "Stats of the metadata object. Includes views, favorites, last_accessed." } }, "description": "Metadata Search Response Object." @@ -12120,26 +11968,22 @@ "include_cover_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include the cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true + "description": "Indicates whether to include customized wide logo in the footer if available." }, "include_filter_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." }, "include_page_number": { "type": "boolean", "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true + "description": "Indicates whether to include page number in the footer of each page." }, "page_orientation": { "type": "string", @@ -12148,19 +11992,16 @@ "LANDSCAPE" ], "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true + "description": "Page orientation of the PDF." }, "truncate_table": { "type": "boolean", "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true + "description": "Indicates whether to include only the first page of the tables." }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "description": "Text to include in the footer of each page." } } }, @@ -12170,14 +12011,12 @@ "include_cover_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include the cover page with the Liveboard title." }, "include_filter_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." } } }, @@ -12185,8 +12024,7 @@ "type": "object", "properties": { "principal_permission_details": { - "type": "object", - "nullable": true + "type": "object" } } }, @@ -12194,8 +12032,7 @@ "type": "object", "properties": { "metadata_permission_details": { - "type": "object", - "nullable": true + "type": "object" } } }, @@ -12215,8 +12052,7 @@ "USER", "USER_GROUP" ], - "description": "Principal type.", - "nullable": true + "description": "Principal type." } } }, @@ -12235,8 +12071,7 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata object.", - "nullable": true + "description": "Type of metadata object." }, "identifier": { "type": "string", @@ -12392,13 +12227,11 @@ }, "visualization_id": { "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true + "description": "Unique ID of the visualization." }, "visualization_name": { "type": "string", - "description": "Name of the visualization.", - "nullable": true + "description": "Name of the visualization." } } }, @@ -12450,41 +12283,34 @@ "properties": { "repository_url": { "type": "string", - "description": "Remote repository URL configured", - "nullable": true + "description": "Remote repository URL configured" }, "username": { "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true + "description": "Username to authenticate connection to the version control system" }, "commit_branch_name": { "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." }, "branches": { "type": "array", "items": { "type": "string" }, - "description": "Branches that have been pulled in local repository", - "nullable": true + "description": "Branches that have been pulled in local repository" }, "enable_guid_mapping": { "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true + "description": "Maintain mapping of guid for the deployment to an instance" }, "configuration_branch_name": { "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true + "description": "Details of the Org" } } }, @@ -12530,13 +12356,11 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer", - "nullable": true + "description": "Email id of the committer" }, "username": { "type": "string", - "description": "Username of the committer", - "nullable": true + "description": "Username of the committer" } } }, @@ -12545,13 +12369,11 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer", - "nullable": true + "description": "Email id of the committer" }, "username": { "type": "string", - "description": "Username of the committer", - "nullable": true + "description": "Username of the committer" } } }, @@ -12560,21 +12382,18 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true + "description": "Unique ID or name of the connection." }, "name_pattern": { "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." }, "data_warehouse_objects": { "type": "array", "items": { "$ref": "#/components/schemas/DataWarehouseObjectInput" }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true + "description": "Filter options for databases, schemas, tables and columns." } } }, @@ -12583,23 +12402,19 @@ "properties": { "database": { "type": "string", - "description": "Name of the database.", - "nullable": true + "description": "Name of the database." }, "schema": { "type": "string", - "description": "Name of the schema within the database.", - "nullable": true + "description": "Name of the schema within the database." }, "table": { "type": "string", - "description": "Name of the table within the schema.", - "nullable": true + "description": "Name of the table within the schema." }, "column": { "type": "string", - "description": "Name of the column within the table.", - "nullable": true + "description": "Name of the column within the table." } } }, @@ -12620,8 +12435,7 @@ "USER_STATE", "ROW_COUNT" ], - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", @@ -12629,8 +12443,7 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } } }, @@ -12652,8 +12465,7 @@ }, "description": { "type": "string", - "description": "Description of the connection.", - "nullable": true + "description": "Description of the connection." }, "data_warehouse_type": { "type": "string", @@ -12693,13 +12505,11 @@ }, "data_warehouse_objects": { "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true + "description": "List of Data warehouse objects" }, "details": { "type": "object", - "description": "Details of the connection.", - "nullable": true + "description": "Details of the connection." } } }, @@ -12733,13 +12543,11 @@ "items": { "$ref": "#/components/schemas/SchemaObject" }, - "description": "Schemas of the database.", - "nullable": true + "description": "Schemas of the database." }, "auto_created": { "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true + "description": "Determines if the object is auto created." } } }, @@ -12758,8 +12566,7 @@ "items": { "$ref": "#/components/schemas/Table" }, - "description": "Tables in the schema.", - "nullable": true + "description": "Tables in the schema." } } }, @@ -12778,36 +12585,30 @@ "items": { "$ref": "#/components/schemas/Column" }, - "description": "Columns of the table.", - "nullable": true + "description": "Columns of the table." }, "type": { "type": "string", - "description": "Type of table. Either view or table", - "nullable": true + "description": "Type of table. Either view or table" }, "description": { "type": "string", - "description": "Description of the table", - "nullable": true + "description": "Description of the table" }, "selected": { "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true + "description": "Determines if the table is selected" }, "linked": { "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true + "description": "Determines if the table is linked" }, "relationships": { "type": "array", "items": { "type": "object" }, - "description": "List of relationships for the table", - "nullable": true + "description": "List of relationships for the table" } } }, @@ -12828,23 +12629,19 @@ }, "is_aggregate": { "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true + "description": "Determines if the column schema is an aggregate" }, "can_import": { "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true + "description": "Determines if the column schema can be imported" }, "selected": { "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true + "description": "Determines if the table is selected" }, "is_linked_active": { "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true + "description": "Determines if the table is linked" } } }, @@ -12872,24 +12669,21 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true + "description": "number of groups assigned with this role" }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists.", - "nullable": true + "description": "Orgs in which role exists." }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role", - "nullable": true + "description": "Details of groups assigned with this role" }, "privileges": { "type": "array", @@ -12936,10 +12730,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, "description": "Privileges granted to the role." @@ -12951,53 +12742,43 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role", - "nullable": true + "description": "Permission details of the Role" }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true + "description": "Unique identifier of author of the role." }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true + "description": "Unique identifier of modifier of the role." }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true + "description": "Creation time of the role in milliseconds." }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true + "description": "Last modified time of the role in milliseconds." }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true + "description": "Indicates whether the role is deleted." }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true + "description": "Indicates whether the role is deprecated." }, "external": { "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true + "description": "Indicates whether the role is external." }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true + "description": "Indicates whether the role is hidden." }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true + "description": "Indicates whether the role is shared via connection" } }, "description": "Response for search role api should handle hidden privileges as well." @@ -13007,8 +12788,7 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, "description": "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." @@ -13039,8 +12819,7 @@ "items": { "$ref": "#/components/schemas/Metadata_Association_Item" }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true + "description": "Metadata objects to assign the the custom action to." }, "name": { "type": "string", @@ -13051,8 +12830,7 @@ "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true + "description": "Unique ID or name of the User groups which are associated with the custom action." } }, "description": "Custom action details" @@ -13062,13 +12840,11 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true + "description": "CALLBACK Custom Action Type" }, "URL": { "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true + "description": "URL Custom Action Type" } }, "description": "Type and Configuration for Custom Actions" @@ -13078,8 +12854,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name of the SDK. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -13092,16 +12867,14 @@ "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true + "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItem" }, - "description": "Query parameters for url.", - "nullable": true + "description": "Query parameters for url." }, "url": { "type": "string", @@ -13109,8 +12882,7 @@ }, "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name of the SDK. By default, the value will be set to action name." } }, "description": "URL Custom Action Type" @@ -13120,23 +12892,19 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true + "description": "Bearer tokens enable requests to authenticate using an access key." }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true + "description": "No authorization. If your request doesn't require authorization." } }, "description": "Authorization type for the custom action." @@ -13146,13 +12914,11 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name", - "nullable": true + "description": "Enter your key name" }, "value": { "type": "string", - "description": "Enter you key value", - "nullable": true + "description": "Enter you key value" } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -13162,13 +12928,11 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication", - "nullable": true + "description": "Password for the basic authentication" }, "username": { "type": "string", - "description": "Username for the basic authentication", - "nullable": true + "description": "Username for the basic authentication" } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -13178,13 +12942,11 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter", - "nullable": true + "description": "Key for the url query parameter" }, "value": { "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "description": "Value for the url query parameter" } } }, @@ -13193,8 +12955,7 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, "description": "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." @@ -13226,13 +12987,11 @@ "properties": { "position": { "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, "description": "Specify that the association is enabled for the metadata object" @@ -13250,8 +13009,7 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata object.", - "nullable": true + "description": "Type of metadata object." }, "identifier": { "type": "string", @@ -13264,12 +13022,10 @@ "type": "object", "properties": { "id": { - "type": "string", - "nullable": true + "type": "string" }, "name": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -13277,12 +13033,10 @@ "type": "object", "properties": { "id": { - "type": "string", - "nullable": true + "type": "string" }, "name": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -13308,8 +13062,7 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true + } } }, "description": "JWT user options to create a JWT token given the payload." @@ -13319,18 +13072,15 @@ "properties": { "runtime_filter": { "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true + "description": "Runtime filter parameter type in JWT." }, "runtime_sort": { "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true + "description": "Runtime sort parameter type in JWT." }, "runtime_param_override": { "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true + "description": "Runtime param override type in JWT." } }, "description": "List of runtime parameters need to set during the session." @@ -13339,16 +13089,14 @@ "type": "object", "properties": { "identifier": { - "type": "string", - "nullable": true + "type": "string" }, "type": { "type": "string", "enum": [ "LIVEBOARD", "ANSWER" - ], - "nullable": true + ] } }, "description": "Metadata objects." @@ -13360,35 +13108,30 @@ "type": "array", "items": { "$ref": "#/components/schemas/User_Object" - }, - "nullable": true + } }, "runtime_filters": { "type": "array", "items": { "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "nullable": true + } }, "runtime_sorts": { "type": "array", "items": { "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "nullable": true + } }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/User_Parameters" - }, - "nullable": true + } }, "compress": { "type": "boolean", "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true + "description": " Version: 9.12.0.cl or later" } }, "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" @@ -13406,8 +13149,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of object.", - "nullable": true + "description": "Type of object." }, "identifier": { "type": "string", @@ -13458,16 +13200,14 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime filter.", - "nullable": true + "description": "Object to apply the runtime filter." } }, "description": "Objects to apply the User_Runtime_Filters." @@ -13477,8 +13217,7 @@ "properties": { "column_name": { "type": "string", - "description": "The column name to apply filter.", - "nullable": true + "description": "The column name to apply filter." }, "order": { "type": "string", @@ -13486,22 +13225,19 @@ "ASC", "DESC" ], - "description": "Order for the sort.", - "nullable": true + "description": "Order for the sort." }, "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime sort.", - "nullable": true + "description": "Object to apply the runtime sort." } }, "description": "Objects to apply the User_Runtime_Sorts." @@ -13527,16 +13263,14 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime parameter.", - "nullable": true + "description": "Object to apply the runtime parameter." } }, "description": "Objects to apply the Runtime_Parameters." @@ -13593,13 +13327,11 @@ "org_id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true + "description": "Unique identifier of the metadata." }, "metadata_id": { "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true + "description": "Unique identifier of the Org." } } }, @@ -13610,8 +13342,7 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true + } } }, "description": "JWT user options to create a JWT token given the payload." @@ -13655,8 +13386,7 @@ "properties": { "activation_link": { "type": "string", - "description": "Activation link to activate the user.", - "nullable": true + "description": "Activation link to activate the user." } }, "description": "The object representation with activation link." @@ -13678,8 +13408,7 @@ }, "password": { "type": "string", - "description": "Password of the user.", - "nullable": true + "description": "Password of the user." }, "account_type": { "type": "string", @@ -13691,8 +13420,7 @@ "REMOTE_USER" ], "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true + "description": "Type of the user account." }, "account_status": { "type": "string", @@ -13704,29 +13432,25 @@ "PENDING" ], "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true + "description": "Status of the user account." }, "email": { "type": "string", - "description": "Email address of the user.", - "nullable": true + "description": "Email address of the user." }, "org_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true + "description": "ID or name of the Orgs to which the user belongs." }, "group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true + "description": "ID or name of the groups to which the user belongs." }, "visibility": { "type": "string", @@ -13734,37 +13458,31 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." }, "notify_on_share": { "type": "boolean", "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true + "description": "Notify user when other users or groups share metadata objects" }, "show_onboarding_experience": { "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true + "description": "Show or hide the new user onboarding walkthroughs" }, "onboarding_experience_completed": { "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true + "description": "Revisit the new user onboarding walkthroughs" }, "home_liveboard_identifier": { "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true + "description": "Unique ID or name of the default Liveboard assigned to the user." }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true + "description": "Metadata objects to add to the user's favorites list." } } }, @@ -13775,22 +13493,19 @@ "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true + } }, "users_updated": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true + } }, "users_deleted": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true + } } } }, @@ -13802,8 +13517,7 @@ "properties": { "id": { "type": "string", - "description": "Unique identifier of the user.", - "nullable": true + "description": "Unique identifier of the user." }, "name": { "type": "string", @@ -13826,8 +13540,7 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." }, "identifier": { "type": "string", @@ -13855,13 +13568,11 @@ "items": { "type": "string" }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." }, "description": { "type": "string", - "description": "Description of the group.", - "nullable": true + "description": "Description of the group." }, "privileges": { "type": "array", @@ -13890,22 +13601,17 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, - "description": "Privileges that will be assigned to the group.", - "nullable": true + "description": "Privileges that will be assigned to the group." }, "sub_group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true + "description": "Unique ID or name of the sub-groups to add to the group." }, "type": { "type": "string", @@ -13913,16 +13619,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group.", - "nullable": true + "description": "Type of the group." }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true + "description": "Unique ID or name of the users to assign to the group." }, "visibility": { "type": "string", @@ -13930,8 +13634,7 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." } } }, @@ -13984,8 +13687,7 @@ "USER_GROUP", "ROLE" ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -14009,8 +13711,7 @@ "LOGICAL_COLUMN", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -14032,8 +13733,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata.", - "nullable": true + "description": "Type of metadata." }, "identifier": { "type": "string", @@ -14055,8 +13755,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -14104,8 +13803,7 @@ "LOGICAL_TABLE", "CUSTOM_ACTION" ], - "description": "Type of metadata.", - "nullable": true + "description": "Type of metadata." } } }, @@ -14114,41 +13812,34 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true + "description": "Repository user using which changes were committed" }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true + "description": "Thoughtspot user who commits the changes" }, "comment": { "type": "string", - "description": "Comments associated with the commit", - "nullable": true + "description": "Comments associated with the commit" }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true + "description": "Time at which the changes were committed." }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit", - "nullable": true + "description": "SHA id associated with the commit" }, "branch": { "type": "string", - "description": "Branch where changes were committed", - "nullable": true + "description": "Branch where changes were committed" }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit", - "nullable": true + "description": "Files that were pushed as part of this commit" } } }, @@ -14169,8 +13860,7 @@ }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true + "description": "Any error or warning with the deployment" } } }, @@ -14179,49 +13869,41 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true + "description": "Repository user using which changes were committed" }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true + "description": "Thoughtspot user who commits the changes" }, "comment": { "type": "string", - "description": "Comments associated with the commit", - "nullable": true + "description": "Comments associated with the commit" }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true + "description": "Time at which the changes were committed." }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit", - "nullable": true + "description": "SHA id associated with the commit" }, "branch": { "type": "string", - "description": "Branch where changes were committed", - "nullable": true + "description": "Branch where changes were committed" }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit", - "nullable": true + "description": "Files that were pushed as part of this commit" }, "reverted_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/RevertedMetadata" }, - "description": "Metadata of reverted file of this commit", - "nullable": true + "description": "Metadata of reverted file of this commit" } } }, @@ -14262,28 +13944,23 @@ "properties": { "file_name": { "type": "string", - "description": "Name of the file deployed", - "nullable": true + "description": "Name of the file deployed" }, "metadata_name": { "type": "string", - "description": "Name of the metadata object", - "nullable": true + "description": "Name of the metadata object" }, "metadata_type": { "type": "string", - "description": "Type of the metadata object", - "nullable": true + "description": "Type of the metadata object" }, "status_code": { "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true + "description": "Indicates the status of deployment for the file" }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true + "description": "Any error or warning with the deployment" } } }, @@ -14341,8 +14018,7 @@ }, "details": { "type": "object", - "description": "Details of the connection.", - "nullable": true + "description": "Details of the connection." } } }, @@ -14351,8 +14027,7 @@ "properties": { "status": { "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true + "description": "Status of the connection diff." } } }, @@ -14380,24 +14055,21 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true + "description": "number of groups assigned with this role" }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists.", - "nullable": true + "description": "Orgs in which role exists." }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role", - "nullable": true + "description": "Details of groups assigned with this role" }, "privileges": { "type": "array", @@ -14432,10 +14104,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, "description": "Privileges granted to the role." @@ -14447,53 +14116,43 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role", - "nullable": true + "description": "Permission details of the Role" }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true + "description": "Unique identifier of author of the role." }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true + "description": "Unique identifier of modifier of the role." }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true + "description": "Creation time of the role in milliseconds." }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true + "description": "Last modified time of the role in milliseconds." }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true + "description": "Indicates whether the role is deleted." }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true + "description": "Indicates whether the role is deprecated." }, "external": { "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true + "description": "Indicates whether the role is external." }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true + "description": "Indicates whether the role is hidden." }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true + "description": "Indicates whether the role is shared via connection" } } }, @@ -14518,51 +14177,42 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true + "description": "Indicates whether to include complete Liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true + "description": "Indicates whether to include customized wide logo in the footer if available." }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "description": "Indicates whether to include page number in the footer of each page" }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "description": "Text to include in the footer of each page." }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "description": "Page orientation of the PDF." }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size.", - "nullable": true + "description": "Page size." }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true + "description": "Indicates whether to include only first page of the tables." } }, "description": "Options for PDF export." @@ -14626,16 +14276,14 @@ "items": { "type": "string" }, - "description": "Emails of the recipients.", - "nullable": true + "description": "Emails of the recipients." }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItemInput" }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true + "description": "User or groups to be set as recipients of the schedule notifications." } }, "description": "Recipients of the scheduled job notification." @@ -14681,8 +14329,7 @@ }, "description": { "type": "string", - "description": "Description of the job.", - "nullable": true + "description": "Description of the job." }, "file_format": { "type": "string", @@ -14698,8 +14345,7 @@ }, "liveboard_options": { "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true + "description": "Options to specify details of Liveboard." }, "metadata": { "$ref": "#/components/schemas/MetadataResponse", @@ -14711,8 +14357,7 @@ }, "pdf_options": { "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true + "description": "Options for PDF export." }, "recipient_details": { "$ref": "#/components/schemas/RecipientDetails", @@ -14720,8 +14365,7 @@ }, "status": { "type": "string", - "description": "Status of the job", - "nullable": true + "description": "Status of the job" }, "time_zone": { "type": "string", @@ -14732,8 +14376,7 @@ "items": { "$ref": "#/components/schemas/ResponseScheduleRun" }, - "description": "Schedule runs history records.", - "nullable": true + "description": "Schedule runs history records." } } }, @@ -14830,8 +14473,7 @@ ], "properties": { "name": { - "type": "string", - "nullable": true + "type": "string" }, "id": { "type": "string" @@ -14849,51 +14491,42 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true + "description": "Indicates whether to include complete Liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true + "description": "Indicates whether to include customized wide logo in the footer if available." }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "description": "Indicates whether to include page number in the footer of each page" }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "description": "Text to include in the footer of each page." }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "description": "Page orientation of the PDF." }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size.", - "nullable": true + "description": "Page size." }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true + "description": "Indicates whether to include only first page of the tables." } }, "description": "Options for PDF export." @@ -14906,16 +14539,14 @@ "items": { "type": "string" }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItem" }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true + "description": "List of user or groups to subscribe for the scheduled job notifications." } }, "description": "Recipient configuration which includes email address, ID or name of the users and groups." @@ -14966,8 +14597,7 @@ }, "detail": { "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true + "description": "Message details related to the schedule run." } }, "description": "Schedule run response object" @@ -14976,15 +14606,13 @@ "type": "object", "properties": { "identifier": { - "type": "string", - "nullable": true + "type": "string" }, "type": { "type": "string", "enum": [ "LIVEBOARD" - ], - "nullable": true + ] } } }, @@ -14993,13 +14621,11 @@ "properties": { "field_name": { "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, "description": "Sort options." @@ -15010,22 +14636,19 @@ "include_history_runs": { "type": "boolean", "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "description": "Indicates whether to fetch history runs for the scheduled notification." }, "record_size": { "type": "integer", "format": "int32", "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." }, "record_offset": { "type": "integer", "format": "int32", "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true + "description": "Indicates the starting record number from where history runs records should be fetched." } } }, @@ -15034,13 +14657,11 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true + "description": "CALLBACK Custom Action Type" }, "URL": { "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true + "description": "URL Custom Action Type" } }, "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" @@ -15050,8 +14671,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -15064,16 +14684,14 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url.", - "nullable": true + "description": "Query parameters for url." }, "url": { "type": "string", @@ -15081,8 +14699,7 @@ }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true + "description": "Reference name. By default the value will be set to action name" } }, "description": "URL Custom Action Type" @@ -15092,23 +14709,19 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true + "description": "Bearer tokens enable requests to authenticate using an access key." }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true + "description": "No authorization. If your request doesn't require authorization." } }, "description": "Authorization type for the custom action." @@ -15118,13 +14731,11 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name", - "nullable": true + "description": "Enter your key name" }, "value": { "type": "string", - "description": "Enter you key value", - "nullable": true + "description": "Enter you key value" } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -15134,13 +14745,11 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication", - "nullable": true + "description": "Password for the basic authentication" }, "username": { "type": "string", - "description": "Username for the basic authentication", - "nullable": true + "description": "Username for the basic authentication" } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -15150,13 +14759,11 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter", - "nullable": true + "description": "Key for the url query parameter" }, "value": { "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "description": "Value for the url query parameter" } } }, @@ -15168,8 +14775,7 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "description": "Specify that the association is enabled for the metadata object" }, "identifier": { "type": "string", @@ -15182,8 +14788,7 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata.", - "nullable": true + "description": "Type of metadata." } } }, @@ -15198,14 +14803,12 @@ "CONTEXT_MENU" ], "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -15216,8 +14819,7 @@ "visibility": { "type": "boolean", "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" } }, "description": "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." @@ -15227,13 +14829,11 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true + "description": "CALLBACK Custom Action Type" }, "URL": { "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true + "description": "URL Custom Action Type" } }, "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." @@ -15243,8 +14843,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -15254,26 +14853,22 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url.", - "nullable": true + "description": "Query parameters for url." }, "url": { "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "description": "Request Url for the Custom action." }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true + "description": "Reference name. By default the value will be set to action name" } }, "description": "URL Custom Action Type" @@ -15283,13 +14878,11 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "description": "Specify that the association is enabled for the metadata object" }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "description": "Unique ID or name of the metadata." }, "type": { "type": "string", @@ -15298,8 +14891,7 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata.", - "nullable": true + "description": "Type of metadata." } } }, @@ -15313,13 +14905,11 @@ "PRIMARY", "CONTEXT_MENU" ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -15329,8 +14919,7 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, "description": "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." @@ -15348,8 +14937,7 @@ }, "model_path": { "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." }, "tables": { "type": "array", @@ -15364,32 +14952,25 @@ "type": "object", "properties": { "dbt_connection_identifier": { - "type": "string", - "nullable": true + "type": "string" }, "project_name": { - "type": "string", - "nullable": true + "type": "string" }, "connection_id": { - "type": "string", - "nullable": true + "type": "string" }, "connection_name": { - "type": "string", - "nullable": true + "type": "string" }, "cdw_database": { - "type": "string", - "nullable": true + "type": "string" }, "import_type": { - "type": "string", - "nullable": true + "type": "string" }, "author_name": { - "type": "string", - "nullable": true + "type": "string" } } }, From 059e9eaab4aed364e766449ebceb77ad36298995 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 12:45:06 +0000 Subject: [PATCH 128/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1221 +++++++++++++++++++++---------- 1 file changed, 815 insertions(+), 406 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 38a0c32ec..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -296,7 +296,9 @@ "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -1007,7 +1009,9 @@ "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -2398,7 +2402,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/logs-api#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -2951,7 +2955,9 @@ "THIRDPARTY_ANALYSIS", "CONTROL_TRUSTED_AUTH", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -3895,12 +3901,12 @@ "type": "object" }, "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user", + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", "type": "boolean", "nullable": true }, "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user", + "description": "Flag to indicate whether activation email should be sent to user.", "type": "boolean", "nullable": true } @@ -5111,7 +5117,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5215,7 +5221,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5301,7 +5307,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5597,7 +5603,9 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5766,7 +5774,9 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -8080,7 +8090,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -8204,7 +8216,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -10947,7 +10961,8 @@ "type": "object", "properties": { "error": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -11031,32 +11046,39 @@ }, "author_id": { "type": "string", - "description": "Unique identifier of author of the user." + "description": "Unique identifier of author of the user.", + "nullable": true }, "can_change_password": { "type": "boolean", - "description": "Defines whether the user can change their password." + "description": "Defines whether the user can change their password.", + "nullable": true }, "complete_detail": { "type": "boolean", - "description": "Defines whether the response has complete detail of the user." + "description": "Defines whether the response has complete detail of the user.", + "nullable": true }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the user in milliseconds." + "description": "Creation time of the user in milliseconds.", + "nullable": true }, "current_org": { "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user." + "description": "Current logged-in Org of the user.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the user is deleted." + "description": "Indicates whether the user is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the user is deprecated." + "description": "Indicates whether the user is deprecated.", + "nullable": true }, "account_type": { "type": "string", @@ -11067,7 +11089,8 @@ "OIDC_USER", "REMOTE_USER" ], - "description": "Type of the user account." + "description": "Type of the user account.", + "nullable": true }, "account_status": { "type": "string", @@ -11078,81 +11101,98 @@ "LOCKED", "PENDING" ], - "description": "Status of the user account." + "description": "Status of the user account.", + "nullable": true }, "email": { "type": "string", - "description": "Email of the user." + "description": "Email of the user.", + "nullable": true }, "expiration_time_in_millis": { "type": "number", "format": "float", - "description": "Expiration time of the user in milliseconds." + "description": "Expiration time of the user in milliseconds.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the user is external." + "description": "Indicates whether the user is external.", + "nullable": true }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataItem" }, - "description": "Metadata objects to add to the users' favorites list." + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true }, "first_login_time_in_millis": { "type": "number", "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds." + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true }, "group_mask": { "type": "integer", "format": "int32", - "description": "Group mask of the user." + "description": "Group mask of the user.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the user is hidden." + "description": "Indicates whether the user is hidden.", + "nullable": true }, "home_liveboard": { "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user." + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true }, "incomplete_details": { "type": "object", - "description": "Incomplete details of user if any present." + "description": "Incomplete details of user if any present.", + "nullable": true }, "is_first_login": { "type": "boolean", - "description": "Indicates whether it is first login of the user." + "description": "Indicates whether it is first login of the user.", + "nullable": true }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user in milliseconds." + "description": "Last modified time of the user in milliseconds.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the user." + "description": "Unique identifier of modifier of the user.", + "nullable": true }, "notify_on_share": { "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard." + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true }, "onboarding_experience_completed": { "type": "boolean", - "description": "The user preference for turning off the onboarding experience." + "description": "The user preference for turning off the onboarding experience.", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/Org" }, - "description": "Orgs to which the user belongs." + "description": "Orgs to which the user belongs.", + "nullable": true }, "owner_id": { "type": "string", - "description": "Unique identifier of owner of the user." + "description": "Unique identifier of owner of the user.", + "nullable": true }, "parent_type": { "type": "string", @@ -11160,75 +11200,90 @@ "USER", "GROUP" ], - "description": "Parent type of the user." + "description": "Parent type of the user.", + "nullable": true }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the user." + "description": "Privileges which are assigned to the user.", + "nullable": true }, "show_onboarding_experience": { "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience." + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true }, "super_user": { "type": "boolean", - "description": "Indicates whether the user is a super user." + "description": "Indicates whether the user is a super user.", + "nullable": true }, "system_user": { "type": "boolean", - "description": "Indicates whether the user is a system user." + "description": "Indicates whether the user is a system user.", + "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Tags associated with the user." + "description": "Tags associated with the user.", + "nullable": true }, "tenant_id": { "type": "string", - "description": "Unique identifier of tenant of the user." + "description": "Unique identifier of tenant of the user.", + "nullable": true }, "user_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Groups to which the user is assigned." + "description": "Groups to which the user is assigned.", + "nullable": true }, "user_inherited_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Inherited User Groups which the user is part of." + "description": "Inherited User Groups which the user is part of.", + "nullable": true }, "welcome_email_sent": { "type": "boolean", - "description": "Indicates whether welcome email is sent for the user." + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true }, "org_privileges": { "type": "object", - "description": "Privileges which are assigned to the user with org." + "description": "Privileges which are assigned to the user with org.", + "nullable": true }, "preferred_locale": { "type": "string", - "description": "Locale for the user." + "description": "Locale for the user.", + "nullable": true }, "extended_properties": { "type": "object", - "description": "Properties for the user" + "description": "Properties for the user", + "nullable": true }, "extended_preferences": { "type": "object", - "description": "Preferences for the user" + "description": "Preferences for the user", + "nullable": true }, "user_parameters": { "type": "object", - "description": "User Parameters which are specified for the user via JWToken" + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true } } }, @@ -11289,11 +11344,13 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object." + "description": "The unique identifier of the object.", + "nullable": true }, "name": { "type": "string", - "description": "Name of the object." + "description": "Name of the object.", + "nullable": true } }, "description": "The object representation with ID and Name." @@ -11303,7 +11360,8 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata object." + "description": "Unique ID or name of the metadata object.", + "nullable": true }, "type": { "type": "string", @@ -11311,7 +11369,8 @@ "LIVEBOARD", "ANSWER" ], - "description": "Type of metadata object." + "description": "Type of metadata object.", + "nullable": true } } }, @@ -11327,7 +11386,8 @@ "CREATED", "MODIFIED" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -11335,7 +11395,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -11345,97 +11406,120 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "name": { "type": "string", - "description": "Name of the cluster." + "description": "Name of the cluster.", + "nullable": true }, "release_version": { "type": "string", - "description": "The release version of the cluster." + "description": "The release version of the cluster.", + "nullable": true }, "time_zone": { "type": "string", - "description": "The timezone of the cluster." + "description": "The timezone of the cluster.", + "nullable": true }, "locale": { "type": "string", - "description": "The default locale of the cluster." + "description": "The default locale of the cluster.", + "nullable": true }, "date_format": { "type": "string", - "description": "The default date format representation of the cluster." + "description": "The default date format representation of the cluster.", + "nullable": true }, "api_version": { "type": "string", - "description": "The API version of the cluster." + "description": "The API version of the cluster.", + "nullable": true }, "type": { "type": "string", - "description": "The deployment type of the cluster." + "description": "The deployment type of the cluster.", + "nullable": true }, "environment": { "type": "string", - "description": "The deployed environment of the cluster." + "description": "The deployed environment of the cluster.", + "nullable": true }, "license": { "type": "string", - "description": "The license applied to the cluster." + "description": "The license applied to the cluster.", + "nullable": true }, "date_time_format": { "type": "string", - "description": "The default date time format representation of the cluster." + "description": "The default date time format representation of the cluster.", + "nullable": true }, "time_format": { "type": "string", - "description": "The default time format representation of the cluster." + "description": "The default time format representation of the cluster.", + "nullable": true }, "system_user_id": { "type": "string", - "description": "The unique identifier of system user." + "description": "The unique identifier of system user.", + "nullable": true }, "super_user_id": { "type": "string", - "description": "The unique identifier of super user." + "description": "The unique identifier of super user.", + "nullable": true }, "hidden_object_id": { "type": "string", - "description": "The unique identifier of hidden object." + "description": "The unique identifier of hidden object.", + "nullable": true }, "system_group_id": { "type": "string", - "description": "The unique identifier of system group." + "description": "The unique identifier of system group.", + "nullable": true }, "tsadmin_user_id": { "type": "string", - "description": "The unique identifier of tsadmin user." + "description": "The unique identifier of tsadmin user.", + "nullable": true }, "admin_group_id": { "type": "string", - "description": "The unique identifier of admin group." + "description": "The unique identifier of admin group.", + "nullable": true }, "all_tables_connection_id": { "type": "string", - "description": "The unique identifier of all tables connection." + "description": "The unique identifier of all tables connection.", + "nullable": true }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL group." + "description": "The unique identifier of ALL group.", + "nullable": true }, "accept_language": { "type": "string", - "description": "The supported accept language by the cluster." + "description": "The supported accept language by the cluster.", + "nullable": true }, "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL group." + "description": "The count of users of ALL group.", + "nullable": true }, "logical_model_version": { "type": "integer", "format": "int32", - "description": "The version number of logical model of the cluster." + "description": "The version number of logical model of the cluster.", + "nullable": true } } }, @@ -11443,7 +11527,8 @@ "type": "object", "properties": { "onboarding_content_url": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -11453,11 +11538,13 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the Org." + "description": "Unique identifier of the Org.", + "nullable": true }, "name": { "type": "string", - "description": "Name of the Org." + "description": "Name of the Org.", + "nullable": true }, "status": { "type": "string", @@ -11465,11 +11552,13 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the Org." + "description": "Status of the Org.", + "nullable": true }, "description": { "type": "string", - "description": "Description of the Org." + "description": "Description of the Org.", + "nullable": true }, "visibility": { "type": "string", @@ -11477,7 +11566,8 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the Org." + "description": "Visibility of the Org.", + "nullable": true } } }, @@ -11495,36 +11585,46 @@ "type": "string" }, "color": { - "type": "string" + "type": "string", + "nullable": true }, "deleted": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "hidden": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "external": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "deprecated": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "creation_time_in_millis": { "type": "number", - "format": "float" + "format": "float", + "nullable": true }, "modification_time_in_millis": { "type": "number", - "format": "float" + "format": "float", + "nullable": true }, "author_id": { - "type": "string" + "type": "string", + "nullable": true }, "modifier_id": { - "type": "string" + "type": "string", + "nullable": true }, "owner_id": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -11539,39 +11639,47 @@ "properties": { "author_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the group." + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true }, "content": { "type": "object", - "description": "Content details of the group" + "description": "Content details of the group", + "nullable": true }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the group in milliseconds" + "description": "Creation time of the group in milliseconds", + "nullable": true }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards that are assigned as default Liveboards to the group." + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the group is deleted" + "description": "Indicates whether the group is deleted", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the group is deprecated" + "description": "Indicates whether the group is deprecated", + "nullable": true }, "description": { "type": "string", - "description": "Description of the group" + "description": "Description of the group", + "nullable": true }, "display_name": { "type": "string", @@ -11579,16 +11687,19 @@ }, "external": { "type": "boolean", - "description": "Indicates whether the group is external" + "description": "Indicates whether the group is external", + "nullable": true }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the group" + "description": "Generation number of the group", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the group is hidden" + "description": "Indicates whether the group is hidden", + "nullable": true }, "id": { "type": "string", @@ -11597,26 +11708,31 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the group" + "description": "Index number of the group", + "nullable": true }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the group" + "description": "Index version number of the group", + "nullable": true }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the group" + "description": "Metadata version number of the group", + "nullable": true }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the group in milliseconds." + "description": "Last modified time of the group in milliseconds.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "name": { "type": "string", @@ -11627,11 +11743,13 @@ "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which group exists." + "description": "Orgs in which group exists.", + "nullable": true }, "owner_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "parent_type": { "type": "string", @@ -11639,32 +11757,37 @@ "USER", "GROUP" ], - "description": "Parent type of the group." + "description": "Parent type of the group.", + "nullable": true }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the group" + "description": "Privileges which are assigned to the group", + "nullable": true }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Groups who are part of the group" + "description": "Groups who are part of the group", + "nullable": true }, "system_group": { "type": "boolean", - "description": "Indicates whether the group is a system group." + "description": "Indicates whether the group is a system group.", + "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the group." + "description": "Tags associated with the group.", + "nullable": true }, "type": { "type": "string", @@ -11672,14 +11795,16 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group." + "description": "Type of the group.", + "nullable": true }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the group." + "description": "Users who are part of the group.", + "nullable": true }, "visibility": { "type": "string", @@ -11694,7 +11819,8 @@ "items": { "$ref": "#/components/schemas/Role" }, - "description": "List of roles assgined to the user" + "description": "List of roles assgined to the user", + "nullable": true } } }, @@ -11703,11 +11829,13 @@ "properties": { "id": { "type": "string", - "description": "id of the role" + "description": "id of the role", + "nullable": true }, "name": { "type": "string", - "description": "name of the role" + "description": "name of the role", + "nullable": true } } }, @@ -11716,11 +11844,13 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata.", + "nullable": true }, "name_pattern": { "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true }, "type": { "type": "string", @@ -11733,9 +11863,11 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true } } }, @@ -11784,9 +11916,10 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" } } }, @@ -11796,14 +11929,16 @@ "include": { "type": "boolean", "default": false, - "description": "Includes objects marked as favorite for the specified users." + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true } }, "description": "Favorite object options." @@ -11823,7 +11958,8 @@ "FAVORITES", "LAST_ACCESSED" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -11831,7 +11967,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -11844,11 +11981,13 @@ "properties": { "metadata_id": { "type": "string", - "description": "Unique identifier of the metadata." + "description": "Unique identifier of the metadata.", + "nullable": true }, "metadata_name": { "type": "string", - "description": "Name of the metadata." + "description": "Name of the metadata.", + "nullable": true }, "metadata_type": { "type": "string", @@ -11867,33 +12006,39 @@ }, "dependent_objects": { "type": "object", - "description": "Details of dependent objects of the metadata objects." + "description": "Details of dependent objects of the metadata objects.", + "nullable": true }, "incomplete_objects": { "type": "array", "items": { "type": "object" }, - "description": "Details of incomplete information of the metadata objects if any." + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true }, "metadata_detail": { "type": "object", - "description": "Complete details of the metadata objects." + "description": "Complete details of the metadata objects.", + "nullable": true }, "metadata_header": { "type": "object", - "description": "Header information of the metadata objects." + "description": "Header information of the metadata objects.", + "nullable": true }, "visualization_headers": { "type": "array", "items": { "type": "object" }, - "description": "Visualization header information of the metadata objects." + "description": "Visualization header information of the metadata objects.", + "nullable": true }, "stats": { "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed." + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true } }, "description": "Metadata Search Response Object." @@ -11968,22 +12113,26 @@ "include_cover_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", "default": true, - "description": "Indicates whether to include page number in the footer of each page." + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", @@ -11992,16 +12141,19 @@ "LANDSCAPE" ], "default": "PORTRAIT", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "truncate_table": { "type": "boolean", "default": false, - "description": "Indicates whether to include only the first page of the tables." + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true } } }, @@ -12011,12 +12163,14 @@ "include_cover_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true }, "include_filter_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true } } }, @@ -12024,7 +12178,8 @@ "type": "object", "properties": { "principal_permission_details": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -12032,7 +12187,8 @@ "type": "object", "properties": { "metadata_permission_details": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -12052,7 +12208,8 @@ "USER", "USER_GROUP" ], - "description": "Principal type." + "description": "Principal type.", + "nullable": true } } }, @@ -12071,7 +12228,8 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata object." + "description": "Type of metadata object.", + "nullable": true }, "identifier": { "type": "string", @@ -12227,11 +12385,13 @@ }, "visualization_id": { "type": "string", - "description": "Unique ID of the visualization." + "description": "Unique ID of the visualization.", + "nullable": true }, "visualization_name": { "type": "string", - "description": "Name of the visualization." + "description": "Name of the visualization.", + "nullable": true } } }, @@ -12283,34 +12443,41 @@ "properties": { "repository_url": { "type": "string", - "description": "Remote repository URL configured" + "description": "Remote repository URL configured", + "nullable": true }, "username": { "type": "string", - "description": "Username to authenticate connection to the version control system" + "description": "Username to authenticate connection to the version control system", + "nullable": true }, "commit_branch_name": { "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true }, "branches": { "type": "array", "items": { "type": "string" }, - "description": "Branches that have been pulled in local repository" + "description": "Branches that have been pulled in local repository", + "nullable": true }, "enable_guid_mapping": { "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance" + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true }, "configuration_branch_name": { "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the Org" + "description": "Details of the Org", + "nullable": true } } }, @@ -12356,11 +12523,13 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer" + "description": "Email id of the committer", + "nullable": true }, "username": { "type": "string", - "description": "Username of the committer" + "description": "Username of the committer", + "nullable": true } } }, @@ -12369,11 +12538,13 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer" + "description": "Email id of the committer", + "nullable": true }, "username": { "type": "string", - "description": "Username of the committer" + "description": "Username of the committer", + "nullable": true } } }, @@ -12382,18 +12553,21 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the connection." + "description": "Unique ID or name of the connection.", + "nullable": true }, "name_pattern": { "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true }, "data_warehouse_objects": { "type": "array", "items": { "$ref": "#/components/schemas/DataWarehouseObjectInput" }, - "description": "Filter options for databases, schemas, tables and columns." + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true } } }, @@ -12402,19 +12576,23 @@ "properties": { "database": { "type": "string", - "description": "Name of the database." + "description": "Name of the database.", + "nullable": true }, "schema": { "type": "string", - "description": "Name of the schema within the database." + "description": "Name of the schema within the database.", + "nullable": true }, "table": { "type": "string", - "description": "Name of the table within the schema." + "description": "Name of the table within the schema.", + "nullable": true }, "column": { "type": "string", - "description": "Name of the column within the table." + "description": "Name of the column within the table.", + "nullable": true } } }, @@ -12435,7 +12613,8 @@ "USER_STATE", "ROW_COUNT" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -12443,7 +12622,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } } }, @@ -12465,7 +12645,8 @@ }, "description": { "type": "string", - "description": "Description of the connection." + "description": "Description of the connection.", + "nullable": true }, "data_warehouse_type": { "type": "string", @@ -12505,11 +12686,13 @@ }, "data_warehouse_objects": { "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects" + "description": "List of Data warehouse objects", + "nullable": true }, "details": { "type": "object", - "description": "Details of the connection." + "description": "Details of the connection.", + "nullable": true } } }, @@ -12543,11 +12726,13 @@ "items": { "$ref": "#/components/schemas/SchemaObject" }, - "description": "Schemas of the database." + "description": "Schemas of the database.", + "nullable": true }, "auto_created": { "type": "boolean", - "description": "Determines if the object is auto created." + "description": "Determines if the object is auto created.", + "nullable": true } } }, @@ -12566,7 +12751,8 @@ "items": { "$ref": "#/components/schemas/Table" }, - "description": "Tables in the schema." + "description": "Tables in the schema.", + "nullable": true } } }, @@ -12585,30 +12771,36 @@ "items": { "$ref": "#/components/schemas/Column" }, - "description": "Columns of the table." + "description": "Columns of the table.", + "nullable": true }, "type": { "type": "string", - "description": "Type of table. Either view or table" + "description": "Type of table. Either view or table", + "nullable": true }, "description": { "type": "string", - "description": "Description of the table" + "description": "Description of the table", + "nullable": true }, "selected": { "type": "boolean", - "description": "Determines if the table is selected" + "description": "Determines if the table is selected", + "nullable": true }, "linked": { "type": "boolean", - "description": "Determines if the table is linked" + "description": "Determines if the table is linked", + "nullable": true }, "relationships": { "type": "array", "items": { "type": "object" }, - "description": "List of relationships for the table" + "description": "List of relationships for the table", + "nullable": true } } }, @@ -12629,19 +12821,23 @@ }, "is_aggregate": { "type": "string", - "description": "Determines if the column schema is an aggregate" + "description": "Determines if the column schema is an aggregate", + "nullable": true }, "can_import": { "type": "boolean", - "description": "Determines if the column schema can be imported" + "description": "Determines if the column schema can be imported", + "nullable": true }, "selected": { "type": "boolean", - "description": "Determines if the table is selected" + "description": "Determines if the table is selected", + "nullable": true }, "is_linked_active": { "type": "boolean", - "description": "Determines if the table is linked" + "description": "Determines if the table is linked", + "nullable": true } } }, @@ -12669,21 +12865,24 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role" + "description": "number of groups assigned with this role", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists." + "description": "Orgs in which role exists.", + "nullable": true }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role" + "description": "Details of groups assigned with this role", + "nullable": true }, "privileges": { "type": "array", @@ -12730,7 +12929,9 @@ "THIRDPARTY_ANALYSIS", "CONTROL_TRUSTED_AUTH", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -12742,43 +12943,53 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role" + "description": "Permission details of the Role", + "nullable": true }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role." + "description": "Unique identifier of author of the role.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role." + "description": "Unique identifier of modifier of the role.", + "nullable": true }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds." + "description": "Creation time of the role in milliseconds.", + "nullable": true }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds." + "description": "Last modified time of the role in milliseconds.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted." + "description": "Indicates whether the role is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated." + "description": "Indicates whether the role is deprecated.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the role is external." + "description": "Indicates whether the role is external.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden." + "description": "Indicates whether the role is hidden.", + "nullable": true }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "description": "Indicates whether the role is shared via connection", + "nullable": true } }, "description": "Response for search role api should handle hidden privileges as well." @@ -12788,7 +12999,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -12819,7 +13031,8 @@ "items": { "$ref": "#/components/schemas/Metadata_Association_Item" }, - "description": "Metadata objects to assign the the custom action to." + "description": "Metadata objects to assign the the custom action to.", + "nullable": true }, "name": { "type": "string", @@ -12830,7 +13043,8 @@ "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Unique ID or name of the User groups which are associated with the custom action." + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true } }, "description": "Custom action details" @@ -12840,11 +13054,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Type and Configuration for Custom Actions" @@ -12854,7 +13070,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -12867,14 +13084,16 @@ "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItem" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", @@ -12882,7 +13101,8 @@ }, "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true } }, "description": "URL Custom Action Type" @@ -12892,19 +13112,23 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true } }, "description": "Authorization type for the custom action." @@ -12914,11 +13138,13 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name" + "description": "Enter your key name", + "nullable": true }, "value": { "type": "string", - "description": "Enter you key value" + "description": "Enter you key value", + "nullable": true } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -12928,11 +13154,13 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication" + "description": "Password for the basic authentication", + "nullable": true }, "username": { "type": "string", - "description": "Username for the basic authentication" + "description": "Username for the basic authentication", + "nullable": true } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -12942,11 +13170,13 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter" + "description": "Key for the url query parameter", + "nullable": true }, "value": { "type": "string", - "description": "Value for the url query parameter" + "description": "Value for the url query parameter", + "nullable": true } } }, @@ -12955,7 +13185,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -12987,11 +13218,13 @@ "properties": { "position": { "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object" @@ -13009,7 +13242,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata object." + "description": "Type of metadata object.", + "nullable": true }, "identifier": { "type": "string", @@ -13022,10 +13256,12 @@ "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "nullable": true }, "name": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -13033,10 +13269,12 @@ "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "nullable": true }, "name": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -13062,7 +13300,8 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Metadata_Object" - } + }, + "nullable": true } }, "description": "JWT user options to create a JWT token given the payload." @@ -13072,15 +13311,18 @@ "properties": { "runtime_filter": { "type": "object", - "description": "Runtime filter parameter type in JWT." + "description": "Runtime filter parameter type in JWT.", + "nullable": true }, "runtime_sort": { "type": "object", - "description": "Runtime sort parameter type in JWT." + "description": "Runtime sort parameter type in JWT.", + "nullable": true }, "runtime_param_override": { "type": "object", - "description": "Runtime param override type in JWT." + "description": "Runtime param override type in JWT.", + "nullable": true } }, "description": "List of runtime parameters need to set during the session." @@ -13089,14 +13331,16 @@ "type": "object", "properties": { "identifier": { - "type": "string" + "type": "string", + "nullable": true }, "type": { "type": "string", "enum": [ "LIVEBOARD", "ANSWER" - ] + ], + "nullable": true } }, "description": "Metadata objects." @@ -13108,30 +13352,35 @@ "type": "array", "items": { "$ref": "#/components/schemas/User_Object" - } + }, + "nullable": true }, "runtime_filters": { "type": "array", "items": { "$ref": "#/components/schemas/User_Runtime_Filters" - } + }, + "nullable": true }, "runtime_sorts": { "type": "array", "items": { "$ref": "#/components/schemas/User_Runtime_Sorts" - } + }, + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/User_Parameters" - } + }, + "nullable": true }, "compress": { "type": "boolean", "default": false, - "description": " Version: 9.12.0.cl or later" + "description": " Version: 9.12.0.cl or later", + "nullable": true } }, "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" @@ -13149,7 +13398,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of object." + "description": "Type of object.", + "nullable": true }, "identifier": { "type": "string", @@ -13200,14 +13450,16 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later" + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime filter." + "description": "Object to apply the runtime filter.", + "nullable": true } }, "description": "Objects to apply the User_Runtime_Filters." @@ -13217,7 +13469,8 @@ "properties": { "column_name": { "type": "string", - "description": "The column name to apply filter." + "description": "The column name to apply filter.", + "nullable": true }, "order": { "type": "string", @@ -13225,19 +13478,22 @@ "ASC", "DESC" ], - "description": "Order for the sort." + "description": "Order for the sort.", + "nullable": true }, "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later" + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime sort." + "description": "Object to apply the runtime sort.", + "nullable": true } }, "description": "Objects to apply the User_Runtime_Sorts." @@ -13263,14 +13519,16 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later" + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime parameter." + "description": "Object to apply the runtime parameter.", + "nullable": true } }, "description": "Objects to apply the Runtime_Parameters." @@ -13327,11 +13585,13 @@ "org_id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the metadata." + "description": "Unique identifier of the metadata.", + "nullable": true }, "metadata_id": { "type": "string", - "description": "Unique identifier of the Org." + "description": "Unique identifier of the Org.", + "nullable": true } } }, @@ -13342,7 +13602,8 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Parameter" - } + }, + "nullable": true } }, "description": "JWT user options to create a JWT token given the payload." @@ -13386,7 +13647,8 @@ "properties": { "activation_link": { "type": "string", - "description": "Activation link to activate the user." + "description": "Activation link to activate the user.", + "nullable": true } }, "description": "The object representation with activation link." @@ -13408,7 +13670,8 @@ }, "password": { "type": "string", - "description": "Password of the user." + "description": "Password of the user.", + "nullable": true }, "account_type": { "type": "string", @@ -13420,7 +13683,8 @@ "REMOTE_USER" ], "default": "LOCAL_USER", - "description": "Type of the user account." + "description": "Type of the user account.", + "nullable": true }, "account_status": { "type": "string", @@ -13432,25 +13696,29 @@ "PENDING" ], "default": "ACTIVE", - "description": "Status of the user account." + "description": "Status of the user account.", + "nullable": true }, "email": { "type": "string", - "description": "Email address of the user." + "description": "Email address of the user.", + "nullable": true }, "org_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the Orgs to which the user belongs." + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true }, "group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the groups to which the user belongs." + "description": "ID or name of the groups to which the user belongs.", + "nullable": true }, "visibility": { "type": "string", @@ -13458,31 +13726,37 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true }, "notify_on_share": { "type": "boolean", "default": true, - "description": "Notify user when other users or groups share metadata objects" + "description": "Notify user when other users or groups share metadata objects", + "nullable": true }, "show_onboarding_experience": { "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs" + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true }, "onboarding_experience_completed": { "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs" + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true }, "home_liveboard_identifier": { "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user." + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" }, - "description": "Metadata objects to add to the user's favorites list." + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true } } }, @@ -13493,19 +13767,22 @@ "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true }, "users_updated": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true }, "users_deleted": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true } } }, @@ -13517,7 +13794,8 @@ "properties": { "id": { "type": "string", - "description": "Unique identifier of the user." + "description": "Unique identifier of the user.", + "nullable": true }, "name": { "type": "string", @@ -13540,7 +13818,8 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true }, "identifier": { "type": "string", @@ -13568,11 +13847,13 @@ "items": { "type": "string" }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true }, "description": { "type": "string", - "description": "Description of the group." + "description": "Description of the group.", + "nullable": true }, "privileges": { "type": "array", @@ -13601,17 +13882,21 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] }, - "description": "Privileges that will be assigned to the group." + "description": "Privileges that will be assigned to the group.", + "nullable": true }, "sub_group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the sub-groups to add to the group." + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true }, "type": { "type": "string", @@ -13619,14 +13904,16 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group." + "description": "Type of the group.", + "nullable": true }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users to assign to the group." + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true }, "visibility": { "type": "string", @@ -13634,7 +13921,8 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true } } }, @@ -13687,7 +13975,8 @@ "USER_GROUP", "ROLE" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true }, "identifier": { "type": "string", @@ -13711,7 +14000,8 @@ "LOGICAL_COLUMN", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true }, "identifier": { "type": "string", @@ -13733,7 +14023,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true }, "identifier": { "type": "string", @@ -13755,7 +14046,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true }, "identifier": { "type": "string", @@ -13803,7 +14095,8 @@ "LOGICAL_TABLE", "CUSTOM_ACTION" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true } } }, @@ -13812,34 +14105,41 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" + "description": "Repository user using which changes were committed", + "nullable": true }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" + "description": "Thoughtspot user who commits the changes", + "nullable": true }, "comment": { "type": "string", - "description": "Comments associated with the commit" + "description": "Comments associated with the commit", + "nullable": true }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed." + "description": "Time at which the changes were committed.", + "nullable": true }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit" + "description": "SHA id associated with the commit", + "nullable": true }, "branch": { "type": "string", - "description": "Branch where changes were committed" + "description": "Branch where changes were committed", + "nullable": true }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit" + "description": "Files that were pushed as part of this commit", + "nullable": true } } }, @@ -13860,7 +14160,8 @@ }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Any error or warning with the deployment", + "nullable": true } } }, @@ -13869,41 +14170,49 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" + "description": "Repository user using which changes were committed", + "nullable": true }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" + "description": "Thoughtspot user who commits the changes", + "nullable": true }, "comment": { "type": "string", - "description": "Comments associated with the commit" + "description": "Comments associated with the commit", + "nullable": true }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed." + "description": "Time at which the changes were committed.", + "nullable": true }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit" + "description": "SHA id associated with the commit", + "nullable": true }, "branch": { "type": "string", - "description": "Branch where changes were committed" + "description": "Branch where changes were committed", + "nullable": true }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit" + "description": "Files that were pushed as part of this commit", + "nullable": true }, "reverted_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/RevertedMetadata" }, - "description": "Metadata of reverted file of this commit" + "description": "Metadata of reverted file of this commit", + "nullable": true } } }, @@ -13944,23 +14253,28 @@ "properties": { "file_name": { "type": "string", - "description": "Name of the file deployed" + "description": "Name of the file deployed", + "nullable": true }, "metadata_name": { "type": "string", - "description": "Name of the metadata object" + "description": "Name of the metadata object", + "nullable": true }, "metadata_type": { "type": "string", - "description": "Type of the metadata object" + "description": "Type of the metadata object", + "nullable": true }, "status_code": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Indicates the status of deployment for the file", + "nullable": true }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Any error or warning with the deployment", + "nullable": true } } }, @@ -14018,7 +14332,8 @@ }, "details": { "type": "object", - "description": "Details of the connection." + "description": "Details of the connection.", + "nullable": true } } }, @@ -14027,7 +14342,8 @@ "properties": { "status": { "type": "boolean", - "description": "Status of the connection diff." + "description": "Status of the connection diff.", + "nullable": true } } }, @@ -14055,21 +14371,24 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role" + "description": "number of groups assigned with this role", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists." + "description": "Orgs in which role exists.", + "nullable": true }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role" + "description": "Details of groups assigned with this role", + "nullable": true }, "privileges": { "type": "array", @@ -14104,7 +14423,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -14116,43 +14437,53 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role" + "description": "Permission details of the Role", + "nullable": true }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role." + "description": "Unique identifier of author of the role.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role." + "description": "Unique identifier of modifier of the role.", + "nullable": true }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds." + "description": "Creation time of the role in milliseconds.", + "nullable": true }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds." + "description": "Last modified time of the role in milliseconds.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted." + "description": "Indicates whether the role is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated." + "description": "Indicates whether the role is deprecated.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the role is external." + "description": "Indicates whether the role is external.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden." + "description": "Indicates whether the role is hidden.", + "nullable": true }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "description": "Indicates whether the role is shared via connection", + "nullable": true } } }, @@ -14177,42 +14508,51 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard." + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size." + "description": "Page size.", + "nullable": true }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "description": "Indicates whether to include only first page of the tables.", + "nullable": true } }, "description": "Options for PDF export." @@ -14276,14 +14616,16 @@ "items": { "type": "string" }, - "description": "Emails of the recipients." + "description": "Emails of the recipients.", + "nullable": true }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItemInput" }, - "description": "User or groups to be set as recipients of the schedule notifications." + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true } }, "description": "Recipients of the scheduled job notification." @@ -14329,7 +14671,8 @@ }, "description": { "type": "string", - "description": "Description of the job." + "description": "Description of the job.", + "nullable": true }, "file_format": { "type": "string", @@ -14345,7 +14688,8 @@ }, "liveboard_options": { "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard." + "description": "Options to specify details of Liveboard.", + "nullable": true }, "metadata": { "$ref": "#/components/schemas/MetadataResponse", @@ -14357,7 +14701,8 @@ }, "pdf_options": { "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export." + "description": "Options for PDF export.", + "nullable": true }, "recipient_details": { "$ref": "#/components/schemas/RecipientDetails", @@ -14365,7 +14710,8 @@ }, "status": { "type": "string", - "description": "Status of the job" + "description": "Status of the job", + "nullable": true }, "time_zone": { "type": "string", @@ -14376,7 +14722,8 @@ "items": { "$ref": "#/components/schemas/ResponseScheduleRun" }, - "description": "Schedule runs history records." + "description": "Schedule runs history records.", + "nullable": true } } }, @@ -14473,7 +14820,8 @@ ], "properties": { "name": { - "type": "string" + "type": "string", + "nullable": true }, "id": { "type": "string" @@ -14491,42 +14839,51 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard." + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size." + "description": "Page size.", + "nullable": true }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "description": "Indicates whether to include only first page of the tables.", + "nullable": true } }, "description": "Options for PDF export." @@ -14539,14 +14896,16 @@ "items": { "type": "string" }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItem" }, - "description": "List of user or groups to subscribe for the scheduled job notifications." + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } }, "description": "Recipient configuration which includes email address, ID or name of the users and groups." @@ -14597,7 +14956,8 @@ }, "detail": { "type": "string", - "description": "Message details related to the schedule run." + "description": "Message details related to the schedule run.", + "nullable": true } }, "description": "Schedule run response object" @@ -14606,13 +14966,15 @@ "type": "object", "properties": { "identifier": { - "type": "string" + "type": "string", + "nullable": true }, "type": { "type": "string", "enum": [ "LIVEBOARD" - ] + ], + "nullable": true } } }, @@ -14621,11 +14983,13 @@ "properties": { "field_name": { "type": "string", - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -14636,19 +15000,22 @@ "include_history_runs": { "type": "boolean", "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification." + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true }, "record_size": { "type": "integer", "format": "int32", "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true }, "record_offset": { "type": "integer", "format": "int32", "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched." + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true } } }, @@ -14657,11 +15024,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" @@ -14671,7 +15040,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -14684,14 +15054,16 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", @@ -14699,7 +15071,8 @@ }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name", + "nullable": true } }, "description": "URL Custom Action Type" @@ -14709,19 +15082,23 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true } }, "description": "Authorization type for the custom action." @@ -14731,11 +15108,13 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name" + "description": "Enter your key name", + "nullable": true }, "value": { "type": "string", - "description": "Enter you key value" + "description": "Enter you key value", + "nullable": true } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -14745,11 +15124,13 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication" + "description": "Password for the basic authentication", + "nullable": true }, "username": { "type": "string", - "description": "Username for the basic authentication" + "description": "Username for the basic authentication", + "nullable": true } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -14759,11 +15140,13 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter" + "description": "Key for the url query parameter", + "nullable": true }, "value": { "type": "string", - "description": "Value for the url query parameter" + "description": "Value for the url query parameter", + "nullable": true } } }, @@ -14775,7 +15158,8 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object" + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, "identifier": { "type": "string", @@ -14788,7 +15172,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true } } }, @@ -14803,12 +15188,14 @@ "CONTEXT_MENU" ], "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -14819,7 +15206,8 @@ "visibility": { "type": "boolean", "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true } }, "description": "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." @@ -14829,11 +15217,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." @@ -14843,7 +15233,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -14853,22 +15244,26 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Request Url for the Custom action.", + "nullable": true }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name", + "nullable": true } }, "description": "URL Custom Action Type" @@ -14878,11 +15273,13 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object" + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata.", + "nullable": true }, "type": { "type": "string", @@ -14891,7 +15288,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata." + "description": "Type of metadata.", + "nullable": true } } }, @@ -14905,11 +15303,13 @@ "PRIMARY", "CONTEXT_MENU" ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -14919,7 +15319,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -14937,7 +15338,8 @@ }, "model_path": { "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true }, "tables": { "type": "array", @@ -14952,25 +15354,32 @@ "type": "object", "properties": { "dbt_connection_identifier": { - "type": "string" + "type": "string", + "nullable": true }, "project_name": { - "type": "string" + "type": "string", + "nullable": true }, "connection_id": { - "type": "string" + "type": "string", + "nullable": true }, "connection_name": { - "type": "string" + "type": "string", + "nullable": true }, "cdw_database": { - "type": "string" + "type": "string", + "nullable": true }, "import_type": { - "type": "string" + "type": "string", + "nullable": true }, "author_name": { - "type": "string" + "type": "string", + "nullable": true } } }, From 13062e7e4413df9fff35866d8139ad768a854a79 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 15:14:37 +0000 Subject: [PATCH 129/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..14b62259c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,7 +298,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -1011,7 +1012,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -2957,7 +2959,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5605,7 +5608,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5776,7 +5780,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -8092,7 +8097,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8218,7 +8224,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -12931,7 +12938,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -13884,7 +13892,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges that will be assigned to the group.", @@ -14425,7 +14434,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." From d511077052ae4d292da3a6ea671f8d890e790ca5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 15:47:26 +0000 Subject: [PATCH 130/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 14b62259c..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,8 +298,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -1012,8 +1011,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -2959,8 +2957,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5608,8 +5605,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5780,8 +5776,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -8097,8 +8092,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -8224,8 +8218,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -12938,8 +12931,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -13892,8 +13884,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges that will be assigned to the group.", @@ -14434,8 +14425,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." From a98f02c308680586f719031fafd23e48b4bcc9d5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 16:12:46 +0000 Subject: [PATCH 131/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..14b62259c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,7 +298,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -1011,7 +1012,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -2957,7 +2959,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5605,7 +5608,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5776,7 +5780,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -8092,7 +8097,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8218,7 +8224,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -12931,7 +12938,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -13884,7 +13892,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges that will be assigned to the group.", @@ -14425,7 +14434,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." From bb77192b06f6e252fc549444dd6cb87ba67bf0a9 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Aug 2024 16:35:04 +0000 Subject: [PATCH 132/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 14b62259c..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,8 +298,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -1012,8 +1011,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -2959,8 +2957,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5608,8 +5605,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5780,8 +5776,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -8097,8 +8092,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -8224,8 +8218,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -12938,8 +12931,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -13892,8 +13884,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges that will be assigned to the group.", @@ -14434,8 +14425,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." From fdd4431e717db8b3a0aeb474d6c51ef55cc27693 Mon Sep 17 00:00:00 2001 From: Aditya Mittal <114516106+adityamittal3107@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:37:06 +0530 Subject: [PATCH 133/410] Update openapiSpecv3-2_0.json (#154) --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..e9d825418 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -15436,4 +15436,4 @@ } } ] -} \ No newline at end of file +} From 24cecc79432f809ed1f0f27d12f5be8d87c87d10 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 Aug 2024 06:24:20 +0000 Subject: [PATCH 134/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e9d825418..14b62259c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,7 +298,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -1011,7 +1012,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -2957,7 +2959,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5605,7 +5608,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5776,7 +5780,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -8092,7 +8097,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8218,7 +8224,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -12931,7 +12938,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -13884,7 +13892,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges that will be assigned to the group.", @@ -14425,7 +14434,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -15436,4 +15446,4 @@ } } ] -} +} \ No newline at end of file From cd529bbe2b44f361135108e32af5a67efc8e6340 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 Aug 2024 06:27:28 +0000 Subject: [PATCH 135/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 14b62259c..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,8 +298,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -1012,8 +1011,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -2959,8 +2957,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5608,8 +5605,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5780,8 +5776,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -8097,8 +8092,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -8224,8 +8218,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -12938,8 +12931,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -13892,8 +13884,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges that will be assigned to the group.", @@ -14434,8 +14425,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." From ccd91d1accc999f7b2b64abd22f0289b81fb08b1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 Aug 2024 09:27:32 +0000 Subject: [PATCH 136/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..14b62259c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,7 +298,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -1011,7 +1012,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -2957,7 +2959,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5605,7 +5608,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5776,7 +5780,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -8092,7 +8097,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8218,7 +8224,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -12931,7 +12938,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -13884,7 +13892,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges that will be assigned to the group.", @@ -14425,7 +14434,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." From d296906ab08c845cc55ea74d626cab09d53563d7 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 Aug 2024 09:33:51 +0000 Subject: [PATCH 137/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 14b62259c..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -298,8 +298,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -1012,8 +1011,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -2959,8 +2957,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5608,8 +5605,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -5780,8 +5776,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } }, @@ -8097,8 +8092,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -8224,8 +8218,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] } } @@ -12938,8 +12931,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." @@ -13892,8 +13884,7 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges that will be assigned to the group.", @@ -14434,8 +14425,7 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "CAN_MANAGE_ANALYST_STUDIO" ] }, "description": "Privileges granted to the role." From af15b7b1098142534d7a33fffd00f536d095c31b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 Aug 2024 18:46:33 +0000 Subject: [PATCH 138/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15472 +----------------------------- 1 file changed, 278 insertions(+), 15194 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..2e5c7fec7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,102 +4,18 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, - "x-roles": [ - { - "name": "9.0.0.cl", - "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], - "description": "Roles for version 9.0.0.cl" - }, - { - "name": "9.12.0.cl", - "id": "9.12.0.cl", - "tags": [ - "9.12.0.cl" - ], - "description": "Roles for version 9.12.0.cl" - }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, - { - "name": "9.2.0.cl", - "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], - "description": "Roles for version 9.2.0.cl" - }, - { - "name": "10.1.0.cl", - "id": "10.1.0.cl", - "tags": [ - "10.1.0.cl" - ], - "description": "Roles for version 10.1.0.cl" - }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, - { - "name": "9.5.0.cl", - "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], - "description": "Roles for version 9.5.0.cl" - }, - { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], - "description": "Roles for version 9.6.0.cl" - } - ], "tags": [], "paths": { - "/api/rest/2.0/auth/session/user": { + "/api/2.0/rest/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get Session object information", "tags": [ - "Authentication", - "9.0.0.cl" + "Auth" ], "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -108,38 +24,8 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -151,58 +37,55 @@ } } }, - "/api/rest/2.0/auth/session/token": { - "get": { - "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/login": { + "post": { + "operationId": "login", + "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", "tags": [ - "Authentication", - "9.4.0.cl" + "Auth" ], - "parameters": [], - "responses": { - "200": { - "description": "Fetching token for current user successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTokenResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "type": "string", + "deprecated": false + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "username", + "password" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -214,13 +97,12 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/2.0/rest/v2/auth/token/object": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getObjectAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", "tags": [ - "Users", - "9.0.0.cl" + "Auth" ], "requestBody": { "content": { @@ -228,187 +110,63 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, - "visibility": { - "description": "Visibility of the user", + "username": { + "description": "Username of the user account", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" + "deprecated": false }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the user", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "account_type": { - "description": "Type of the account", + "password": { + "description": "The password of the user account", + "default": "", "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "deprecated": false }, - "account_status": { - "description": "Current status of the user account.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true + "deprecated": false }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true - }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } + "object_id": { + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "type": "string", + "deprecated": false }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, "type": "integer", - "format": "int32" + "format": "int32", + "deprecated": false }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" - }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", - "type": "array", - "items": { - "type": "string" - } - }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, - "type": "boolean", - "nullable": true + "format": "int32", + "deprecated": false } - } + }, + "required": [ + "username", + "object_id" + ] } } - }, - "required": true + } }, - "parameters": [], "responses": { "200": { - "description": "User search result.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/Token" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -416,29 +174,74 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "default": "", + "type": "string", + "deprecated": false + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", + "type": "string", + "deprecated": false + }, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + } + }, + "required": [ + "username" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -450,57 +253,35 @@ } } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "To log a user out of the current session, use this endpoint", "tags": [ - "System", - "9.0.0.cl" + "Auth" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, "responses": { "200": { - "description": "Cluster information.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } + "type": "object" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -508,29 +289,52 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "To expire or revoke a token for a user, use this endpoint", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "deprecated": false + }, + "token": { + "type": "string", + "deprecated": false + } + }, + "required": [ + "username", + "token" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -541,14877 +345,157 @@ } } } - }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster config information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/search": { - "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/search": { - "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tags search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/search": { - "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "display_name": { - "description": "Display name of the group", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/sql": { - "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/sql": { - "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/liveboard": { - "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "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).", - "type": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" - }, - "png_options": { - "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/answer": { - "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" - }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/principals/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - } - }, - "required": [ - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/logs/fetch": { - "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "log_type": { - "description": "Name of the log type", - "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] - }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" - }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" - }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "log_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Log fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/search": { - "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Details of local repository configuration", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/search": { - "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ] - }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Commit history of the metadata object", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/search": { - "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } - }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", - "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" - }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true - }, - "configuration": { - "description": "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.", - "type": "object" - }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "List of connections to the datasource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/search": { - "post": { - "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "permissions": { - "description": "Permission details of the Role", - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Roles search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/search": { - "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/session/login": { - "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "object_id": { - "description": "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.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "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.", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/token/full": { - "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string" - }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "type": "string" - }, - "token": { - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/validate": { - "post": { - "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", - "tags": [ - "Authentication", - "9.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Token validation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", - "type": "boolean", - "nullable": true - }, - "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "display_name", - "email" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/update": { - "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", - "type": "boolean", - "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/import": { - "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } - }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "users" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import users operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/change-password": { - "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "current_password", - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/reset-password": { - "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/force-logout": { - "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object" - } - }, - "required": [ - "configuration" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/create": { - "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" - }, - "description": { - "description": "Description of the Org.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/update": { - "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { - "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/create": { - "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tag successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/update": { - "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name or Id of the tag." - } - ], - "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { - "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], - "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/assign": { - "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/unassign": { - "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "display_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/update": { - "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group to modify.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/import": { - "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "groups": { - "description": "Details of groups which are to be imported", - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupsImportListInput" - } - }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/import": { - "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import metadata objects using specified TMLs is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" - ] - }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "emails", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/update/{connection_identifier}": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - } - }, - "required": [ - "name", - "description", - "metadata_type", - "metadata_identifier", - "time_zone", - "recipient_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/delete": { - "post": { - "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the scheduled job." - } - ], - "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/search": { - "post": { - "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" - }, - "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - }, - "schedule_identifiers": { - "description": "unique ID or name of the Schedule", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/update": { - "post": { - "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the scheduled job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the schedule." - } - ], - "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions": { - "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "action_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { - "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DbtSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object", - "nullable": true - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email of the user.", - "nullable": true - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user.", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user.", - "nullable": true - }, - "tenant_id": { - "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Groups to which the user is assigned.", - "nullable": true - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user", - "nullable": true - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user", - "nullable": true - }, - "user_parameters": { - "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "FavoriteMetadataItem": { - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the metadata object." - }, - "name": { - "type": "string", - "description": "name of the metadata object." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata object." - } - } - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the object.", - "nullable": true - } - }, - "description": "The object representation with ID and Name." - }, - "FavoriteMetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object.", - "nullable": true - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the cluster.", - "nullable": true - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster.", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "The timezone of the cluster.", - "nullable": true - }, - "locale": { - "type": "string", - "description": "The default locale of the cluster.", - "nullable": true - }, - "date_format": { - "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true - }, - "api_version": { - "type": "string", - "description": "The API version of the cluster.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true - }, - "license": { - "type": "string", - "description": "The license applied to the cluster.", - "nullable": true - }, - "date_time_format": { - "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true - }, - "time_format": { - "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true - }, - "system_user_id": { - "type": "string", - "description": "The unique identifier of system user.", - "nullable": true - }, - "super_user_id": { - "type": "string", - "description": "The unique identifier of super user.", - "nullable": true - }, - "hidden_object_id": { - "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true - }, - "system_group_id": { - "type": "string", - "description": "The unique identifier of system group.", - "nullable": true - }, - "tsadmin_user_id": { - "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true - }, - "admin_group_id": { - "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true - }, - "all_tables_connection_id": { - "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true - }, - "all_user_group_id": { - "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true - }, - "accept_language": { - "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true - }, - "all_user_group_member_user_count": { - "type": "integer", - "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true - }, - "logical_model_version": { - "type": "integer", - "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true - } - } - }, - "SystemConfig": { - "type": "object", - "properties": { - "onboarding_content_url": { - "type": "string", - "nullable": true - } - } - }, - "OrgResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the Org.", - "nullable": true - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "description": "Status of the Org.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the Org.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "description": "Visibility of the Org.", - "nullable": true - } - } - }, - "Tag": { - "type": "object", - "required": [ - "name", - "id" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "color": { - "type": "string", - "nullable": true - }, - "deleted": { - "type": "boolean", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "external": { - "type": "boolean", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "author_id": { - "type": "string", - "nullable": true - }, - "modifier_id": { - "type": "string", - "nullable": true - }, - "owner_id": { - "type": "string", - "nullable": true - } - } - }, - "UserGroupResponse": { - "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], - "properties": { - "author_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true - }, - "content": { - "type": "object", - "description": "Content details of the group", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true - }, - "default_liveboards": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group", - "nullable": true - }, - "display_name": { - "type": "string", - "description": "Display name of the group." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the group", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true - }, - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index number of the group", - "nullable": true - }, - "index_version": { - "type": "integer", - "format": "int32", - "description": "Index version number of the group", - "nullable": true - }, - "metadata_version": { - "type": "integer", - "format": "int32", - "description": "Metadata version number of the group", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Orgs in which group exists.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the group", - "nullable": true - }, - "sub_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Groups who are part of the group", - "nullable": true - }, - "system_group": { - "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Tags associated with the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Users who are part of the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - }, - "description": "List of roles assgined to the user", - "nullable": true - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id of the role", - "nullable": true - }, - "name": { - "type": "string", - "description": "name of the role", - "nullable": true - } - } - }, - "MetadataListItemInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true - } - } - }, - "PermissionInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Object share mode." - } - }, - "description": "Details of users or groups." - }, - "ExcludeMetadataListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" - } - } - }, - "FavoriteObjectOptionsInput": { - "type": "object", - "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true - } - }, - "description": "Favorite object options." - }, - "MetadataSearchSortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata.", - "nullable": true - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "SqlQueryResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "metadata_type", - "sql_queries" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "sql_queries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SqlQuery" - }, - "description": "SQL query details of metadata objects." - } - } - }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "PdfOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - } - } - }, - "PermissionOfPrincipalsResponse": { - "type": "object", - "properties": { - "principal_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PermissionOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type.", - "nullable": true - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization.", - "nullable": true - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LogResponse": { - "type": "object", - "required": [ - "date", - "log" - ], - "properties": { - "date": { - "type": "string", - "description": "Date timestamp of the log entry" - }, - "log": { - "type": "string", - "description": "Log data" - } - } - }, - "RepoConfigObject": { - "type": "object", - "properties": { - "repository_url": { - "type": "string", - "description": "Remote repository URL configured", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true - }, - "commit_branch_name": { - "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches that have been pulled in local repository", - "nullable": true - }, - "enable_guid_mapping": { - "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true - }, - "configuration_branch_name": { - "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true - }, - "org": { - "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true - } - } - }, - "CommitHistoryResponse": { - "type": "object", - "required": [ - "committer", - "author", - "comment", - "commit_time", - "commit_id", - "branch" - ], - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - } - } - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database.", - "nullable": true - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database.", - "nullable": true - }, - "table": { - "type": "string", - "description": "Name of the table within the schema.", - "nullable": true - }, - "column": { - "type": "string", - "description": "Name of the column within the table.", - "nullable": true - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - } - }, - "SearchConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "description": { - "type": "string", - "description": "Description of the connection.", - "nullable": true - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database.", - "nullable": true - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema.", - "nullable": true - } - } - }, - "Table": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table.", - "nullable": true - }, - "type": { - "type": "string", - "description": "Type of table. Either view or table", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the table", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table", - "nullable": true - } - } - }, - "Column": { - "type": "object", - "required": [ - "name", - "data_type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { - "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - } - } - }, - "SearchRoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - }, - "description": "Response for search role api should handle hidden privileges as well." - }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ResponseCustomAction": { - "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true - }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true - }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "JWT_Metadata_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "nullable": true - } - }, - "description": "Metadata objects." - }, - "User_Parameter_Options": { - "type": "object", - "properties": { - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "nullable": true - }, - "runtime_filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "nullable": true - }, - "runtime_sorts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Parameters" - }, - "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true - } - }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" - }, - "User_Object": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects to apply the User_Object." - }, - "User_Runtime_Filters": { - "type": "object", - "required": [ - "column_name", - "values", - "operator" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Value of the filters." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "GE", - "GT", - "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", - "BW", - "BW_INC", - "BW_INC_MAX", - "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" - ], - "description": "Operator value. Example: EQ" - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime filter.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Filters." - }, - "User_Runtime_Sorts": { - "type": "object", - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Order for the sort.", - "nullable": true - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime sort.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Sorts." - }, - "User_Parameters": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of values." - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime parameter.", - "nullable": true - } - }, - "description": "Objects to apply the Runtime_Parameters." - }, - "Token": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "Scope": { - "type": "object", - "required": [ - "access_type" - ], - "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true - } - } - }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "TokenValidationResponse": { - "type": "object", - "required": [ - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "token_type" - ], - "properties": { - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "token_type": { - "type": "string", - "description": "Type of token." - } - } - }, - "ResponseActivationURL": { - "type": "object", - "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user.", - "nullable": true - } - }, - "description": "The object representation with activation link." - }, - "ImportUser": { - "type": "object", - "required": [ - "user_identifier", - "display_name" - ], - "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { - "type": "string", - "description": "Password of the user.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email address of the user.", - "nullable": true - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - } - }, - "GroupsImportListInput": { - "type": "object", - "required": [ - "display_name", - "group_identifier" - ], - "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges that will be assigned to the group.", - "nullable": true - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true - } - } - }, - "ImportUserGroupsResponse": { - "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], - "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." - } - } - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION", - "USER", - "USER_GROUP", - "ROLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "ShareMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ], - "description": "Type of metadata.", - "nullable": true - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit", - "nullable": true - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "DeployResponse": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object", - "nullable": true - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object", - "nullable": true - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "CreateConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "FetchConnectionDiffStatusResponse": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true - } - } - }, - "RoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - } - }, - "LiveboardOptionsInput": { - "type": "object", - "required": [ - "visualization_identifiers" - ], - "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true - } - }, - "description": "Recipients of the scheduled job notification." - }, - "PrincipalsListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type." - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job.", - "nullable": true - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { - "type": "string", - "description": "Status of the job", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records.", - "nullable": true - } - } - }, - "Author": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "Author of the schedule." - }, - "Frequency": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpression", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "LiveboardOptions": { + } + }, + "components": { + "schemas": { + "ErrorResponse": { "type": "object", - "required": [ - "visualization_identifiers" - ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "error": { + "type": "object" } - }, - "description": "Options to specify details of Liveboard." + } }, - "MetadataResponse": { + "User": { "type": "object", "required": [ "id", - "type" + "name", + "display_name", + "account_type", + "account_status", + "email", + "creation_time_in_millis", + "first_login_time_in_millis" ], "properties": { - "name": { - "type": "string", - "nullable": true - }, "id": { "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] - } - } - }, - "PdfOptions": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "name": { + "type": "string" }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "display_name": { + "type": "string" }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "account_type": { + "type": "string" }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "account_status": { + "type": "string" }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true + "email": { + "type": "string" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { + "user_groups": { "type": "array", "items": { - "type": "string" - }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "$ref": "#/components/schemas/UserGroup" + } }, - "principals": { + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" - } - } - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true - } - }, - "description": "Schedule run response object" - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ], - "nullable": true - } - } - }, - "SortingOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "type": "string" + } }, - "record_size": { + "creation_time_in_millis": { "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "format": "int32" }, - "record_offset": { + "first_login_time_in_millis": { "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" - }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "format": "int32" }, - "parameters": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "type": "string" + } } } }, - "Associate_Metadata_Input_Create": { + "RiseSetter": { "type": "object", "required": [ - "identifier" + "field", + "path" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "path": { + "type": "string" } } }, - "ActionConfigInputCreate": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true - } - }, - "description": "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." - }, - "Action_Details_Input": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_userid", + "valid_for_username" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "token": { + "type": "string" }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true + "creation_time_in_millis": { + "type": "integer", + "format": "int32" }, - "url": { - "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "expiration_time_in_millis": { + "type": "integer", + "format": "int32" }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "scope": { + "$ref": "#/components/schemas/Scope" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "valid_for_userid": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "valid_for_username": { + "type": "string" } } }, - "ActionConfigInput": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ModelTableList": { + "UserGroup": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "id" ], "properties": { - "model_name": { - "type": "string", - "description": "Name of the Model." - }, - "model_path": { - "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "name": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "id": { + "type": "string" } } }, - "DbtSearchResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "dbt_connection_identifier": { - "type": "string", - "nullable": true - }, - "project_name": { - "type": "string", - "nullable": true - }, - "connection_id": { - "type": "string", - "nullable": true - }, - "connection_name": { - "type": "string", - "nullable": true - }, - "cdw_database": { - "type": "string", - "nullable": true + "access_type": { + "type": "string" }, - "import_type": { - "type": "string", - "nullable": true + "organisation_id": { + "type": "integer", + "format": "int32" }, - "author_name": { - "type": "string", - "nullable": true + "metadata_id": { + "type": "string" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 35a5058b5bc4f707b6bb99efb5dc9d85cc959f24 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 Aug 2024 18:53:06 +0000 Subject: [PATCH 139/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15482 +++++++++++++++++++++++++++++- 1 file changed, 15199 insertions(+), 283 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2e5c7fec7..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,18 +4,102 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": [ + "9.6.0.cl" + ], + "description": "Roles for version 9.6.0.cl" + } + ], "tags": [], "paths": { - "/api/2.0/rest/auth/session/user": { + "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get Session object information", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +108,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -33,59 +117,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/login": { - "post": { - "operationId": "login", - "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "type": "string", - "deprecated": false - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", - "type": "boolean", - "deprecated": false - } - }, - "required": [ - "username", - "password" - ] + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -97,76 +151,58 @@ } } }, - "/api/2.0/rest/v2/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "default": "", - "type": "string", - "deprecated": false - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", - "type": "string", - "deprecated": false - }, - "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false - }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false - }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", - "default": 0, - "type": "integer", - "format": "int32", - "deprecated": false - } - }, - "required": [ - "username", - "object_id" - ] - } - } - } - }, + "parameters": [], "responses": { "200": { + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -178,12 +214,13 @@ } } }, - "/api/2.0/rest/v2/auth/token/full": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "getFullAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -191,57 +228,187 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the user account", + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", "type": "string", - "deprecated": false + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "password": { - "description": "The password of the user account", - "default": "", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", "type": "string", - "deprecated": false + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", + "account_status": { + "description": "Current status of the user account.", "type": "string", - "deprecated": false + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", + "type": "array", + "items": { + "type": "string" + } }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions" + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "username" - ] + } } } - } + }, + "required": true }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -249,39 +416,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -293,48 +450,87 @@ } } }, - "/api/2.0/rest/v2/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "System", + "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "type": "string", - "deprecated": false - }, - "token": { - "type": "string", - "deprecated": false - } + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" }, - "required": [ - "username", - "token" - ] + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } } } - } - }, - "responses": { - "200": { + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -345,157 +541,14877 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, - "User": { - "type": "object", + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/search": { + "post": { + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/search": { + "post": { + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "display_name": { + "description": "Display name of the group", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" + }, + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", + "$ref": "#/components/schemas/SortOptions" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataListItemInput" + } + }, + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "$ref": "#/components/schemas/MetadataSearchSortOptions" + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/sql": { + "post": { + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/sql": { + "post": { + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of an Answer.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/liveboard": { + "post": { + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "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).", + "type": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput" + }, + "png_options": { + "description": "Options for PNG export.", + "$ref": "#/components/schemas/PngOptionsInput" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/answer": { + "post": { + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/logs/fetch": { + "post": { + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Log", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/search": { + "post": { + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Details of local repository configuration", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/search": { + "post": { + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ] + }, + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", + "type": "string" + }, + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Commit history of the metadata object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + } + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptionInput" + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object" + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of connections to the datasource.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/search": { + "post": { + "operationId": "searchRoles", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_identifiers": { + "description": "unique ID or name of the Roles", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Roles search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/update": { + "post": { + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/reset-password": { + "post": { + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/create": { + "post": { + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org.", + "type": "string" + }, + "description": { + "description": "Description of the Org.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/update": { + "post": { + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/delete": { + "post": { + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/create": { + "post": { + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" + }, + "display_name": { + "description": "Display name for the group.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "display_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/update": { + "post": { + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group to modify.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description for the group.", + "type": "string" + }, + "display_name": { + "description": "Display name of the group.", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/delete": { + "post": { + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/import": { + "post": { + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } + }, + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/import": { + "post": { + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import metadata objects using specified TMLs is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export": { + "post": { + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExportMetadataTypeInput" + } + }, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "default": false, + "type": "boolean", + "nullable": true + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/delete": { + "post": { + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } + }, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "emails", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/create": { + "post": { + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_url": { + "description": "URL for connecting to remote repository", + "type": "string" + }, + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" + } + }, + "required": [ + "repository_url", + "username", + "access_token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully configured local repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/update": { + "post": { + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username to authenticate connection to version control system", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully updated local repository configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/delete": { + "post": { + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/commit": { + "post": { + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "comment": { + "description": "Comment to be added to the commit", + "type": "string" + } + }, + "required": [ + "metadata", + "comment" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully committed the metadata objects", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { + "post": { + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted" + } + ], + "responses": { + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/validate": { + "post": { + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", + "type": "string" + }, + "target_branch_name": { + "description": "Name of the branch where files will be merged", + "type": "string" + } + }, + "required": [ + "source_branch_name", + "target_branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "validation done successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/deploy": { + "post": { + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully deployed the changes", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string" + }, + "description": { + "description": "Description of the connection.", + "type": "string" + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] + }, + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" + }, + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/update": { + "post": { + "operationId": "updateRole", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "200": { + "description": "Role successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/delete": { + "post": { + "operationId": "deleteRole", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/create": { + "post": { + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of the metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency settings for the scheduled job.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + } + }, + "required": [ + "name", + "description", + "metadata_type", + "metadata_identifier", + "time_zone", + "recipient_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the scheduled job." + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with the scheduled jobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortingOptions" + }, + "history_runs_options": { + "description": "Options while fetching history runs for the schedule.", + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/update": { + "post": { + "operationId": "updateSchedule", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the scheduled job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify the details of a Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency of the scheduled job run.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input_Create" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "action_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "nullable": true + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user.", + "nullable": true + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password.", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds.", + "nullable": true + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email of the user.", + "nullable": true + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the user is external.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true + }, + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true + }, + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden.", + "nullable": true + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present.", + "nullable": true + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience.", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user.", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the user.", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true + }, + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user.", + "nullable": true + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user.", + "nullable": true + }, + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user.", + "nullable": true + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned.", + "nullable": true + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of.", + "nullable": true + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org.", + "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user", + "nullable": true + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user", + "nullable": true + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + } + } + }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The current Org context of the user." + }, + "FavoriteMetadataItem": { + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the metadata object." + }, + "name": { + "type": "string", + "description": "name of the metadata object." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata object." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the object.", + "nullable": true + } + }, + "description": "The object representation with ID and Name." + }, + "FavoriteMetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object.", + "nullable": true + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "SystemInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the cluster.", + "nullable": true + }, + "release_version": { + "type": "string", + "description": "The release version of the cluster.", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "The timezone of the cluster.", + "nullable": true + }, + "locale": { + "type": "string", + "description": "The default locale of the cluster.", + "nullable": true + }, + "date_format": { + "type": "string", + "description": "The default date format representation of the cluster.", + "nullable": true + }, + "api_version": { + "type": "string", + "description": "The API version of the cluster.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The deployment type of the cluster.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The deployed environment of the cluster.", + "nullable": true + }, + "license": { + "type": "string", + "description": "The license applied to the cluster.", + "nullable": true + }, + "date_time_format": { + "type": "string", + "description": "The default date time format representation of the cluster.", + "nullable": true + }, + "time_format": { + "type": "string", + "description": "The default time format representation of the cluster.", + "nullable": true + }, + "system_user_id": { + "type": "string", + "description": "The unique identifier of system user.", + "nullable": true + }, + "super_user_id": { + "type": "string", + "description": "The unique identifier of super user.", + "nullable": true + }, + "hidden_object_id": { + "type": "string", + "description": "The unique identifier of hidden object.", + "nullable": true + }, + "system_group_id": { + "type": "string", + "description": "The unique identifier of system group.", + "nullable": true + }, + "tsadmin_user_id": { + "type": "string", + "description": "The unique identifier of tsadmin user.", + "nullable": true + }, + "admin_group_id": { + "type": "string", + "description": "The unique identifier of admin group.", + "nullable": true + }, + "all_tables_connection_id": { + "type": "string", + "description": "The unique identifier of all tables connection.", + "nullable": true + }, + "all_user_group_id": { + "type": "string", + "description": "The unique identifier of ALL group.", + "nullable": true + }, + "accept_language": { + "type": "string", + "description": "The supported accept language by the cluster.", + "nullable": true + }, + "all_user_group_member_user_count": { + "type": "integer", + "format": "int32", + "description": "The count of users of ALL group.", + "nullable": true + }, + "logical_model_version": { + "type": "integer", + "format": "int32", + "description": "The version number of logical model of the cluster.", + "nullable": true + } + } + }, + "SystemConfig": { + "type": "object", + "properties": { + "onboarding_content_url": { + "type": "string", + "nullable": true + } + } + }, + "OrgResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the Org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Org.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], + "description": "Status of the Org.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the Org.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ], + "description": "Visibility of the Org.", + "nullable": true + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name", + "id" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "color": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "author_id": { + "type": "string", + "nullable": true + }, + "modifier_id": { + "type": "string", + "nullable": true + }, + "owner_id": { + "type": "string", + "nullable": true + } + } + }, + "UserGroupResponse": { + "type": "object", + "required": [ + "display_name", + "id", + "name", + "visibility" + ], + "properties": { + "author_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Content details of the group", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the group in milliseconds", + "nullable": true + }, + "default_liveboards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the group is deleted", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the group is deprecated", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group", + "nullable": true + }, + "display_name": { + "type": "string", + "description": "Display name of the group." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the group is external", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the group", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the group is hidden", + "nullable": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index number of the group", + "nullable": true + }, + "index_version": { + "type": "integer", + "format": "int32", + "description": "Index version number of the group", + "nullable": true + }, + "metadata_version": { + "type": "integer", + "format": "int32", + "description": "Metadata version number of the group", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the group in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Orgs in which group exists.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the group", + "nullable": true + }, + "sub_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Groups who are part of the group", + "nullable": true + }, + "system_group": { + "type": "boolean", + "description": "Indicates whether the group is a system group.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Tags associated with the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Users who are part of the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user", + "nullable": true + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role", + "nullable": true + }, + "name": { + "type": "string", + "description": "name of the role", + "nullable": true + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata.", + "nullable": true + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects.", + "nullable": true + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects.", + "nullable": true + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + } + } + }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type.", + "nullable": true + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization.", + "nullable": true + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization.", + "nullable": true + } + } + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with fetch data api" + }, + "LogResponse": { + "type": "object", + "required": [ + "date", + "log" + ], + "properties": { + "date": { + "type": "string", + "description": "Date timestamp of the log entry" + }, + "log": { + "type": "string", + "description": "Log data" + } + } + }, + "RepoConfigObject": { + "type": "object", + "properties": { + "repository_url": { + "type": "string", + "description": "Remote repository URL configured", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username to authenticate connection to the version control system", + "nullable": true + }, + "commit_branch_name": { + "type": "string", + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Branches that have been pulled in local repository", + "nullable": true + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true + }, + "configuration_branch_name": { + "type": "string", + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the Org", + "nullable": true + } + } + }, + "CommitHistoryResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment", + "commit_time", + "commit_id", + "branch" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + } + } + }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database.", + "nullable": true + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database.", + "nullable": true + }, + "table": { + "type": "string", + "description": "Name of the table within the schema.", + "nullable": true + }, + "column": { + "type": "string", + "description": "Name of the column within the table.", + "nullable": true + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection.", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects", + "nullable": true + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database.", + "nullable": true + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created.", + "nullable": true + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema.", + "nullable": true + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table.", + "nullable": true + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the table", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" + }, + "data_type": { + "type": "string", + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate", + "nullable": true + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + } + } + }, + "SearchRoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + }, + "description": "Response for search role api should handle hidden privileges as well." + }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ResponseCustomAction": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "`Type` and configuration data for custom actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "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." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to assign the the custom action to.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT.", + "nullable": true + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT.", + "nullable": true + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT.", + "nullable": true + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "nullable": true + } + }, + "description": "Metadata objects." + }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "nullable": true + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + }, + "nullable": true + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + }, + "nullable": true + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later", + "nullable": true + } + }, + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort.", + "nullable": true + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter.", + "nullable": true + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, + "Token": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "Scope": { + "type": "object", + "required": [ + "access_type" + ], + "properties": { + "access_type": { + "type": "string", + "description": "Object access scope type." + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_id": { + "type": "string", + "description": "Unique identifier of the Org.", + "nullable": true + } + } + }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user.", + "nullable": true + } + }, + "description": "The object representation with activation link." + }, + "ImportUser": { + "type": "object", + "required": [ + "user_identifier", + "display_name" + ], + "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "password": { + "type": "string", + "description": "Password of the user.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email address of the user.", + "nullable": true + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true + } + } + }, + "ImportUsersResponse": { + "type": "object", + "properties": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + } + }, + "GroupsImportListInput": { + "type": "object", + "required": [ + "display_name", + "group_identifier" + ], + "properties": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges that will be assigned to the group.", + "nullable": true + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true + } + } + }, + "ImportUserGroupsResponse": { + "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], + "properties": { + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." + } + } + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API" + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit", + "nullable": true + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object", + "nullable": true + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object", + "nullable": true + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file", + "nullable": true + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff.", + "nullable": true + } + } + }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + } + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients.", + "nullable": true + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true + } + }, + "description": "Recipients of the scheduled job notification." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job.", + "nullable": true + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard.", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export.", + "nullable": true + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { + "type": "string", + "description": "Status of the job", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records.", + "nullable": true + } + } + }, + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "MetadataResponse": { + "type": "object", "required": [ "id", - "name", - "display_name", - "account_type", - "account_status", - "email", - "creation_time_in_millis", - "first_login_time_in_millis" + "type" ], "properties": { + "name": { + "type": "string", + "nullable": true + }, "id": { "type": "string" }, - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, - "display_name": { - "type": "string" + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, - "account_type": { - "type": "string" + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, - "account_status": { - "type": "string" + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, - "email": { - "type": "string" + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - } + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true }, - "privileges": { + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { "type": "array", "items": { "type": "string" - } - }, - "creation_time_in_millis": { - "type": "integer", - "format": "int32" - }, - "first_login_time_in_millis": { - "type": "integer", - "format": "int32" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, - "tags": { + "principals": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } - } + }, + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "RiseSetter": { + "PrincipalsListItem": { "type": "object", "required": [ - "field", - "path" + "identifier", + "type" ], "properties": { - "field": { - "type": "string" + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." }, - "path": { - "type": "string" + "type": { + "type": "string", + "description": "Principal type. Valid values are" } } }, - "Token": { + "ResponseScheduleRun": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_userid", - "valid_for_username" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "token": { - "type": "string" + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "creation_time_in_millis": { + "start_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "expiration_time_in_millis": { + "end_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run end time in milliseconds." }, - "scope": { - "$ref": "#/components/schemas/Scope" + "status": { + "type": "string", + "description": "Status of the schedule run." }, - "valid_for_userid": { - "type": "string" + "detail": { + "type": "string", + "description": "Message details related to the schedule run.", + "nullable": true + } + }, + "description": "Schedule run response object" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true }, - "valid_for_username": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "nullable": true } } }, - "UserGroup": { + "SortingOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + }, + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "name", - "id" + "url" ], "properties": { - "name": { - "type": "string" + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true }, - "id": { - "type": "string" + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true } } }, - "Scope": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { - "type": "string" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, - "organisation_id": { - "type": "integer", - "format": "int32" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "metadata_id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true + } + }, + "description": "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." + }, + "Action_Details_Input": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInput": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ModelTableList": { + "type": "object", + "required": [ + "model_name", + "tables" + ], + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string", + "nullable": true + }, + "project_name": { + "type": "string", + "nullable": true + }, + "connection_id": { + "type": "string", + "nullable": true + }, + "connection_name": { + "type": "string", + "nullable": true + }, + "cdw_database": { + "type": "string", + "nullable": true + }, + "import_type": { + "type": "string", + "nullable": true + }, + "author_name": { + "type": "string", + "nullable": true } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 518daf48dc935640cd150645687fa17c46c500a8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 05:45:02 +0000 Subject: [PATCH 140/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15472 +----------------------------- 1 file changed, 278 insertions(+), 15194 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..2e5c7fec7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,102 +4,18 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, - "x-roles": [ - { - "name": "9.0.0.cl", - "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], - "description": "Roles for version 9.0.0.cl" - }, - { - "name": "9.12.0.cl", - "id": "9.12.0.cl", - "tags": [ - "9.12.0.cl" - ], - "description": "Roles for version 9.12.0.cl" - }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, - { - "name": "9.2.0.cl", - "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], - "description": "Roles for version 9.2.0.cl" - }, - { - "name": "10.1.0.cl", - "id": "10.1.0.cl", - "tags": [ - "10.1.0.cl" - ], - "description": "Roles for version 10.1.0.cl" - }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, - { - "name": "9.5.0.cl", - "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], - "description": "Roles for version 9.5.0.cl" - }, - { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], - "description": "Roles for version 9.6.0.cl" - } - ], "tags": [], "paths": { - "/api/rest/2.0/auth/session/user": { + "/api/2.0/rest/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get Session object information", "tags": [ - "Authentication", - "9.0.0.cl" + "Auth" ], "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -108,38 +24,8 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -151,58 +37,55 @@ } } }, - "/api/rest/2.0/auth/session/token": { - "get": { - "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/login": { + "post": { + "operationId": "login", + "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", "tags": [ - "Authentication", - "9.4.0.cl" + "Auth" ], - "parameters": [], - "responses": { - "200": { - "description": "Fetching token for current user successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTokenResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "type": "string", + "deprecated": false + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "username", + "password" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -214,13 +97,12 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/2.0/rest/v2/auth/token/object": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getObjectAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", "tags": [ - "Users", - "9.0.0.cl" + "Auth" ], "requestBody": { "content": { @@ -228,187 +110,63 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, - "visibility": { - "description": "Visibility of the user", + "username": { + "description": "Username of the user account", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" + "deprecated": false }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the user", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "account_type": { - "description": "Type of the account", + "password": { + "description": "The password of the user account", + "default": "", "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "deprecated": false }, - "account_status": { - "description": "Current status of the user account.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true + "deprecated": false }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true - }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } + "object_id": { + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "type": "string", + "deprecated": false }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, "type": "integer", - "format": "int32" + "format": "int32", + "deprecated": false }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" - }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", - "type": "array", - "items": { - "type": "string" - } - }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, - "type": "boolean", - "nullable": true + "format": "int32", + "deprecated": false } - } + }, + "required": [ + "username", + "object_id" + ] } } - }, - "required": true + } }, - "parameters": [], "responses": { "200": { - "description": "User search result.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/Token" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -416,29 +174,74 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "default": "", + "type": "string", + "deprecated": false + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", + "type": "string", + "deprecated": false + }, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + } + }, + "required": [ + "username" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -450,57 +253,35 @@ } } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "To log a user out of the current session, use this endpoint", "tags": [ - "System", - "9.0.0.cl" + "Auth" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, "responses": { "200": { - "description": "Cluster information.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } + "type": "object" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -508,29 +289,52 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "To expire or revoke a token for a user, use this endpoint", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "deprecated": false + }, + "token": { + "type": "string", + "deprecated": false + } + }, + "required": [ + "username", + "token" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -541,14877 +345,157 @@ } } } - }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster config information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/search": { - "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/search": { - "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tags search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/search": { - "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "display_name": { - "description": "Display name of the group", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/sql": { - "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/sql": { - "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/liveboard": { - "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "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).", - "type": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" - }, - "png_options": { - "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/answer": { - "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" - }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/principals/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - } - }, - "required": [ - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/logs/fetch": { - "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "log_type": { - "description": "Name of the log type", - "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] - }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" - }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" - }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "log_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Log fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/search": { - "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Details of local repository configuration", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/search": { - "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ] - }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Commit history of the metadata object", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/search": { - "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } - }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", - "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" - }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true - }, - "configuration": { - "description": "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.", - "type": "object" - }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "List of connections to the datasource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/search": { - "post": { - "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "permissions": { - "description": "Permission details of the Role", - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Roles search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/search": { - "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/session/login": { - "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "object_id": { - "description": "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.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "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.", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/token/full": { - "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string" - }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "type": "string" - }, - "token": { - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/validate": { - "post": { - "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", - "tags": [ - "Authentication", - "9.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Token validation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", - "type": "boolean", - "nullable": true - }, - "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "display_name", - "email" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/update": { - "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", - "type": "boolean", - "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/import": { - "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } - }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "users" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import users operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/change-password": { - "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "current_password", - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/reset-password": { - "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/force-logout": { - "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object" - } - }, - "required": [ - "configuration" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/create": { - "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" - }, - "description": { - "description": "Description of the Org.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/update": { - "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { - "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/create": { - "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tag successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/update": { - "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name or Id of the tag." - } - ], - "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { - "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], - "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/assign": { - "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/unassign": { - "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "display_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/update": { - "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group to modify.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/import": { - "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "groups": { - "description": "Details of groups which are to be imported", - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupsImportListInput" - } - }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/import": { - "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import metadata objects using specified TMLs is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" - ] - }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "emails", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/update/{connection_identifier}": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - } - }, - "required": [ - "name", - "description", - "metadata_type", - "metadata_identifier", - "time_zone", - "recipient_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/delete": { - "post": { - "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the scheduled job." - } - ], - "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/search": { - "post": { - "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" - }, - "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - }, - "schedule_identifiers": { - "description": "unique ID or name of the Schedule", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/update": { - "post": { - "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the scheduled job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the schedule." - } - ], - "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions": { - "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "action_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { - "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DbtSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object", - "nullable": true - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email of the user.", - "nullable": true - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user.", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user.", - "nullable": true - }, - "tenant_id": { - "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Groups to which the user is assigned.", - "nullable": true - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user", - "nullable": true - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user", - "nullable": true - }, - "user_parameters": { - "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "FavoriteMetadataItem": { - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the metadata object." - }, - "name": { - "type": "string", - "description": "name of the metadata object." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata object." - } - } - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the object.", - "nullable": true - } - }, - "description": "The object representation with ID and Name." - }, - "FavoriteMetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object.", - "nullable": true - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the cluster.", - "nullable": true - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster.", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "The timezone of the cluster.", - "nullable": true - }, - "locale": { - "type": "string", - "description": "The default locale of the cluster.", - "nullable": true - }, - "date_format": { - "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true - }, - "api_version": { - "type": "string", - "description": "The API version of the cluster.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true - }, - "license": { - "type": "string", - "description": "The license applied to the cluster.", - "nullable": true - }, - "date_time_format": { - "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true - }, - "time_format": { - "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true - }, - "system_user_id": { - "type": "string", - "description": "The unique identifier of system user.", - "nullable": true - }, - "super_user_id": { - "type": "string", - "description": "The unique identifier of super user.", - "nullable": true - }, - "hidden_object_id": { - "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true - }, - "system_group_id": { - "type": "string", - "description": "The unique identifier of system group.", - "nullable": true - }, - "tsadmin_user_id": { - "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true - }, - "admin_group_id": { - "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true - }, - "all_tables_connection_id": { - "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true - }, - "all_user_group_id": { - "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true - }, - "accept_language": { - "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true - }, - "all_user_group_member_user_count": { - "type": "integer", - "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true - }, - "logical_model_version": { - "type": "integer", - "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true - } - } - }, - "SystemConfig": { - "type": "object", - "properties": { - "onboarding_content_url": { - "type": "string", - "nullable": true - } - } - }, - "OrgResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the Org.", - "nullable": true - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "description": "Status of the Org.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the Org.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "description": "Visibility of the Org.", - "nullable": true - } - } - }, - "Tag": { - "type": "object", - "required": [ - "name", - "id" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "color": { - "type": "string", - "nullable": true - }, - "deleted": { - "type": "boolean", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "external": { - "type": "boolean", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "author_id": { - "type": "string", - "nullable": true - }, - "modifier_id": { - "type": "string", - "nullable": true - }, - "owner_id": { - "type": "string", - "nullable": true - } - } - }, - "UserGroupResponse": { - "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], - "properties": { - "author_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true - }, - "content": { - "type": "object", - "description": "Content details of the group", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true - }, - "default_liveboards": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group", - "nullable": true - }, - "display_name": { - "type": "string", - "description": "Display name of the group." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the group", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true - }, - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index number of the group", - "nullable": true - }, - "index_version": { - "type": "integer", - "format": "int32", - "description": "Index version number of the group", - "nullable": true - }, - "metadata_version": { - "type": "integer", - "format": "int32", - "description": "Metadata version number of the group", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Orgs in which group exists.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the group", - "nullable": true - }, - "sub_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Groups who are part of the group", - "nullable": true - }, - "system_group": { - "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Tags associated with the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Users who are part of the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - }, - "description": "List of roles assgined to the user", - "nullable": true - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id of the role", - "nullable": true - }, - "name": { - "type": "string", - "description": "name of the role", - "nullable": true - } - } - }, - "MetadataListItemInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true - } - } - }, - "PermissionInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Object share mode." - } - }, - "description": "Details of users or groups." - }, - "ExcludeMetadataListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" - } - } - }, - "FavoriteObjectOptionsInput": { - "type": "object", - "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true - } - }, - "description": "Favorite object options." - }, - "MetadataSearchSortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata.", - "nullable": true - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "SqlQueryResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "metadata_type", - "sql_queries" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "sql_queries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SqlQuery" - }, - "description": "SQL query details of metadata objects." - } - } - }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "PdfOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - } - } - }, - "PermissionOfPrincipalsResponse": { - "type": "object", - "properties": { - "principal_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PermissionOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type.", - "nullable": true - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization.", - "nullable": true - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LogResponse": { - "type": "object", - "required": [ - "date", - "log" - ], - "properties": { - "date": { - "type": "string", - "description": "Date timestamp of the log entry" - }, - "log": { - "type": "string", - "description": "Log data" - } - } - }, - "RepoConfigObject": { - "type": "object", - "properties": { - "repository_url": { - "type": "string", - "description": "Remote repository URL configured", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true - }, - "commit_branch_name": { - "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches that have been pulled in local repository", - "nullable": true - }, - "enable_guid_mapping": { - "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true - }, - "configuration_branch_name": { - "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true - }, - "org": { - "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true - } - } - }, - "CommitHistoryResponse": { - "type": "object", - "required": [ - "committer", - "author", - "comment", - "commit_time", - "commit_id", - "branch" - ], - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - } - } - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database.", - "nullable": true - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database.", - "nullable": true - }, - "table": { - "type": "string", - "description": "Name of the table within the schema.", - "nullable": true - }, - "column": { - "type": "string", - "description": "Name of the column within the table.", - "nullable": true - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - } - }, - "SearchConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "description": { - "type": "string", - "description": "Description of the connection.", - "nullable": true - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database.", - "nullable": true - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema.", - "nullable": true - } - } - }, - "Table": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table.", - "nullable": true - }, - "type": { - "type": "string", - "description": "Type of table. Either view or table", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the table", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table", - "nullable": true - } - } - }, - "Column": { - "type": "object", - "required": [ - "name", - "data_type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { - "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - } - } - }, - "SearchRoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - }, - "description": "Response for search role api should handle hidden privileges as well." - }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ResponseCustomAction": { - "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true - }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true - }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "JWT_Metadata_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "nullable": true - } - }, - "description": "Metadata objects." - }, - "User_Parameter_Options": { - "type": "object", - "properties": { - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "nullable": true - }, - "runtime_filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "nullable": true - }, - "runtime_sorts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Parameters" - }, - "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true - } - }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" - }, - "User_Object": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects to apply the User_Object." - }, - "User_Runtime_Filters": { - "type": "object", - "required": [ - "column_name", - "values", - "operator" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Value of the filters." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "GE", - "GT", - "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", - "BW", - "BW_INC", - "BW_INC_MAX", - "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" - ], - "description": "Operator value. Example: EQ" - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime filter.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Filters." - }, - "User_Runtime_Sorts": { - "type": "object", - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Order for the sort.", - "nullable": true - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime sort.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Sorts." - }, - "User_Parameters": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of values." - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime parameter.", - "nullable": true - } - }, - "description": "Objects to apply the Runtime_Parameters." - }, - "Token": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "Scope": { - "type": "object", - "required": [ - "access_type" - ], - "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true - } - } - }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "TokenValidationResponse": { - "type": "object", - "required": [ - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "token_type" - ], - "properties": { - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "token_type": { - "type": "string", - "description": "Type of token." - } - } - }, - "ResponseActivationURL": { - "type": "object", - "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user.", - "nullable": true - } - }, - "description": "The object representation with activation link." - }, - "ImportUser": { - "type": "object", - "required": [ - "user_identifier", - "display_name" - ], - "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { - "type": "string", - "description": "Password of the user.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email address of the user.", - "nullable": true - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - } - }, - "GroupsImportListInput": { - "type": "object", - "required": [ - "display_name", - "group_identifier" - ], - "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges that will be assigned to the group.", - "nullable": true - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true - } - } - }, - "ImportUserGroupsResponse": { - "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], - "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." - } - } - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION", - "USER", - "USER_GROUP", - "ROLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "ShareMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ], - "description": "Type of metadata.", - "nullable": true - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit", - "nullable": true - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "DeployResponse": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object", - "nullable": true - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object", - "nullable": true - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "CreateConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "FetchConnectionDiffStatusResponse": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true - } - } - }, - "RoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - } - }, - "LiveboardOptionsInput": { - "type": "object", - "required": [ - "visualization_identifiers" - ], - "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true - } - }, - "description": "Recipients of the scheduled job notification." - }, - "PrincipalsListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type." - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job.", - "nullable": true - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { - "type": "string", - "description": "Status of the job", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records.", - "nullable": true - } - } - }, - "Author": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "Author of the schedule." - }, - "Frequency": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpression", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "LiveboardOptions": { + } + }, + "components": { + "schemas": { + "ErrorResponse": { "type": "object", - "required": [ - "visualization_identifiers" - ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "error": { + "type": "object" } - }, - "description": "Options to specify details of Liveboard." + } }, - "MetadataResponse": { + "User": { "type": "object", "required": [ "id", - "type" + "name", + "display_name", + "account_type", + "account_status", + "email", + "creation_time_in_millis", + "first_login_time_in_millis" ], "properties": { - "name": { - "type": "string", - "nullable": true - }, "id": { "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] - } - } - }, - "PdfOptions": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "name": { + "type": "string" }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "display_name": { + "type": "string" }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "account_type": { + "type": "string" }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "account_status": { + "type": "string" }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true + "email": { + "type": "string" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { + "user_groups": { "type": "array", "items": { - "type": "string" - }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "$ref": "#/components/schemas/UserGroup" + } }, - "principals": { + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" - } - } - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true - } - }, - "description": "Schedule run response object" - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ], - "nullable": true - } - } - }, - "SortingOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "type": "string" + } }, - "record_size": { + "creation_time_in_millis": { "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "format": "int32" }, - "record_offset": { + "first_login_time_in_millis": { "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" - }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "format": "int32" }, - "parameters": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "type": "string" + } } } }, - "Associate_Metadata_Input_Create": { + "RiseSetter": { "type": "object", "required": [ - "identifier" + "field", + "path" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "path": { + "type": "string" } } }, - "ActionConfigInputCreate": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true - } - }, - "description": "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." - }, - "Action_Details_Input": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_userid", + "valid_for_username" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "token": { + "type": "string" }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true + "creation_time_in_millis": { + "type": "integer", + "format": "int32" }, - "url": { - "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "expiration_time_in_millis": { + "type": "integer", + "format": "int32" }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "scope": { + "$ref": "#/components/schemas/Scope" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "valid_for_userid": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "valid_for_username": { + "type": "string" } } }, - "ActionConfigInput": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ModelTableList": { + "UserGroup": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "id" ], "properties": { - "model_name": { - "type": "string", - "description": "Name of the Model." - }, - "model_path": { - "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "name": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "id": { + "type": "string" } } }, - "DbtSearchResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "dbt_connection_identifier": { - "type": "string", - "nullable": true - }, - "project_name": { - "type": "string", - "nullable": true - }, - "connection_id": { - "type": "string", - "nullable": true - }, - "connection_name": { - "type": "string", - "nullable": true - }, - "cdw_database": { - "type": "string", - "nullable": true + "access_type": { + "type": "string" }, - "import_type": { - "type": "string", - "nullable": true + "organisation_id": { + "type": "integer", + "format": "int32" }, - "author_name": { - "type": "string", - "nullable": true + "metadata_id": { + "type": "string" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 54a901a8653f9d6524ce795d44a474481eb40af2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 05:51:30 +0000 Subject: [PATCH 141/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15482 +++++++++++++++++++++++++++++- 1 file changed, 15199 insertions(+), 283 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2e5c7fec7..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,18 +4,102 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": [ + "9.6.0.cl" + ], + "description": "Roles for version 9.6.0.cl" + } + ], "tags": [], "paths": { - "/api/2.0/rest/auth/session/user": { + "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get Session object information", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +108,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -33,59 +117,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/login": { - "post": { - "operationId": "login", - "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "type": "string", - "deprecated": false - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", - "type": "boolean", - "deprecated": false - } - }, - "required": [ - "username", - "password" - ] + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -97,76 +151,58 @@ } } }, - "/api/2.0/rest/v2/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "default": "", - "type": "string", - "deprecated": false - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", - "type": "string", - "deprecated": false - }, - "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false - }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false - }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", - "default": 0, - "type": "integer", - "format": "int32", - "deprecated": false - } - }, - "required": [ - "username", - "object_id" - ] - } - } - } - }, + "parameters": [], "responses": { "200": { + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -178,12 +214,13 @@ } } }, - "/api/2.0/rest/v2/auth/token/full": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "getFullAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -191,57 +228,187 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the user account", + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", "type": "string", - "deprecated": false + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "password": { - "description": "The password of the user account", - "default": "", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", "type": "string", - "deprecated": false + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", + "account_status": { + "description": "Current status of the user account.", "type": "string", - "deprecated": false + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", + "type": "array", + "items": { + "type": "string" + } }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions" + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "username" - ] + } } } - } + }, + "required": true }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -249,39 +416,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -293,48 +450,87 @@ } } }, - "/api/2.0/rest/v2/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "System", + "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "type": "string", - "deprecated": false - }, - "token": { - "type": "string", - "deprecated": false - } + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" }, - "required": [ - "username", - "token" - ] + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } } } - } - }, - "responses": { - "200": { + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -345,157 +541,14877 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, - "User": { - "type": "object", + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/search": { + "post": { + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/search": { + "post": { + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "display_name": { + "description": "Display name of the group", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" + }, + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", + "$ref": "#/components/schemas/SortOptions" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataListItemInput" + } + }, + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "$ref": "#/components/schemas/MetadataSearchSortOptions" + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/sql": { + "post": { + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/sql": { + "post": { + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of an Answer.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/liveboard": { + "post": { + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "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).", + "type": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput" + }, + "png_options": { + "description": "Options for PNG export.", + "$ref": "#/components/schemas/PngOptionsInput" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/answer": { + "post": { + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/logs/fetch": { + "post": { + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Log", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/search": { + "post": { + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Details of local repository configuration", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/search": { + "post": { + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ] + }, + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", + "type": "string" + }, + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Commit history of the metadata object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + } + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptionInput" + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object" + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of connections to the datasource.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/search": { + "post": { + "operationId": "searchRoles", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_identifiers": { + "description": "unique ID or name of the Roles", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Roles search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/update": { + "post": { + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/reset-password": { + "post": { + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/create": { + "post": { + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org.", + "type": "string" + }, + "description": { + "description": "Description of the Org.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/update": { + "post": { + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/delete": { + "post": { + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/create": { + "post": { + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" + }, + "display_name": { + "description": "Display name for the group.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "display_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/update": { + "post": { + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group to modify.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description for the group.", + "type": "string" + }, + "display_name": { + "description": "Display name of the group.", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/delete": { + "post": { + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/import": { + "post": { + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } + }, + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/import": { + "post": { + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import metadata objects using specified TMLs is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export": { + "post": { + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExportMetadataTypeInput" + } + }, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "default": false, + "type": "boolean", + "nullable": true + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/delete": { + "post": { + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } + }, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "emails", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/create": { + "post": { + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_url": { + "description": "URL for connecting to remote repository", + "type": "string" + }, + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" + } + }, + "required": [ + "repository_url", + "username", + "access_token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully configured local repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/update": { + "post": { + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username to authenticate connection to version control system", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully updated local repository configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/delete": { + "post": { + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/commit": { + "post": { + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "comment": { + "description": "Comment to be added to the commit", + "type": "string" + } + }, + "required": [ + "metadata", + "comment" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully committed the metadata objects", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { + "post": { + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted" + } + ], + "responses": { + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/validate": { + "post": { + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", + "type": "string" + }, + "target_branch_name": { + "description": "Name of the branch where files will be merged", + "type": "string" + } + }, + "required": [ + "source_branch_name", + "target_branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "validation done successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/deploy": { + "post": { + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully deployed the changes", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string" + }, + "description": { + "description": "Description of the connection.", + "type": "string" + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] + }, + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" + }, + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/update": { + "post": { + "operationId": "updateRole", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "200": { + "description": "Role successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/delete": { + "post": { + "operationId": "deleteRole", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/create": { + "post": { + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of the metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency settings for the scheduled job.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + } + }, + "required": [ + "name", + "description", + "metadata_type", + "metadata_identifier", + "time_zone", + "recipient_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the scheduled job." + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with the scheduled jobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortingOptions" + }, + "history_runs_options": { + "description": "Options while fetching history runs for the schedule.", + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/update": { + "post": { + "operationId": "updateSchedule", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the scheduled job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify the details of a Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency of the scheduled job run.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input_Create" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "action_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "nullable": true + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user.", + "nullable": true + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password.", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds.", + "nullable": true + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email of the user.", + "nullable": true + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the user is external.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true + }, + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true + }, + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden.", + "nullable": true + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present.", + "nullable": true + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience.", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user.", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the user.", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true + }, + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user.", + "nullable": true + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user.", + "nullable": true + }, + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user.", + "nullable": true + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned.", + "nullable": true + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of.", + "nullable": true + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org.", + "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user", + "nullable": true + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user", + "nullable": true + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + } + } + }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The current Org context of the user." + }, + "FavoriteMetadataItem": { + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the metadata object." + }, + "name": { + "type": "string", + "description": "name of the metadata object." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata object." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the object.", + "nullable": true + } + }, + "description": "The object representation with ID and Name." + }, + "FavoriteMetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object.", + "nullable": true + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "SystemInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the cluster.", + "nullable": true + }, + "release_version": { + "type": "string", + "description": "The release version of the cluster.", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "The timezone of the cluster.", + "nullable": true + }, + "locale": { + "type": "string", + "description": "The default locale of the cluster.", + "nullable": true + }, + "date_format": { + "type": "string", + "description": "The default date format representation of the cluster.", + "nullable": true + }, + "api_version": { + "type": "string", + "description": "The API version of the cluster.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The deployment type of the cluster.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The deployed environment of the cluster.", + "nullable": true + }, + "license": { + "type": "string", + "description": "The license applied to the cluster.", + "nullable": true + }, + "date_time_format": { + "type": "string", + "description": "The default date time format representation of the cluster.", + "nullable": true + }, + "time_format": { + "type": "string", + "description": "The default time format representation of the cluster.", + "nullable": true + }, + "system_user_id": { + "type": "string", + "description": "The unique identifier of system user.", + "nullable": true + }, + "super_user_id": { + "type": "string", + "description": "The unique identifier of super user.", + "nullable": true + }, + "hidden_object_id": { + "type": "string", + "description": "The unique identifier of hidden object.", + "nullable": true + }, + "system_group_id": { + "type": "string", + "description": "The unique identifier of system group.", + "nullable": true + }, + "tsadmin_user_id": { + "type": "string", + "description": "The unique identifier of tsadmin user.", + "nullable": true + }, + "admin_group_id": { + "type": "string", + "description": "The unique identifier of admin group.", + "nullable": true + }, + "all_tables_connection_id": { + "type": "string", + "description": "The unique identifier of all tables connection.", + "nullable": true + }, + "all_user_group_id": { + "type": "string", + "description": "The unique identifier of ALL group.", + "nullable": true + }, + "accept_language": { + "type": "string", + "description": "The supported accept language by the cluster.", + "nullable": true + }, + "all_user_group_member_user_count": { + "type": "integer", + "format": "int32", + "description": "The count of users of ALL group.", + "nullable": true + }, + "logical_model_version": { + "type": "integer", + "format": "int32", + "description": "The version number of logical model of the cluster.", + "nullable": true + } + } + }, + "SystemConfig": { + "type": "object", + "properties": { + "onboarding_content_url": { + "type": "string", + "nullable": true + } + } + }, + "OrgResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the Org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Org.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], + "description": "Status of the Org.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the Org.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ], + "description": "Visibility of the Org.", + "nullable": true + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name", + "id" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "color": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "author_id": { + "type": "string", + "nullable": true + }, + "modifier_id": { + "type": "string", + "nullable": true + }, + "owner_id": { + "type": "string", + "nullable": true + } + } + }, + "UserGroupResponse": { + "type": "object", + "required": [ + "display_name", + "id", + "name", + "visibility" + ], + "properties": { + "author_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Content details of the group", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the group in milliseconds", + "nullable": true + }, + "default_liveboards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the group is deleted", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the group is deprecated", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group", + "nullable": true + }, + "display_name": { + "type": "string", + "description": "Display name of the group." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the group is external", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the group", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the group is hidden", + "nullable": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index number of the group", + "nullable": true + }, + "index_version": { + "type": "integer", + "format": "int32", + "description": "Index version number of the group", + "nullable": true + }, + "metadata_version": { + "type": "integer", + "format": "int32", + "description": "Metadata version number of the group", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the group in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Orgs in which group exists.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the group", + "nullable": true + }, + "sub_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Groups who are part of the group", + "nullable": true + }, + "system_group": { + "type": "boolean", + "description": "Indicates whether the group is a system group.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Tags associated with the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Users who are part of the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user", + "nullable": true + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role", + "nullable": true + }, + "name": { + "type": "string", + "description": "name of the role", + "nullable": true + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata.", + "nullable": true + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects.", + "nullable": true + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects.", + "nullable": true + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + } + } + }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type.", + "nullable": true + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization.", + "nullable": true + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization.", + "nullable": true + } + } + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with fetch data api" + }, + "LogResponse": { + "type": "object", + "required": [ + "date", + "log" + ], + "properties": { + "date": { + "type": "string", + "description": "Date timestamp of the log entry" + }, + "log": { + "type": "string", + "description": "Log data" + } + } + }, + "RepoConfigObject": { + "type": "object", + "properties": { + "repository_url": { + "type": "string", + "description": "Remote repository URL configured", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username to authenticate connection to the version control system", + "nullable": true + }, + "commit_branch_name": { + "type": "string", + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Branches that have been pulled in local repository", + "nullable": true + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true + }, + "configuration_branch_name": { + "type": "string", + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the Org", + "nullable": true + } + } + }, + "CommitHistoryResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment", + "commit_time", + "commit_id", + "branch" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + } + } + }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database.", + "nullable": true + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database.", + "nullable": true + }, + "table": { + "type": "string", + "description": "Name of the table within the schema.", + "nullable": true + }, + "column": { + "type": "string", + "description": "Name of the column within the table.", + "nullable": true + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection.", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects", + "nullable": true + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database.", + "nullable": true + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created.", + "nullable": true + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema.", + "nullable": true + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table.", + "nullable": true + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the table", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" + }, + "data_type": { + "type": "string", + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate", + "nullable": true + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + } + } + }, + "SearchRoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + }, + "description": "Response for search role api should handle hidden privileges as well." + }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ResponseCustomAction": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "`Type` and configuration data for custom actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "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." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to assign the the custom action to.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT.", + "nullable": true + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT.", + "nullable": true + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT.", + "nullable": true + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "nullable": true + } + }, + "description": "Metadata objects." + }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "nullable": true + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + }, + "nullable": true + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + }, + "nullable": true + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later", + "nullable": true + } + }, + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort.", + "nullable": true + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter.", + "nullable": true + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, + "Token": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "Scope": { + "type": "object", + "required": [ + "access_type" + ], + "properties": { + "access_type": { + "type": "string", + "description": "Object access scope type." + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_id": { + "type": "string", + "description": "Unique identifier of the Org.", + "nullable": true + } + } + }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user.", + "nullable": true + } + }, + "description": "The object representation with activation link." + }, + "ImportUser": { + "type": "object", + "required": [ + "user_identifier", + "display_name" + ], + "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "password": { + "type": "string", + "description": "Password of the user.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email address of the user.", + "nullable": true + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true + } + } + }, + "ImportUsersResponse": { + "type": "object", + "properties": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + } + }, + "GroupsImportListInput": { + "type": "object", + "required": [ + "display_name", + "group_identifier" + ], + "properties": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges that will be assigned to the group.", + "nullable": true + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true + } + } + }, + "ImportUserGroupsResponse": { + "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], + "properties": { + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." + } + } + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API" + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit", + "nullable": true + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object", + "nullable": true + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object", + "nullable": true + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file", + "nullable": true + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff.", + "nullable": true + } + } + }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + } + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients.", + "nullable": true + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true + } + }, + "description": "Recipients of the scheduled job notification." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job.", + "nullable": true + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard.", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export.", + "nullable": true + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { + "type": "string", + "description": "Status of the job", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records.", + "nullable": true + } + } + }, + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "MetadataResponse": { + "type": "object", "required": [ "id", - "name", - "display_name", - "account_type", - "account_status", - "email", - "creation_time_in_millis", - "first_login_time_in_millis" + "type" ], "properties": { + "name": { + "type": "string", + "nullable": true + }, "id": { "type": "string" }, - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, - "display_name": { - "type": "string" + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, - "account_type": { - "type": "string" + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, - "account_status": { - "type": "string" + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, - "email": { - "type": "string" + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - } + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true }, - "privileges": { + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { "type": "array", "items": { "type": "string" - } - }, - "creation_time_in_millis": { - "type": "integer", - "format": "int32" - }, - "first_login_time_in_millis": { - "type": "integer", - "format": "int32" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, - "tags": { + "principals": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } - } + }, + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "RiseSetter": { + "PrincipalsListItem": { "type": "object", "required": [ - "field", - "path" + "identifier", + "type" ], "properties": { - "field": { - "type": "string" + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." }, - "path": { - "type": "string" + "type": { + "type": "string", + "description": "Principal type. Valid values are" } } }, - "Token": { + "ResponseScheduleRun": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_userid", - "valid_for_username" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "token": { - "type": "string" + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "creation_time_in_millis": { + "start_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "expiration_time_in_millis": { + "end_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run end time in milliseconds." }, - "scope": { - "$ref": "#/components/schemas/Scope" + "status": { + "type": "string", + "description": "Status of the schedule run." }, - "valid_for_userid": { - "type": "string" + "detail": { + "type": "string", + "description": "Message details related to the schedule run.", + "nullable": true + } + }, + "description": "Schedule run response object" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true }, - "valid_for_username": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "nullable": true } } }, - "UserGroup": { + "SortingOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + }, + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "name", - "id" + "url" ], "properties": { - "name": { - "type": "string" + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true }, - "id": { - "type": "string" + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true } } }, - "Scope": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { - "type": "string" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, - "organisation_id": { - "type": "integer", - "format": "int32" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "metadata_id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true + } + }, + "description": "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." + }, + "Action_Details_Input": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInput": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ModelTableList": { + "type": "object", + "required": [ + "model_name", + "tables" + ], + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string", + "nullable": true + }, + "project_name": { + "type": "string", + "nullable": true + }, + "connection_id": { + "type": "string", + "nullable": true + }, + "connection_name": { + "type": "string", + "nullable": true + }, + "cdw_database": { + "type": "string", + "nullable": true + }, + "import_type": { + "type": "string", + "nullable": true + }, + "author_name": { + "type": "string", + "nullable": true } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 5c0382683044780d29407f634115503e7f248cc6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 10:52:00 +0000 Subject: [PATCH 142/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15472 +----------------------------- 1 file changed, 278 insertions(+), 15194 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..2e5c7fec7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,102 +4,18 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, - "x-roles": [ - { - "name": "9.0.0.cl", - "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], - "description": "Roles for version 9.0.0.cl" - }, - { - "name": "9.12.0.cl", - "id": "9.12.0.cl", - "tags": [ - "9.12.0.cl" - ], - "description": "Roles for version 9.12.0.cl" - }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, - { - "name": "9.2.0.cl", - "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], - "description": "Roles for version 9.2.0.cl" - }, - { - "name": "10.1.0.cl", - "id": "10.1.0.cl", - "tags": [ - "10.1.0.cl" - ], - "description": "Roles for version 10.1.0.cl" - }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, - { - "name": "9.5.0.cl", - "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], - "description": "Roles for version 9.5.0.cl" - }, - { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], - "description": "Roles for version 9.6.0.cl" - } - ], "tags": [], "paths": { - "/api/rest/2.0/auth/session/user": { + "/api/2.0/rest/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get Session object information", "tags": [ - "Authentication", - "9.0.0.cl" + "Auth" ], "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -108,38 +24,8 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -151,58 +37,55 @@ } } }, - "/api/rest/2.0/auth/session/token": { - "get": { - "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/login": { + "post": { + "operationId": "login", + "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", "tags": [ - "Authentication", - "9.4.0.cl" + "Auth" ], - "parameters": [], - "responses": { - "200": { - "description": "Fetching token for current user successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTokenResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "type": "string", + "deprecated": false + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "username", + "password" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -214,13 +97,12 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/2.0/rest/v2/auth/token/object": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getObjectAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", "tags": [ - "Users", - "9.0.0.cl" + "Auth" ], "requestBody": { "content": { @@ -228,187 +110,63 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, - "visibility": { - "description": "Visibility of the user", + "username": { + "description": "Username of the user account", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" + "deprecated": false }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the user", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "account_type": { - "description": "Type of the account", + "password": { + "description": "The password of the user account", + "default": "", "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "deprecated": false }, - "account_status": { - "description": "Current status of the user account.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true + "deprecated": false }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true - }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } + "object_id": { + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "type": "string", + "deprecated": false }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, "type": "integer", - "format": "int32" + "format": "int32", + "deprecated": false }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" - }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", - "type": "array", - "items": { - "type": "string" - } - }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, - "type": "boolean", - "nullable": true + "format": "int32", + "deprecated": false } - } + }, + "required": [ + "username", + "object_id" + ] } } - }, - "required": true + } }, - "parameters": [], "responses": { "200": { - "description": "User search result.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/Token" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -416,29 +174,74 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "default": "", + "type": "string", + "deprecated": false + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", + "type": "string", + "deprecated": false + }, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + } + }, + "required": [ + "username" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -450,57 +253,35 @@ } } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "To log a user out of the current session, use this endpoint", "tags": [ - "System", - "9.0.0.cl" + "Auth" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, "responses": { "200": { - "description": "Cluster information.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } + "type": "object" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -508,29 +289,52 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "To expire or revoke a token for a user, use this endpoint", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "deprecated": false + }, + "token": { + "type": "string", + "deprecated": false + } + }, + "required": [ + "username", + "token" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -541,14877 +345,157 @@ } } } - }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster config information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/search": { - "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/search": { - "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tags search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/search": { - "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "display_name": { - "description": "Display name of the group", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/sql": { - "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/sql": { - "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/liveboard": { - "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "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).", - "type": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" - }, - "png_options": { - "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/answer": { - "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" - }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/principals/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - } - }, - "required": [ - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/logs/fetch": { - "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "log_type": { - "description": "Name of the log type", - "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] - }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" - }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" - }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "log_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Log fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/search": { - "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Details of local repository configuration", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/search": { - "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ] - }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Commit history of the metadata object", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/search": { - "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } - }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", - "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" - }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true - }, - "configuration": { - "description": "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.", - "type": "object" - }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "List of connections to the datasource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/search": { - "post": { - "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "permissions": { - "description": "Permission details of the Role", - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Roles search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/search": { - "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/session/login": { - "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "object_id": { - "description": "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.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "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.", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/token/full": { - "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string" - }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "type": "string" - }, - "token": { - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/validate": { - "post": { - "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", - "tags": [ - "Authentication", - "9.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Token validation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", - "type": "boolean", - "nullable": true - }, - "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "display_name", - "email" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/update": { - "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", - "type": "boolean", - "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/import": { - "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } - }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "users" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import users operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/change-password": { - "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "current_password", - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/reset-password": { - "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/force-logout": { - "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object" - } - }, - "required": [ - "configuration" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/create": { - "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" - }, - "description": { - "description": "Description of the Org.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/update": { - "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { - "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/create": { - "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tag successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/update": { - "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name or Id of the tag." - } - ], - "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { - "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], - "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/assign": { - "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/unassign": { - "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "display_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/update": { - "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group to modify.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/import": { - "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "groups": { - "description": "Details of groups which are to be imported", - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupsImportListInput" - } - }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/import": { - "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import metadata objects using specified TMLs is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" - ] - }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "emails", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/update/{connection_identifier}": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - } - }, - "required": [ - "name", - "description", - "metadata_type", - "metadata_identifier", - "time_zone", - "recipient_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/delete": { - "post": { - "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the scheduled job." - } - ], - "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/search": { - "post": { - "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" - }, - "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - }, - "schedule_identifiers": { - "description": "unique ID or name of the Schedule", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/update": { - "post": { - "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the scheduled job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the schedule." - } - ], - "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions": { - "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "action_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { - "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DbtSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object", - "nullable": true - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email of the user.", - "nullable": true - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user.", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user.", - "nullable": true - }, - "tenant_id": { - "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Groups to which the user is assigned.", - "nullable": true - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user", - "nullable": true - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user", - "nullable": true - }, - "user_parameters": { - "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "FavoriteMetadataItem": { - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the metadata object." - }, - "name": { - "type": "string", - "description": "name of the metadata object." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata object." - } - } - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the object.", - "nullable": true - } - }, - "description": "The object representation with ID and Name." - }, - "FavoriteMetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object.", - "nullable": true - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the cluster.", - "nullable": true - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster.", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "The timezone of the cluster.", - "nullable": true - }, - "locale": { - "type": "string", - "description": "The default locale of the cluster.", - "nullable": true - }, - "date_format": { - "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true - }, - "api_version": { - "type": "string", - "description": "The API version of the cluster.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true - }, - "license": { - "type": "string", - "description": "The license applied to the cluster.", - "nullable": true - }, - "date_time_format": { - "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true - }, - "time_format": { - "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true - }, - "system_user_id": { - "type": "string", - "description": "The unique identifier of system user.", - "nullable": true - }, - "super_user_id": { - "type": "string", - "description": "The unique identifier of super user.", - "nullable": true - }, - "hidden_object_id": { - "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true - }, - "system_group_id": { - "type": "string", - "description": "The unique identifier of system group.", - "nullable": true - }, - "tsadmin_user_id": { - "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true - }, - "admin_group_id": { - "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true - }, - "all_tables_connection_id": { - "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true - }, - "all_user_group_id": { - "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true - }, - "accept_language": { - "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true - }, - "all_user_group_member_user_count": { - "type": "integer", - "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true - }, - "logical_model_version": { - "type": "integer", - "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true - } - } - }, - "SystemConfig": { - "type": "object", - "properties": { - "onboarding_content_url": { - "type": "string", - "nullable": true - } - } - }, - "OrgResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the Org.", - "nullable": true - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "description": "Status of the Org.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the Org.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "description": "Visibility of the Org.", - "nullable": true - } - } - }, - "Tag": { - "type": "object", - "required": [ - "name", - "id" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "color": { - "type": "string", - "nullable": true - }, - "deleted": { - "type": "boolean", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "external": { - "type": "boolean", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "author_id": { - "type": "string", - "nullable": true - }, - "modifier_id": { - "type": "string", - "nullable": true - }, - "owner_id": { - "type": "string", - "nullable": true - } - } - }, - "UserGroupResponse": { - "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], - "properties": { - "author_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true - }, - "content": { - "type": "object", - "description": "Content details of the group", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true - }, - "default_liveboards": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group", - "nullable": true - }, - "display_name": { - "type": "string", - "description": "Display name of the group." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the group", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true - }, - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index number of the group", - "nullable": true - }, - "index_version": { - "type": "integer", - "format": "int32", - "description": "Index version number of the group", - "nullable": true - }, - "metadata_version": { - "type": "integer", - "format": "int32", - "description": "Metadata version number of the group", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Orgs in which group exists.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the group", - "nullable": true - }, - "sub_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Groups who are part of the group", - "nullable": true - }, - "system_group": { - "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Tags associated with the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Users who are part of the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - }, - "description": "List of roles assgined to the user", - "nullable": true - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id of the role", - "nullable": true - }, - "name": { - "type": "string", - "description": "name of the role", - "nullable": true - } - } - }, - "MetadataListItemInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true - } - } - }, - "PermissionInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Object share mode." - } - }, - "description": "Details of users or groups." - }, - "ExcludeMetadataListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" - } - } - }, - "FavoriteObjectOptionsInput": { - "type": "object", - "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true - } - }, - "description": "Favorite object options." - }, - "MetadataSearchSortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata.", - "nullable": true - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "SqlQueryResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "metadata_type", - "sql_queries" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "sql_queries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SqlQuery" - }, - "description": "SQL query details of metadata objects." - } - } - }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "PdfOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - } - } - }, - "PermissionOfPrincipalsResponse": { - "type": "object", - "properties": { - "principal_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PermissionOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type.", - "nullable": true - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization.", - "nullable": true - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LogResponse": { - "type": "object", - "required": [ - "date", - "log" - ], - "properties": { - "date": { - "type": "string", - "description": "Date timestamp of the log entry" - }, - "log": { - "type": "string", - "description": "Log data" - } - } - }, - "RepoConfigObject": { - "type": "object", - "properties": { - "repository_url": { - "type": "string", - "description": "Remote repository URL configured", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true - }, - "commit_branch_name": { - "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches that have been pulled in local repository", - "nullable": true - }, - "enable_guid_mapping": { - "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true - }, - "configuration_branch_name": { - "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true - }, - "org": { - "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true - } - } - }, - "CommitHistoryResponse": { - "type": "object", - "required": [ - "committer", - "author", - "comment", - "commit_time", - "commit_id", - "branch" - ], - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - } - } - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database.", - "nullable": true - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database.", - "nullable": true - }, - "table": { - "type": "string", - "description": "Name of the table within the schema.", - "nullable": true - }, - "column": { - "type": "string", - "description": "Name of the column within the table.", - "nullable": true - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - } - }, - "SearchConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "description": { - "type": "string", - "description": "Description of the connection.", - "nullable": true - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database.", - "nullable": true - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema.", - "nullable": true - } - } - }, - "Table": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table.", - "nullable": true - }, - "type": { - "type": "string", - "description": "Type of table. Either view or table", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the table", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table", - "nullable": true - } - } - }, - "Column": { - "type": "object", - "required": [ - "name", - "data_type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { - "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - } - } - }, - "SearchRoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - }, - "description": "Response for search role api should handle hidden privileges as well." - }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ResponseCustomAction": { - "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true - }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true - }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "JWT_Metadata_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "nullable": true - } - }, - "description": "Metadata objects." - }, - "User_Parameter_Options": { - "type": "object", - "properties": { - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "nullable": true - }, - "runtime_filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "nullable": true - }, - "runtime_sorts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Parameters" - }, - "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true - } - }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" - }, - "User_Object": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects to apply the User_Object." - }, - "User_Runtime_Filters": { - "type": "object", - "required": [ - "column_name", - "values", - "operator" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Value of the filters." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "GE", - "GT", - "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", - "BW", - "BW_INC", - "BW_INC_MAX", - "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" - ], - "description": "Operator value. Example: EQ" - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime filter.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Filters." - }, - "User_Runtime_Sorts": { - "type": "object", - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Order for the sort.", - "nullable": true - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime sort.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Sorts." - }, - "User_Parameters": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of values." - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime parameter.", - "nullable": true - } - }, - "description": "Objects to apply the Runtime_Parameters." - }, - "Token": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "Scope": { - "type": "object", - "required": [ - "access_type" - ], - "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true - } - } - }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "TokenValidationResponse": { - "type": "object", - "required": [ - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "token_type" - ], - "properties": { - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "token_type": { - "type": "string", - "description": "Type of token." - } - } - }, - "ResponseActivationURL": { - "type": "object", - "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user.", - "nullable": true - } - }, - "description": "The object representation with activation link." - }, - "ImportUser": { - "type": "object", - "required": [ - "user_identifier", - "display_name" - ], - "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { - "type": "string", - "description": "Password of the user.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email address of the user.", - "nullable": true - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - } - }, - "GroupsImportListInput": { - "type": "object", - "required": [ - "display_name", - "group_identifier" - ], - "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges that will be assigned to the group.", - "nullable": true - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true - } - } - }, - "ImportUserGroupsResponse": { - "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], - "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." - } - } - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION", - "USER", - "USER_GROUP", - "ROLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "ShareMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ], - "description": "Type of metadata.", - "nullable": true - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit", - "nullable": true - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "DeployResponse": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object", - "nullable": true - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object", - "nullable": true - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "CreateConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "FetchConnectionDiffStatusResponse": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true - } - } - }, - "RoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - } - }, - "LiveboardOptionsInput": { - "type": "object", - "required": [ - "visualization_identifiers" - ], - "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true - } - }, - "description": "Recipients of the scheduled job notification." - }, - "PrincipalsListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type." - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job.", - "nullable": true - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { - "type": "string", - "description": "Status of the job", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records.", - "nullable": true - } - } - }, - "Author": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "Author of the schedule." - }, - "Frequency": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpression", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "LiveboardOptions": { + } + }, + "components": { + "schemas": { + "ErrorResponse": { "type": "object", - "required": [ - "visualization_identifiers" - ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "error": { + "type": "object" } - }, - "description": "Options to specify details of Liveboard." + } }, - "MetadataResponse": { + "User": { "type": "object", "required": [ "id", - "type" + "name", + "display_name", + "account_type", + "account_status", + "email", + "creation_time_in_millis", + "first_login_time_in_millis" ], "properties": { - "name": { - "type": "string", - "nullable": true - }, "id": { "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] - } - } - }, - "PdfOptions": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "name": { + "type": "string" }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "display_name": { + "type": "string" }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "account_type": { + "type": "string" }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "account_status": { + "type": "string" }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true + "email": { + "type": "string" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { + "user_groups": { "type": "array", "items": { - "type": "string" - }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "$ref": "#/components/schemas/UserGroup" + } }, - "principals": { + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" - } - } - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true - } - }, - "description": "Schedule run response object" - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ], - "nullable": true - } - } - }, - "SortingOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "type": "string" + } }, - "record_size": { + "creation_time_in_millis": { "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "format": "int32" }, - "record_offset": { + "first_login_time_in_millis": { "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" - }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "format": "int32" }, - "parameters": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "type": "string" + } } } }, - "Associate_Metadata_Input_Create": { + "RiseSetter": { "type": "object", "required": [ - "identifier" + "field", + "path" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "path": { + "type": "string" } } }, - "ActionConfigInputCreate": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true - } - }, - "description": "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." - }, - "Action_Details_Input": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_userid", + "valid_for_username" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "token": { + "type": "string" }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true + "creation_time_in_millis": { + "type": "integer", + "format": "int32" }, - "url": { - "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "expiration_time_in_millis": { + "type": "integer", + "format": "int32" }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "scope": { + "$ref": "#/components/schemas/Scope" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "valid_for_userid": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "valid_for_username": { + "type": "string" } } }, - "ActionConfigInput": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ModelTableList": { + "UserGroup": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "id" ], "properties": { - "model_name": { - "type": "string", - "description": "Name of the Model." - }, - "model_path": { - "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "name": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "id": { + "type": "string" } } }, - "DbtSearchResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "dbt_connection_identifier": { - "type": "string", - "nullable": true - }, - "project_name": { - "type": "string", - "nullable": true - }, - "connection_id": { - "type": "string", - "nullable": true - }, - "connection_name": { - "type": "string", - "nullable": true - }, - "cdw_database": { - "type": "string", - "nullable": true + "access_type": { + "type": "string" }, - "import_type": { - "type": "string", - "nullable": true + "organisation_id": { + "type": "integer", + "format": "int32" }, - "author_name": { - "type": "string", - "nullable": true + "metadata_id": { + "type": "string" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 1578f30886c7b098a0deb43355d63760304cb876 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 10:55:33 +0000 Subject: [PATCH 143/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15482 +++++++++++++++++++++++++++++- 1 file changed, 15199 insertions(+), 283 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2e5c7fec7..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,18 +4,102 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": [ + "9.6.0.cl" + ], + "description": "Roles for version 9.6.0.cl" + } + ], "tags": [], "paths": { - "/api/2.0/rest/auth/session/user": { + "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get Session object information", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +108,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -33,59 +117,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/login": { - "post": { - "operationId": "login", - "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "type": "string", - "deprecated": false - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", - "type": "boolean", - "deprecated": false - } - }, - "required": [ - "username", - "password" - ] + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -97,76 +151,58 @@ } } }, - "/api/2.0/rest/v2/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "default": "", - "type": "string", - "deprecated": false - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", - "type": "string", - "deprecated": false - }, - "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false - }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false - }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", - "default": 0, - "type": "integer", - "format": "int32", - "deprecated": false - } - }, - "required": [ - "username", - "object_id" - ] - } - } - } - }, + "parameters": [], "responses": { "200": { + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -178,12 +214,13 @@ } } }, - "/api/2.0/rest/v2/auth/token/full": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "getFullAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -191,57 +228,187 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the user account", + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", "type": "string", - "deprecated": false + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "password": { - "description": "The password of the user account", - "default": "", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", "type": "string", - "deprecated": false + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", + "account_status": { + "description": "Current status of the user account.", "type": "string", - "deprecated": false + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", + "type": "array", + "items": { + "type": "string" + } }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions" + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "username" - ] + } } } - } + }, + "required": true }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -249,39 +416,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -293,48 +450,87 @@ } } }, - "/api/2.0/rest/v2/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "System", + "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "type": "string", - "deprecated": false - }, - "token": { - "type": "string", - "deprecated": false - } + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" }, - "required": [ - "username", - "token" - ] + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } } } - } - }, - "responses": { - "200": { + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -345,157 +541,14877 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, - "User": { - "type": "object", + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/search": { + "post": { + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/search": { + "post": { + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "display_name": { + "description": "Display name of the group", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" + }, + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", + "$ref": "#/components/schemas/SortOptions" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataListItemInput" + } + }, + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "$ref": "#/components/schemas/MetadataSearchSortOptions" + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/sql": { + "post": { + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/sql": { + "post": { + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of an Answer.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/liveboard": { + "post": { + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "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).", + "type": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput" + }, + "png_options": { + "description": "Options for PNG export.", + "$ref": "#/components/schemas/PngOptionsInput" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/answer": { + "post": { + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/logs/fetch": { + "post": { + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Log", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/search": { + "post": { + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Details of local repository configuration", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/search": { + "post": { + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ] + }, + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", + "type": "string" + }, + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Commit history of the metadata object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + } + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptionInput" + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object" + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of connections to the datasource.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/search": { + "post": { + "operationId": "searchRoles", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_identifiers": { + "description": "unique ID or name of the Roles", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Roles search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/update": { + "post": { + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/reset-password": { + "post": { + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/create": { + "post": { + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org.", + "type": "string" + }, + "description": { + "description": "Description of the Org.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/update": { + "post": { + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/delete": { + "post": { + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/create": { + "post": { + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" + }, + "display_name": { + "description": "Display name for the group.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "display_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/update": { + "post": { + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group to modify.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description for the group.", + "type": "string" + }, + "display_name": { + "description": "Display name of the group.", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/delete": { + "post": { + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/import": { + "post": { + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } + }, + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/import": { + "post": { + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import metadata objects using specified TMLs is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export": { + "post": { + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExportMetadataTypeInput" + } + }, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "default": false, + "type": "boolean", + "nullable": true + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/delete": { + "post": { + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } + }, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "emails", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/create": { + "post": { + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_url": { + "description": "URL for connecting to remote repository", + "type": "string" + }, + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" + } + }, + "required": [ + "repository_url", + "username", + "access_token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully configured local repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/update": { + "post": { + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username to authenticate connection to version control system", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully updated local repository configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/delete": { + "post": { + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/commit": { + "post": { + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "comment": { + "description": "Comment to be added to the commit", + "type": "string" + } + }, + "required": [ + "metadata", + "comment" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully committed the metadata objects", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { + "post": { + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted" + } + ], + "responses": { + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/validate": { + "post": { + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", + "type": "string" + }, + "target_branch_name": { + "description": "Name of the branch where files will be merged", + "type": "string" + } + }, + "required": [ + "source_branch_name", + "target_branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "validation done successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/deploy": { + "post": { + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully deployed the changes", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string" + }, + "description": { + "description": "Description of the connection.", + "type": "string" + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] + }, + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" + }, + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/update": { + "post": { + "operationId": "updateRole", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "200": { + "description": "Role successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/delete": { + "post": { + "operationId": "deleteRole", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/create": { + "post": { + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of the metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency settings for the scheduled job.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + } + }, + "required": [ + "name", + "description", + "metadata_type", + "metadata_identifier", + "time_zone", + "recipient_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the scheduled job." + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with the scheduled jobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortingOptions" + }, + "history_runs_options": { + "description": "Options while fetching history runs for the schedule.", + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/update": { + "post": { + "operationId": "updateSchedule", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the scheduled job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify the details of a Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency of the scheduled job run.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input_Create" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "action_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "nullable": true + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user.", + "nullable": true + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password.", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds.", + "nullable": true + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email of the user.", + "nullable": true + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the user is external.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true + }, + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true + }, + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden.", + "nullable": true + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present.", + "nullable": true + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience.", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user.", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the user.", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true + }, + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user.", + "nullable": true + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user.", + "nullable": true + }, + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user.", + "nullable": true + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned.", + "nullable": true + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of.", + "nullable": true + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org.", + "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user", + "nullable": true + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user", + "nullable": true + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + } + } + }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The current Org context of the user." + }, + "FavoriteMetadataItem": { + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the metadata object." + }, + "name": { + "type": "string", + "description": "name of the metadata object." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata object." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the object.", + "nullable": true + } + }, + "description": "The object representation with ID and Name." + }, + "FavoriteMetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object.", + "nullable": true + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "SystemInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the cluster.", + "nullable": true + }, + "release_version": { + "type": "string", + "description": "The release version of the cluster.", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "The timezone of the cluster.", + "nullable": true + }, + "locale": { + "type": "string", + "description": "The default locale of the cluster.", + "nullable": true + }, + "date_format": { + "type": "string", + "description": "The default date format representation of the cluster.", + "nullable": true + }, + "api_version": { + "type": "string", + "description": "The API version of the cluster.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The deployment type of the cluster.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The deployed environment of the cluster.", + "nullable": true + }, + "license": { + "type": "string", + "description": "The license applied to the cluster.", + "nullable": true + }, + "date_time_format": { + "type": "string", + "description": "The default date time format representation of the cluster.", + "nullable": true + }, + "time_format": { + "type": "string", + "description": "The default time format representation of the cluster.", + "nullable": true + }, + "system_user_id": { + "type": "string", + "description": "The unique identifier of system user.", + "nullable": true + }, + "super_user_id": { + "type": "string", + "description": "The unique identifier of super user.", + "nullable": true + }, + "hidden_object_id": { + "type": "string", + "description": "The unique identifier of hidden object.", + "nullable": true + }, + "system_group_id": { + "type": "string", + "description": "The unique identifier of system group.", + "nullable": true + }, + "tsadmin_user_id": { + "type": "string", + "description": "The unique identifier of tsadmin user.", + "nullable": true + }, + "admin_group_id": { + "type": "string", + "description": "The unique identifier of admin group.", + "nullable": true + }, + "all_tables_connection_id": { + "type": "string", + "description": "The unique identifier of all tables connection.", + "nullable": true + }, + "all_user_group_id": { + "type": "string", + "description": "The unique identifier of ALL group.", + "nullable": true + }, + "accept_language": { + "type": "string", + "description": "The supported accept language by the cluster.", + "nullable": true + }, + "all_user_group_member_user_count": { + "type": "integer", + "format": "int32", + "description": "The count of users of ALL group.", + "nullable": true + }, + "logical_model_version": { + "type": "integer", + "format": "int32", + "description": "The version number of logical model of the cluster.", + "nullable": true + } + } + }, + "SystemConfig": { + "type": "object", + "properties": { + "onboarding_content_url": { + "type": "string", + "nullable": true + } + } + }, + "OrgResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the Org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Org.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], + "description": "Status of the Org.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the Org.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ], + "description": "Visibility of the Org.", + "nullable": true + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name", + "id" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "color": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "author_id": { + "type": "string", + "nullable": true + }, + "modifier_id": { + "type": "string", + "nullable": true + }, + "owner_id": { + "type": "string", + "nullable": true + } + } + }, + "UserGroupResponse": { + "type": "object", + "required": [ + "display_name", + "id", + "name", + "visibility" + ], + "properties": { + "author_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Content details of the group", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the group in milliseconds", + "nullable": true + }, + "default_liveboards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the group is deleted", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the group is deprecated", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group", + "nullable": true + }, + "display_name": { + "type": "string", + "description": "Display name of the group." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the group is external", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the group", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the group is hidden", + "nullable": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index number of the group", + "nullable": true + }, + "index_version": { + "type": "integer", + "format": "int32", + "description": "Index version number of the group", + "nullable": true + }, + "metadata_version": { + "type": "integer", + "format": "int32", + "description": "Metadata version number of the group", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the group in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Orgs in which group exists.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the group", + "nullable": true + }, + "sub_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Groups who are part of the group", + "nullable": true + }, + "system_group": { + "type": "boolean", + "description": "Indicates whether the group is a system group.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Tags associated with the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Users who are part of the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user", + "nullable": true + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role", + "nullable": true + }, + "name": { + "type": "string", + "description": "name of the role", + "nullable": true + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata.", + "nullable": true + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects.", + "nullable": true + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects.", + "nullable": true + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + } + } + }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type.", + "nullable": true + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization.", + "nullable": true + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization.", + "nullable": true + } + } + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with fetch data api" + }, + "LogResponse": { + "type": "object", + "required": [ + "date", + "log" + ], + "properties": { + "date": { + "type": "string", + "description": "Date timestamp of the log entry" + }, + "log": { + "type": "string", + "description": "Log data" + } + } + }, + "RepoConfigObject": { + "type": "object", + "properties": { + "repository_url": { + "type": "string", + "description": "Remote repository URL configured", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username to authenticate connection to the version control system", + "nullable": true + }, + "commit_branch_name": { + "type": "string", + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Branches that have been pulled in local repository", + "nullable": true + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true + }, + "configuration_branch_name": { + "type": "string", + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the Org", + "nullable": true + } + } + }, + "CommitHistoryResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment", + "commit_time", + "commit_id", + "branch" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + } + } + }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database.", + "nullable": true + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database.", + "nullable": true + }, + "table": { + "type": "string", + "description": "Name of the table within the schema.", + "nullable": true + }, + "column": { + "type": "string", + "description": "Name of the column within the table.", + "nullable": true + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection.", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects", + "nullable": true + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database.", + "nullable": true + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created.", + "nullable": true + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema.", + "nullable": true + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table.", + "nullable": true + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the table", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" + }, + "data_type": { + "type": "string", + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate", + "nullable": true + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + } + } + }, + "SearchRoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + }, + "description": "Response for search role api should handle hidden privileges as well." + }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ResponseCustomAction": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "`Type` and configuration data for custom actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "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." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to assign the the custom action to.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT.", + "nullable": true + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT.", + "nullable": true + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT.", + "nullable": true + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "nullable": true + } + }, + "description": "Metadata objects." + }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "nullable": true + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + }, + "nullable": true + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + }, + "nullable": true + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later", + "nullable": true + } + }, + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort.", + "nullable": true + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter.", + "nullable": true + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, + "Token": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "Scope": { + "type": "object", + "required": [ + "access_type" + ], + "properties": { + "access_type": { + "type": "string", + "description": "Object access scope type." + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_id": { + "type": "string", + "description": "Unique identifier of the Org.", + "nullable": true + } + } + }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user.", + "nullable": true + } + }, + "description": "The object representation with activation link." + }, + "ImportUser": { + "type": "object", + "required": [ + "user_identifier", + "display_name" + ], + "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "password": { + "type": "string", + "description": "Password of the user.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email address of the user.", + "nullable": true + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true + } + } + }, + "ImportUsersResponse": { + "type": "object", + "properties": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + } + }, + "GroupsImportListInput": { + "type": "object", + "required": [ + "display_name", + "group_identifier" + ], + "properties": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges that will be assigned to the group.", + "nullable": true + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true + } + } + }, + "ImportUserGroupsResponse": { + "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], + "properties": { + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." + } + } + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API" + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit", + "nullable": true + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object", + "nullable": true + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object", + "nullable": true + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file", + "nullable": true + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff.", + "nullable": true + } + } + }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + } + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients.", + "nullable": true + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true + } + }, + "description": "Recipients of the scheduled job notification." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job.", + "nullable": true + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard.", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export.", + "nullable": true + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { + "type": "string", + "description": "Status of the job", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records.", + "nullable": true + } + } + }, + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "MetadataResponse": { + "type": "object", "required": [ "id", - "name", - "display_name", - "account_type", - "account_status", - "email", - "creation_time_in_millis", - "first_login_time_in_millis" + "type" ], "properties": { + "name": { + "type": "string", + "nullable": true + }, "id": { "type": "string" }, - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, - "display_name": { - "type": "string" + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, - "account_type": { - "type": "string" + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, - "account_status": { - "type": "string" + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, - "email": { - "type": "string" + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - } + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true }, - "privileges": { + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { "type": "array", "items": { "type": "string" - } - }, - "creation_time_in_millis": { - "type": "integer", - "format": "int32" - }, - "first_login_time_in_millis": { - "type": "integer", - "format": "int32" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, - "tags": { + "principals": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } - } + }, + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "RiseSetter": { + "PrincipalsListItem": { "type": "object", "required": [ - "field", - "path" + "identifier", + "type" ], "properties": { - "field": { - "type": "string" + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." }, - "path": { - "type": "string" + "type": { + "type": "string", + "description": "Principal type. Valid values are" } } }, - "Token": { + "ResponseScheduleRun": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_userid", - "valid_for_username" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "token": { - "type": "string" + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "creation_time_in_millis": { + "start_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "expiration_time_in_millis": { + "end_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run end time in milliseconds." }, - "scope": { - "$ref": "#/components/schemas/Scope" + "status": { + "type": "string", + "description": "Status of the schedule run." }, - "valid_for_userid": { - "type": "string" + "detail": { + "type": "string", + "description": "Message details related to the schedule run.", + "nullable": true + } + }, + "description": "Schedule run response object" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true }, - "valid_for_username": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "nullable": true } } }, - "UserGroup": { + "SortingOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + }, + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "name", - "id" + "url" ], "properties": { - "name": { - "type": "string" + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true }, - "id": { - "type": "string" + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true } } }, - "Scope": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { - "type": "string" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, - "organisation_id": { - "type": "integer", - "format": "int32" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "metadata_id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true + } + }, + "description": "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." + }, + "Action_Details_Input": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInput": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ModelTableList": { + "type": "object", + "required": [ + "model_name", + "tables" + ], + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string", + "nullable": true + }, + "project_name": { + "type": "string", + "nullable": true + }, + "connection_id": { + "type": "string", + "nullable": true + }, + "connection_name": { + "type": "string", + "nullable": true + }, + "cdw_database": { + "type": "string", + "nullable": true + }, + "import_type": { + "type": "string", + "nullable": true + }, + "author_name": { + "type": "string", + "nullable": true } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 39633102cb12c33846e4a91d5867db07c17e4e70 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 11:49:13 +0000 Subject: [PATCH 144/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,6 +1917,22 @@ "default": false, "type": "boolean", "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" } }, "required": [ From bffc87619def620d5a429b6e7d4d71b97988e474 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 11:50:01 +0000 Subject: [PATCH 145/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,22 +1917,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" } }, "required": [ From 9fd14f5e0890859455a2fc8656203aed5d114af5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 13:36:27 +0000 Subject: [PATCH 146/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,6 +1917,22 @@ "default": false, "type": "boolean", "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" } }, "required": [ From 89774951e2c73abda91ee2ed974e28e4c2f21992 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 13:43:06 +0000 Subject: [PATCH 147/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,22 +1917,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" } }, "required": [ From 764e7e5470de7c917e9c83c0631cf2801b23c1b8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 13:55:57 +0000 Subject: [PATCH 148/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,6 +1917,22 @@ "default": false, "type": "boolean", "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" } }, "required": [ From 9e2f908ab12c665c8230acc0a2a340970d200c0d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 15:14:36 +0000 Subject: [PATCH 149/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,22 +1917,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" } }, "required": [ From e32417aafb8cd2fb7e10fff131b9fc35d282feff Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 15:46:54 +0000 Subject: [PATCH 150/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,6 +1917,22 @@ "default": false, "type": "boolean", "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" } }, "required": [ From f1b8d13a1932064ac4e2465319c85e8584f92186 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 19:55:07 +0000 Subject: [PATCH 151/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..f2ab17c26 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7044,7 +7044,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7144,7 +7144,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7339,7 +7339,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" From 951384a6aa2481a8c9e149a8c66f9816857a141d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Aug 2024 21:39:42 +0000 Subject: [PATCH 152/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f2ab17c26..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7044,7 +7044,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7144,7 +7144,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7339,7 +7339,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" From 2f390ef239b4adcbf51886a55c09fbc9b3898438 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 00:43:48 +0000 Subject: [PATCH 153/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 322 +++++++++++++++++++++++++++++++- 1 file changed, 321 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..f12832fe1 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -37,6 +37,14 @@ ], "description": "Roles for version 9.2.0.cl" }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, { "name": "10.1.0.cl", "id": "10.1.0.cl", @@ -1340,6 +1348,126 @@ } } }, + "/api/rest/2.0/metadata/tml/async/status": { + "post": { + "operationId": "fetchAsyncImportTaskStatus", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "task_ids": { + "description": "List of task IDs to fetch status for.", + "type": "array", + "items": { + "type": "string" + } + }, + "task_status": { + "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ] + } + }, + "author_id": { + "description": "Author ID of async import tasks to filter on.", + "type": "string" + }, + "offset": { + "description": "The offset point, starting from where the task status should be included in the response.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "The number of task statuses that should be included in the response starting from offset position.", + "default": 5, + "type": "integer", + "format": "int32" + }, + "include_import_response": { + "description": "Boolean flag to specify whether to include import response in the task status objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task statuses fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", @@ -6095,7 +6223,8 @@ "enum": [ "PARTIAL", "ALL_OR_NONE", - "VALIDATE_ONLY" + "VALIDATE_ONLY", + "PARTIAL_OBJECT" ] }, "create_new": { @@ -6177,6 +6306,103 @@ } } }, + "/api/rest/2.0/metadata/tml/async/import": { + "post": { + "operationId": "importMetadataTMLAsync", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task submitted successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", @@ -12059,6 +12285,100 @@ }, "description": "Metadata Search Response Object." }, + "ImportEPackAsyncTaskStatus": { + "type": "object", + "properties": { + "tenant_id": { + "type": "string", + "description": "GUID of tenant from which the task is initiated.", + "nullable": true + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Organisation ID of the user who initiated the task.", + "nullable": true + }, + "task_id": { + "type": "string", + "description": "Unique identifier for the task.", + "nullable": true + }, + "task_name": { + "type": "string", + "description": "Name of the task.", + "nullable": true + }, + "import_response": { + "type": "object", + "description": "Response of imported objects so far.", + "nullable": true + }, + "task_status": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ], + "description": "Current status of the task.", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "ID of the user who initiated the task.", + "nullable": true + }, + "import_policy": { + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ], + "description": "Policy used for the import task.", + "nullable": true + }, + "created_at": { + "type": "number", + "format": "float", + "description": "Time when the task was created (in ms since epoch).", + "nullable": true + }, + "in_progress_at": { + "type": "number", + "format": "float", + "description": "Time when the task started (in ms since epoch).", + "nullable": true + }, + "completed_at": { + "type": "number", + "format": "float", + "description": "Time when the task was completed (in ms since epoch).", + "nullable": true + }, + "total_object_count": { + "type": "integer", + "format": "int32", + "description": "Total number of objects to process.", + "nullable": true + }, + "object_processed_count": { + "type": "integer", + "format": "int32", + "description": "Number of objects processed so far.", + "nullable": true + }, + "modified_at": { + "type": "number", + "format": "float", + "description": "Last time the task status was updated (in ms since epoch).", + "nullable": true + } + } + }, "SqlQueryResponse": { "type": "object", "required": [ From f03b14e75dcd578762a24870de9d04aaeaa19f22 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 02:25:25 +0000 Subject: [PATCH 154/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 322 +------------------------------- 1 file changed, 1 insertion(+), 321 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f12832fe1..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -37,14 +37,6 @@ ], "description": "Roles for version 9.2.0.cl" }, - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, { "name": "10.1.0.cl", "id": "10.1.0.cl", @@ -1348,126 +1340,6 @@ } } }, - "/api/rest/2.0/metadata/tml/async/status": { - "post": { - "operationId": "fetchAsyncImportTaskStatus", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task_ids": { - "description": "List of task IDs to fetch status for.", - "type": "array", - "items": { - "type": "string" - } - }, - "task_status": { - "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", - "type": "array", - "items": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ] - } - }, - "author_id": { - "description": "Author ID of async import tasks to filter on.", - "type": "string" - }, - "offset": { - "description": "The offset point, starting from where the task status should be included in the response.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "The number of task statuses that should be included in the response starting from offset position.", - "default": 5, - "type": "integer", - "format": "int32" - }, - "include_import_response": { - "description": "Boolean flag to specify whether to include import response in the task status objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task statuses fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", @@ -6223,8 +6095,7 @@ "enum": [ "PARTIAL", "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" + "VALIDATE_ONLY" ] }, "create_new": { @@ -6306,103 +6177,6 @@ } } }, - "/api/rest/2.0/metadata/tml/async/import": { - "post": { - "operationId": "importMetadataTMLAsync", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task submitted successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", @@ -12285,100 +12059,6 @@ }, "description": "Metadata Search Response Object." }, - "ImportEPackAsyncTaskStatus": { - "type": "object", - "properties": { - "tenant_id": { - "type": "string", - "description": "GUID of tenant from which the task is initiated.", - "nullable": true - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Organisation ID of the user who initiated the task.", - "nullable": true - }, - "task_id": { - "type": "string", - "description": "Unique identifier for the task.", - "nullable": true - }, - "task_name": { - "type": "string", - "description": "Name of the task.", - "nullable": true - }, - "import_response": { - "type": "object", - "description": "Response of imported objects so far.", - "nullable": true - }, - "task_status": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ], - "description": "Current status of the task.", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "ID of the user who initiated the task.", - "nullable": true - }, - "import_policy": { - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" - ], - "description": "Policy used for the import task.", - "nullable": true - }, - "created_at": { - "type": "number", - "format": "float", - "description": "Time when the task was created (in ms since epoch).", - "nullable": true - }, - "in_progress_at": { - "type": "number", - "format": "float", - "description": "Time when the task started (in ms since epoch).", - "nullable": true - }, - "completed_at": { - "type": "number", - "format": "float", - "description": "Time when the task was completed (in ms since epoch).", - "nullable": true - }, - "total_object_count": { - "type": "integer", - "format": "int32", - "description": "Total number of objects to process.", - "nullable": true - }, - "object_processed_count": { - "type": "integer", - "format": "int32", - "description": "Number of objects processed so far.", - "nullable": true - }, - "modified_at": { - "type": "number", - "format": "float", - "description": "Last time the task status was updated (in ms since epoch).", - "nullable": true - } - } - }, "SqlQueryResponse": { "type": "object", "required": [ From a0c8bff7bd64e98ff3328e89298b5b182b3c80d8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 04:02:07 +0000 Subject: [PATCH 155/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,22 +1917,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" } }, "required": [ From 71abb73a91ef771f3fb7369915a392c9bc9ae200 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 04:08:12 +0000 Subject: [PATCH 156/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,6 +1917,22 @@ "default": false, "type": "boolean", "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" } }, "required": [ From 58f0524334f27509addef0c050ac88911d408d86 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 06:12:45 +0000 Subject: [PATCH 157/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,22 +1917,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" } }, "required": [ From b93c72d01688a4ca269e4875fe0fab3d9eae2f56 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 06:16:28 +0000 Subject: [PATCH 158/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,6 +1917,22 @@ "default": false, "type": "boolean", "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" } }, "required": [ From 8099c46e20117708da2bb254bafedc6c1f7fe82d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 06:48:19 +0000 Subject: [PATCH 159/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..efc4b8cad 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,22 +1917,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" } }, "required": [ From ebf9700cbfcb14ffd366721990b36fdadb6d5b5a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 06:53:16 +0000 Subject: [PATCH 160/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index efc4b8cad..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1917,6 +1917,22 @@ "default": false, "type": "boolean", "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" } }, "required": [ From 28ed303c6c4bbfe139a331af6be085f085969990 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 07:23:15 +0000 Subject: [PATCH 161/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15488 +----------------------------- 1 file changed, 278 insertions(+), 15210 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..2e5c7fec7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,102 +4,18 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, - "x-roles": [ - { - "name": "9.0.0.cl", - "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], - "description": "Roles for version 9.0.0.cl" - }, - { - "name": "9.12.0.cl", - "id": "9.12.0.cl", - "tags": [ - "9.12.0.cl" - ], - "description": "Roles for version 9.12.0.cl" - }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, - { - "name": "9.2.0.cl", - "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], - "description": "Roles for version 9.2.0.cl" - }, - { - "name": "10.1.0.cl", - "id": "10.1.0.cl", - "tags": [ - "10.1.0.cl" - ], - "description": "Roles for version 10.1.0.cl" - }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, - { - "name": "9.5.0.cl", - "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], - "description": "Roles for version 9.5.0.cl" - }, - { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], - "description": "Roles for version 9.6.0.cl" - } - ], "tags": [], "paths": { - "/api/rest/2.0/auth/session/user": { + "/api/2.0/rest/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get Session object information", "tags": [ - "Authentication", - "9.0.0.cl" + "Auth" ], "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -108,38 +24,8 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -151,58 +37,55 @@ } } }, - "/api/rest/2.0/auth/session/token": { - "get": { - "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/login": { + "post": { + "operationId": "login", + "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", "tags": [ - "Authentication", - "9.4.0.cl" + "Auth" ], - "parameters": [], - "responses": { - "200": { - "description": "Fetching token for current user successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTokenResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "type": "string", + "deprecated": false + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "username", + "password" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -214,13 +97,12 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/2.0/rest/v2/auth/token/object": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getObjectAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", "tags": [ - "Users", - "9.0.0.cl" + "Auth" ], "requestBody": { "content": { @@ -228,187 +110,63 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, - "visibility": { - "description": "Visibility of the user", + "username": { + "description": "Username of the user account", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" + "deprecated": false }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the user", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "account_type": { - "description": "Type of the account", + "password": { + "description": "The password of the user account", + "default": "", "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "deprecated": false }, - "account_status": { - "description": "Current status of the user account.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true + "deprecated": false }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true - }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } + "object_id": { + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "type": "string", + "deprecated": false }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, "type": "integer", - "format": "int32" + "format": "int32", + "deprecated": false }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" - }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", - "type": "array", - "items": { - "type": "string" - } - }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, - "type": "boolean", - "nullable": true + "format": "int32", + "deprecated": false } - } + }, + "required": [ + "username", + "object_id" + ] } } - }, - "required": true + } }, - "parameters": [], "responses": { "200": { - "description": "User search result.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/Token" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -416,29 +174,74 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "default": "", + "type": "string", + "deprecated": false + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", + "type": "string", + "deprecated": false + }, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + } + }, + "required": [ + "username" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -450,57 +253,35 @@ } } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "To log a user out of the current session, use this endpoint", "tags": [ - "System", - "9.0.0.cl" + "Auth" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, "responses": { "200": { - "description": "Cluster information.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } + "type": "object" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -508,29 +289,52 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "To expire or revoke a token for a user, use this endpoint", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "deprecated": false + }, + "token": { + "type": "string", + "deprecated": false + } + }, + "required": [ + "username", + "token" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -541,14893 +345,157 @@ } } } - }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster config information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/search": { - "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/search": { - "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tags search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/search": { - "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "display_name": { - "description": "Display name of the group", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/sql": { - "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/sql": { - "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/liveboard": { - "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "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).", - "type": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" - }, - "png_options": { - "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/answer": { - "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" - }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/principals/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - } - }, - "required": [ - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/logs/fetch": { - "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "log_type": { - "description": "Name of the log type", - "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] - }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" - }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" - }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "log_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Log fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/search": { - "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Details of local repository configuration", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/search": { - "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ] - }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Commit history of the metadata object", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/search": { - "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } - }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", - "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" - }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true - }, - "configuration": { - "description": "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.", - "type": "object" - }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "List of connections to the datasource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/search": { - "post": { - "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "permissions": { - "description": "Permission details of the Role", - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Roles search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/search": { - "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/session/login": { - "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "object_id": { - "description": "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.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "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.", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/token/full": { - "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string" - }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "type": "string" - }, - "token": { - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/validate": { - "post": { - "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", - "tags": [ - "Authentication", - "9.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Token validation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", - "type": "boolean", - "nullable": true - }, - "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "display_name", - "email" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/update": { - "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", - "type": "boolean", - "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/import": { - "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } - }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "users" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import users operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/change-password": { - "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "current_password", - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/reset-password": { - "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/force-logout": { - "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object" - } - }, - "required": [ - "configuration" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/create": { - "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" - }, - "description": { - "description": "Description of the Org.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/update": { - "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { - "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/create": { - "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tag successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/update": { - "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name or Id of the tag." - } - ], - "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { - "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], - "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/assign": { - "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/unassign": { - "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "display_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/update": { - "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group to modify.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/import": { - "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "groups": { - "description": "Details of groups which are to be imported", - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupsImportListInput" - } - }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/import": { - "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import metadata objects using specified TMLs is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" - ] - }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "emails", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/update/{connection_identifier}": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - } - }, - "required": [ - "name", - "description", - "metadata_type", - "metadata_identifier", - "time_zone", - "recipient_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/delete": { - "post": { - "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the scheduled job." - } - ], - "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/search": { - "post": { - "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" - }, - "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - }, - "schedule_identifiers": { - "description": "unique ID or name of the Schedule", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/update": { - "post": { - "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the scheduled job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the schedule." - } - ], - "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions": { - "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "action_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { - "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DbtSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object", - "nullable": true - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email of the user.", - "nullable": true - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user.", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user.", - "nullable": true - }, - "tenant_id": { - "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Groups to which the user is assigned.", - "nullable": true - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user", - "nullable": true - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user", - "nullable": true - }, - "user_parameters": { - "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "FavoriteMetadataItem": { - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the metadata object." - }, - "name": { - "type": "string", - "description": "name of the metadata object." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata object." - } - } - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the object.", - "nullable": true - } - }, - "description": "The object representation with ID and Name." - }, - "FavoriteMetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object.", - "nullable": true - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the cluster.", - "nullable": true - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster.", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "The timezone of the cluster.", - "nullable": true - }, - "locale": { - "type": "string", - "description": "The default locale of the cluster.", - "nullable": true - }, - "date_format": { - "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true - }, - "api_version": { - "type": "string", - "description": "The API version of the cluster.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true - }, - "license": { - "type": "string", - "description": "The license applied to the cluster.", - "nullable": true - }, - "date_time_format": { - "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true - }, - "time_format": { - "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true - }, - "system_user_id": { - "type": "string", - "description": "The unique identifier of system user.", - "nullable": true - }, - "super_user_id": { - "type": "string", - "description": "The unique identifier of super user.", - "nullable": true - }, - "hidden_object_id": { - "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true - }, - "system_group_id": { - "type": "string", - "description": "The unique identifier of system group.", - "nullable": true - }, - "tsadmin_user_id": { - "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true - }, - "admin_group_id": { - "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true - }, - "all_tables_connection_id": { - "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true - }, - "all_user_group_id": { - "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true - }, - "accept_language": { - "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true - }, - "all_user_group_member_user_count": { - "type": "integer", - "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true - }, - "logical_model_version": { - "type": "integer", - "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true - } - } - }, - "SystemConfig": { - "type": "object", - "properties": { - "onboarding_content_url": { - "type": "string", - "nullable": true - } - } - }, - "OrgResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the Org.", - "nullable": true - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "description": "Status of the Org.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the Org.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "description": "Visibility of the Org.", - "nullable": true - } - } - }, - "Tag": { - "type": "object", - "required": [ - "name", - "id" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "color": { - "type": "string", - "nullable": true - }, - "deleted": { - "type": "boolean", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "external": { - "type": "boolean", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "author_id": { - "type": "string", - "nullable": true - }, - "modifier_id": { - "type": "string", - "nullable": true - }, - "owner_id": { - "type": "string", - "nullable": true - } - } - }, - "UserGroupResponse": { - "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], - "properties": { - "author_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true - }, - "content": { - "type": "object", - "description": "Content details of the group", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true - }, - "default_liveboards": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group", - "nullable": true - }, - "display_name": { - "type": "string", - "description": "Display name of the group." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the group", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true - }, - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index number of the group", - "nullable": true - }, - "index_version": { - "type": "integer", - "format": "int32", - "description": "Index version number of the group", - "nullable": true - }, - "metadata_version": { - "type": "integer", - "format": "int32", - "description": "Metadata version number of the group", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Orgs in which group exists.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the group", - "nullable": true - }, - "sub_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Groups who are part of the group", - "nullable": true - }, - "system_group": { - "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Tags associated with the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Users who are part of the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - }, - "description": "List of roles assgined to the user", - "nullable": true - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id of the role", - "nullable": true - }, - "name": { - "type": "string", - "description": "name of the role", - "nullable": true - } - } - }, - "MetadataListItemInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true - } - } - }, - "PermissionInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Object share mode." - } - }, - "description": "Details of users or groups." - }, - "ExcludeMetadataListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" - } - } - }, - "FavoriteObjectOptionsInput": { - "type": "object", - "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true - } - }, - "description": "Favorite object options." - }, - "MetadataSearchSortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata.", - "nullable": true - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "SqlQueryResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "metadata_type", - "sql_queries" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "sql_queries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SqlQuery" - }, - "description": "SQL query details of metadata objects." - } - } - }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "PdfOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - } - } - }, - "PermissionOfPrincipalsResponse": { - "type": "object", - "properties": { - "principal_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PermissionOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type.", - "nullable": true - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization.", - "nullable": true - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LogResponse": { - "type": "object", - "required": [ - "date", - "log" - ], - "properties": { - "date": { - "type": "string", - "description": "Date timestamp of the log entry" - }, - "log": { - "type": "string", - "description": "Log data" - } - } - }, - "RepoConfigObject": { - "type": "object", - "properties": { - "repository_url": { - "type": "string", - "description": "Remote repository URL configured", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true - }, - "commit_branch_name": { - "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches that have been pulled in local repository", - "nullable": true - }, - "enable_guid_mapping": { - "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true - }, - "configuration_branch_name": { - "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true - }, - "org": { - "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true - } - } - }, - "CommitHistoryResponse": { - "type": "object", - "required": [ - "committer", - "author", - "comment", - "commit_time", - "commit_id", - "branch" - ], - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - } - } - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database.", - "nullable": true - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database.", - "nullable": true - }, - "table": { - "type": "string", - "description": "Name of the table within the schema.", - "nullable": true - }, - "column": { - "type": "string", - "description": "Name of the column within the table.", - "nullable": true - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - } - }, - "SearchConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "description": { - "type": "string", - "description": "Description of the connection.", - "nullable": true - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database.", - "nullable": true - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema.", - "nullable": true - } - } - }, - "Table": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table.", - "nullable": true - }, - "type": { - "type": "string", - "description": "Type of table. Either view or table", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the table", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table", - "nullable": true - } - } - }, - "Column": { - "type": "object", - "required": [ - "name", - "data_type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { - "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - } - } - }, - "SearchRoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - }, - "description": "Response for search role api should handle hidden privileges as well." - }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ResponseCustomAction": { - "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true - }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true - }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "JWT_Metadata_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "nullable": true - } - }, - "description": "Metadata objects." - }, - "User_Parameter_Options": { - "type": "object", - "properties": { - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "nullable": true - }, - "runtime_filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "nullable": true - }, - "runtime_sorts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Parameters" - }, - "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true - } - }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" - }, - "User_Object": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects to apply the User_Object." - }, - "User_Runtime_Filters": { - "type": "object", - "required": [ - "column_name", - "values", - "operator" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Value of the filters." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "GE", - "GT", - "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", - "BW", - "BW_INC", - "BW_INC_MAX", - "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" - ], - "description": "Operator value. Example: EQ" - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime filter.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Filters." - }, - "User_Runtime_Sorts": { - "type": "object", - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Order for the sort.", - "nullable": true - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime sort.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Sorts." - }, - "User_Parameters": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of values." - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime parameter.", - "nullable": true - } - }, - "description": "Objects to apply the Runtime_Parameters." - }, - "Token": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "Scope": { - "type": "object", - "required": [ - "access_type" - ], - "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true - } - } - }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "TokenValidationResponse": { - "type": "object", - "required": [ - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "token_type" - ], - "properties": { - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "token_type": { - "type": "string", - "description": "Type of token." - } - } - }, - "ResponseActivationURL": { - "type": "object", - "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user.", - "nullable": true - } - }, - "description": "The object representation with activation link." - }, - "ImportUser": { - "type": "object", - "required": [ - "user_identifier", - "display_name" - ], - "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { - "type": "string", - "description": "Password of the user.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email address of the user.", - "nullable": true - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - } - }, - "GroupsImportListInput": { - "type": "object", - "required": [ - "display_name", - "group_identifier" - ], - "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges that will be assigned to the group.", - "nullable": true - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true - } - } - }, - "ImportUserGroupsResponse": { - "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], - "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." - } - } - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION", - "USER", - "USER_GROUP", - "ROLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "ShareMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ], - "description": "Type of metadata.", - "nullable": true - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit", - "nullable": true - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "DeployResponse": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object", - "nullable": true - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object", - "nullable": true - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "CreateConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "FetchConnectionDiffStatusResponse": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true - } - } - }, - "RoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - } - }, - "LiveboardOptionsInput": { - "type": "object", - "required": [ - "visualization_identifiers" - ], - "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true - } - }, - "description": "Recipients of the scheduled job notification." - }, - "PrincipalsListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type." - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job.", - "nullable": true - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { - "type": "string", - "description": "Status of the job", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records.", - "nullable": true - } - } - }, - "Author": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "Author of the schedule." - }, - "Frequency": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpression", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "LiveboardOptions": { + } + }, + "components": { + "schemas": { + "ErrorResponse": { "type": "object", - "required": [ - "visualization_identifiers" - ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "error": { + "type": "object" } - }, - "description": "Options to specify details of Liveboard." + } }, - "MetadataResponse": { + "User": { "type": "object", "required": [ "id", - "type" + "name", + "display_name", + "account_type", + "account_status", + "email", + "creation_time_in_millis", + "first_login_time_in_millis" ], "properties": { - "name": { - "type": "string", - "nullable": true - }, "id": { "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] - } - } - }, - "PdfOptions": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "name": { + "type": "string" }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "display_name": { + "type": "string" }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "account_type": { + "type": "string" }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "account_status": { + "type": "string" }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true + "email": { + "type": "string" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { + "user_groups": { "type": "array", "items": { - "type": "string" - }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "$ref": "#/components/schemas/UserGroup" + } }, - "principals": { + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" - } - } - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true - } - }, - "description": "Schedule run response object" - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ], - "nullable": true - } - } - }, - "SortingOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "type": "string" + } }, - "record_size": { + "creation_time_in_millis": { "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "format": "int32" }, - "record_offset": { + "first_login_time_in_millis": { "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" - }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "format": "int32" }, - "parameters": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "type": "string" + } } } }, - "Associate_Metadata_Input_Create": { + "RiseSetter": { "type": "object", "required": [ - "identifier" + "field", + "path" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "path": { + "type": "string" } } }, - "ActionConfigInputCreate": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true - } - }, - "description": "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." - }, - "Action_Details_Input": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_userid", + "valid_for_username" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "token": { + "type": "string" }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true + "creation_time_in_millis": { + "type": "integer", + "format": "int32" }, - "url": { - "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "expiration_time_in_millis": { + "type": "integer", + "format": "int32" }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "scope": { + "$ref": "#/components/schemas/Scope" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "valid_for_userid": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "valid_for_username": { + "type": "string" } } }, - "ActionConfigInput": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ModelTableList": { + "UserGroup": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "id" ], "properties": { - "model_name": { - "type": "string", - "description": "Name of the Model." - }, - "model_path": { - "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "name": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "id": { + "type": "string" } } }, - "DbtSearchResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "dbt_connection_identifier": { - "type": "string", - "nullable": true - }, - "project_name": { - "type": "string", - "nullable": true - }, - "connection_id": { - "type": "string", - "nullable": true - }, - "connection_name": { - "type": "string", - "nullable": true - }, - "cdw_database": { - "type": "string", - "nullable": true + "access_type": { + "type": "string" }, - "import_type": { - "type": "string", - "nullable": true + "organisation_id": { + "type": "integer", + "format": "int32" }, - "author_name": { - "type": "string", - "nullable": true + "metadata_id": { + "type": "string" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From aabadc30c097213acf08f9d457a5dce378cb6e54 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 07:30:09 +0000 Subject: [PATCH 162/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15498 +++++++++++++++++++++++++++++- 1 file changed, 15215 insertions(+), 283 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2e5c7fec7..014458704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,18 +4,102 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": [ + "9.6.0.cl" + ], + "description": "Roles for version 9.6.0.cl" + } + ], "tags": [], "paths": { - "/api/2.0/rest/auth/session/user": { + "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get Session object information", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +108,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -33,59 +117,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/login": { - "post": { - "operationId": "login", - "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "type": "string", - "deprecated": false - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", - "type": "boolean", - "deprecated": false - } - }, - "required": [ - "username", - "password" - ] + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -97,76 +151,58 @@ } } }, - "/api/2.0/rest/v2/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "default": "", - "type": "string", - "deprecated": false - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", - "type": "string", - "deprecated": false - }, - "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false - }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false - }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", - "default": 0, - "type": "integer", - "format": "int32", - "deprecated": false - } - }, - "required": [ - "username", - "object_id" - ] - } - } - } - }, + "parameters": [], "responses": { "200": { + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -178,12 +214,13 @@ } } }, - "/api/2.0/rest/v2/auth/token/full": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "getFullAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -191,57 +228,187 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the user account", + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", "type": "string", - "deprecated": false + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "password": { - "description": "The password of the user account", - "default": "", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", "type": "string", - "deprecated": false + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", + "account_status": { + "description": "Current status of the user account.", "type": "string", - "deprecated": false + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", + "type": "array", + "items": { + "type": "string" + } }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions" + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "username" - ] + } } } - } + }, + "required": true }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -249,39 +416,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -293,48 +450,87 @@ } } }, - "/api/2.0/rest/v2/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "System", + "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "type": "string", - "deprecated": false - }, - "token": { - "type": "string", - "deprecated": false - } + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" }, - "required": [ - "username", - "token" - ] + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } } } - } - }, - "responses": { - "200": { + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -345,157 +541,14893 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, - "User": { - "type": "object", + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/search": { + "post": { + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/search": { + "post": { + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "display_name": { + "description": "Display name of the group", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" + }, + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", + "$ref": "#/components/schemas/SortOptions" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataListItemInput" + } + }, + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "$ref": "#/components/schemas/MetadataSearchSortOptions" + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/sql": { + "post": { + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/sql": { + "post": { + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of an Answer.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/liveboard": { + "post": { + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "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).", + "type": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput" + }, + "png_options": { + "description": "Options for PNG export.", + "$ref": "#/components/schemas/PngOptionsInput" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/answer": { + "post": { + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/logs/fetch": { + "post": { + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Log", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/search": { + "post": { + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Details of local repository configuration", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/search": { + "post": { + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ] + }, + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", + "type": "string" + }, + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Commit history of the metadata object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + } + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptionInput" + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object" + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of connections to the datasource.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/search": { + "post": { + "operationId": "searchRoles", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_identifiers": { + "description": "unique ID or name of the Roles", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Roles search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/update": { + "post": { + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/reset-password": { + "post": { + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/create": { + "post": { + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org.", + "type": "string" + }, + "description": { + "description": "Description of the Org.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/update": { + "post": { + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/delete": { + "post": { + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/create": { + "post": { + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" + }, + "display_name": { + "description": "Display name for the group.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "display_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/update": { + "post": { + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group to modify.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description for the group.", + "type": "string" + }, + "display_name": { + "description": "Display name of the group.", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/delete": { + "post": { + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/import": { + "post": { + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } + }, + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/import": { + "post": { + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import metadata objects using specified TMLs is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export": { + "post": { + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExportMetadataTypeInput" + } + }, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "default": false, + "type": "boolean", + "nullable": true + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/delete": { + "post": { + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } + }, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "emails", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/create": { + "post": { + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_url": { + "description": "URL for connecting to remote repository", + "type": "string" + }, + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" + } + }, + "required": [ + "repository_url", + "username", + "access_token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully configured local repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/update": { + "post": { + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username to authenticate connection to version control system", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully updated local repository configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/delete": { + "post": { + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/commit": { + "post": { + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "comment": { + "description": "Comment to be added to the commit", + "type": "string" + } + }, + "required": [ + "metadata", + "comment" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully committed the metadata objects", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { + "post": { + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted" + } + ], + "responses": { + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/validate": { + "post": { + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", + "type": "string" + }, + "target_branch_name": { + "description": "Name of the branch where files will be merged", + "type": "string" + } + }, + "required": [ + "source_branch_name", + "target_branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "validation done successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/deploy": { + "post": { + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully deployed the changes", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string" + }, + "description": { + "description": "Description of the connection.", + "type": "string" + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] + }, + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" + }, + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/update": { + "post": { + "operationId": "updateRole", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "200": { + "description": "Role successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/delete": { + "post": { + "operationId": "deleteRole", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/create": { + "post": { + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of the metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency settings for the scheduled job.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + } + }, + "required": [ + "name", + "description", + "metadata_type", + "metadata_identifier", + "time_zone", + "recipient_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the scheduled job." + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with the scheduled jobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortingOptions" + }, + "history_runs_options": { + "description": "Options while fetching history runs for the schedule.", + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/update": { + "post": { + "operationId": "updateSchedule", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the scheduled job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify the details of a Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency of the scheduled job run.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input_Create" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "action_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "nullable": true + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user.", + "nullable": true + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password.", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds.", + "nullable": true + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email of the user.", + "nullable": true + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the user is external.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true + }, + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true + }, + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden.", + "nullable": true + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present.", + "nullable": true + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience.", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user.", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the user.", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true + }, + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user.", + "nullable": true + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user.", + "nullable": true + }, + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user.", + "nullable": true + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned.", + "nullable": true + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of.", + "nullable": true + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org.", + "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user", + "nullable": true + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user", + "nullable": true + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + } + } + }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The current Org context of the user." + }, + "FavoriteMetadataItem": { + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the metadata object." + }, + "name": { + "type": "string", + "description": "name of the metadata object." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata object." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the object.", + "nullable": true + } + }, + "description": "The object representation with ID and Name." + }, + "FavoriteMetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object.", + "nullable": true + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "SystemInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the cluster.", + "nullable": true + }, + "release_version": { + "type": "string", + "description": "The release version of the cluster.", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "The timezone of the cluster.", + "nullable": true + }, + "locale": { + "type": "string", + "description": "The default locale of the cluster.", + "nullable": true + }, + "date_format": { + "type": "string", + "description": "The default date format representation of the cluster.", + "nullable": true + }, + "api_version": { + "type": "string", + "description": "The API version of the cluster.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The deployment type of the cluster.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The deployed environment of the cluster.", + "nullable": true + }, + "license": { + "type": "string", + "description": "The license applied to the cluster.", + "nullable": true + }, + "date_time_format": { + "type": "string", + "description": "The default date time format representation of the cluster.", + "nullable": true + }, + "time_format": { + "type": "string", + "description": "The default time format representation of the cluster.", + "nullable": true + }, + "system_user_id": { + "type": "string", + "description": "The unique identifier of system user.", + "nullable": true + }, + "super_user_id": { + "type": "string", + "description": "The unique identifier of super user.", + "nullable": true + }, + "hidden_object_id": { + "type": "string", + "description": "The unique identifier of hidden object.", + "nullable": true + }, + "system_group_id": { + "type": "string", + "description": "The unique identifier of system group.", + "nullable": true + }, + "tsadmin_user_id": { + "type": "string", + "description": "The unique identifier of tsadmin user.", + "nullable": true + }, + "admin_group_id": { + "type": "string", + "description": "The unique identifier of admin group.", + "nullable": true + }, + "all_tables_connection_id": { + "type": "string", + "description": "The unique identifier of all tables connection.", + "nullable": true + }, + "all_user_group_id": { + "type": "string", + "description": "The unique identifier of ALL group.", + "nullable": true + }, + "accept_language": { + "type": "string", + "description": "The supported accept language by the cluster.", + "nullable": true + }, + "all_user_group_member_user_count": { + "type": "integer", + "format": "int32", + "description": "The count of users of ALL group.", + "nullable": true + }, + "logical_model_version": { + "type": "integer", + "format": "int32", + "description": "The version number of logical model of the cluster.", + "nullable": true + } + } + }, + "SystemConfig": { + "type": "object", + "properties": { + "onboarding_content_url": { + "type": "string", + "nullable": true + } + } + }, + "OrgResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the Org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Org.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], + "description": "Status of the Org.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the Org.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ], + "description": "Visibility of the Org.", + "nullable": true + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name", + "id" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "color": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "author_id": { + "type": "string", + "nullable": true + }, + "modifier_id": { + "type": "string", + "nullable": true + }, + "owner_id": { + "type": "string", + "nullable": true + } + } + }, + "UserGroupResponse": { + "type": "object", + "required": [ + "display_name", + "id", + "name", + "visibility" + ], + "properties": { + "author_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Content details of the group", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the group in milliseconds", + "nullable": true + }, + "default_liveboards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the group is deleted", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the group is deprecated", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group", + "nullable": true + }, + "display_name": { + "type": "string", + "description": "Display name of the group." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the group is external", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the group", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the group is hidden", + "nullable": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index number of the group", + "nullable": true + }, + "index_version": { + "type": "integer", + "format": "int32", + "description": "Index version number of the group", + "nullable": true + }, + "metadata_version": { + "type": "integer", + "format": "int32", + "description": "Metadata version number of the group", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the group in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Orgs in which group exists.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the group", + "nullable": true + }, + "sub_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Groups who are part of the group", + "nullable": true + }, + "system_group": { + "type": "boolean", + "description": "Indicates whether the group is a system group.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Tags associated with the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Users who are part of the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user", + "nullable": true + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role", + "nullable": true + }, + "name": { + "type": "string", + "description": "name of the role", + "nullable": true + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata.", + "nullable": true + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects.", + "nullable": true + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects.", + "nullable": true + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + } + } + }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type.", + "nullable": true + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization.", + "nullable": true + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization.", + "nullable": true + } + } + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with fetch data api" + }, + "LogResponse": { + "type": "object", + "required": [ + "date", + "log" + ], + "properties": { + "date": { + "type": "string", + "description": "Date timestamp of the log entry" + }, + "log": { + "type": "string", + "description": "Log data" + } + } + }, + "RepoConfigObject": { + "type": "object", + "properties": { + "repository_url": { + "type": "string", + "description": "Remote repository URL configured", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username to authenticate connection to the version control system", + "nullable": true + }, + "commit_branch_name": { + "type": "string", + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Branches that have been pulled in local repository", + "nullable": true + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true + }, + "configuration_branch_name": { + "type": "string", + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the Org", + "nullable": true + } + } + }, + "CommitHistoryResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment", + "commit_time", + "commit_id", + "branch" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + } + } + }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database.", + "nullable": true + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database.", + "nullable": true + }, + "table": { + "type": "string", + "description": "Name of the table within the schema.", + "nullable": true + }, + "column": { + "type": "string", + "description": "Name of the column within the table.", + "nullable": true + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection.", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects", + "nullable": true + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database.", + "nullable": true + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created.", + "nullable": true + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema.", + "nullable": true + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table.", + "nullable": true + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the table", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" + }, + "data_type": { + "type": "string", + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate", + "nullable": true + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + } + } + }, + "SearchRoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + }, + "description": "Response for search role api should handle hidden privileges as well." + }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ResponseCustomAction": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "`Type` and configuration data for custom actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "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." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to assign the the custom action to.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT.", + "nullable": true + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT.", + "nullable": true + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT.", + "nullable": true + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "nullable": true + } + }, + "description": "Metadata objects." + }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "nullable": true + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + }, + "nullable": true + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + }, + "nullable": true + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later", + "nullable": true + } + }, + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort.", + "nullable": true + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter.", + "nullable": true + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, + "Token": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "Scope": { + "type": "object", + "required": [ + "access_type" + ], + "properties": { + "access_type": { + "type": "string", + "description": "Object access scope type." + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_id": { + "type": "string", + "description": "Unique identifier of the Org.", + "nullable": true + } + } + }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user.", + "nullable": true + } + }, + "description": "The object representation with activation link." + }, + "ImportUser": { + "type": "object", + "required": [ + "user_identifier", + "display_name" + ], + "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "password": { + "type": "string", + "description": "Password of the user.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email address of the user.", + "nullable": true + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true + } + } + }, + "ImportUsersResponse": { + "type": "object", + "properties": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + } + }, + "GroupsImportListInput": { + "type": "object", + "required": [ + "display_name", + "group_identifier" + ], + "properties": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges that will be assigned to the group.", + "nullable": true + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true + } + } + }, + "ImportUserGroupsResponse": { + "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], + "properties": { + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." + } + } + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API" + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit", + "nullable": true + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object", + "nullable": true + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object", + "nullable": true + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file", + "nullable": true + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff.", + "nullable": true + } + } + }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + } + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients.", + "nullable": true + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true + } + }, + "description": "Recipients of the scheduled job notification." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job.", + "nullable": true + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard.", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export.", + "nullable": true + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { + "type": "string", + "description": "Status of the job", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records.", + "nullable": true + } + } + }, + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "MetadataResponse": { + "type": "object", "required": [ "id", - "name", - "display_name", - "account_type", - "account_status", - "email", - "creation_time_in_millis", - "first_login_time_in_millis" + "type" ], "properties": { + "name": { + "type": "string", + "nullable": true + }, "id": { "type": "string" }, - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, - "display_name": { - "type": "string" + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, - "account_type": { - "type": "string" + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, - "account_status": { - "type": "string" + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, - "email": { - "type": "string" + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - } + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true }, - "privileges": { + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { "type": "array", "items": { "type": "string" - } - }, - "creation_time_in_millis": { - "type": "integer", - "format": "int32" - }, - "first_login_time_in_millis": { - "type": "integer", - "format": "int32" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, - "tags": { + "principals": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } - } + }, + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "RiseSetter": { + "PrincipalsListItem": { "type": "object", "required": [ - "field", - "path" + "identifier", + "type" ], "properties": { - "field": { - "type": "string" + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." }, - "path": { - "type": "string" + "type": { + "type": "string", + "description": "Principal type. Valid values are" } } }, - "Token": { + "ResponseScheduleRun": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_userid", - "valid_for_username" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "token": { - "type": "string" + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "creation_time_in_millis": { + "start_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "expiration_time_in_millis": { + "end_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run end time in milliseconds." }, - "scope": { - "$ref": "#/components/schemas/Scope" + "status": { + "type": "string", + "description": "Status of the schedule run." }, - "valid_for_userid": { - "type": "string" + "detail": { + "type": "string", + "description": "Message details related to the schedule run.", + "nullable": true + } + }, + "description": "Schedule run response object" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true }, - "valid_for_username": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "nullable": true } } }, - "UserGroup": { + "SortingOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + }, + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "name", - "id" + "url" ], "properties": { - "name": { - "type": "string" + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true }, - "id": { - "type": "string" + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true } } }, - "Scope": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { - "type": "string" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, - "organisation_id": { - "type": "integer", - "format": "int32" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "metadata_id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true + } + }, + "description": "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." + }, + "Action_Details_Input": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInput": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ModelTableList": { + "type": "object", + "required": [ + "model_name", + "tables" + ], + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string", + "nullable": true + }, + "project_name": { + "type": "string", + "nullable": true + }, + "connection_id": { + "type": "string", + "nullable": true + }, + "connection_name": { + "type": "string", + "nullable": true + }, + "cdw_database": { + "type": "string", + "nullable": true + }, + "import_type": { + "type": "string", + "nullable": true + }, + "author_name": { + "type": "string", + "nullable": true } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 59690b89e4c80d46e4a61cac9f3e557152ae9e05 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 07:41:09 +0000 Subject: [PATCH 163/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15488 +----------------------------- 1 file changed, 278 insertions(+), 15210 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 014458704..2e5c7fec7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,102 +4,18 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, - "x-roles": [ - { - "name": "9.0.0.cl", - "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], - "description": "Roles for version 9.0.0.cl" - }, - { - "name": "9.12.0.cl", - "id": "9.12.0.cl", - "tags": [ - "9.12.0.cl" - ], - "description": "Roles for version 9.12.0.cl" - }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, - { - "name": "9.2.0.cl", - "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], - "description": "Roles for version 9.2.0.cl" - }, - { - "name": "10.1.0.cl", - "id": "10.1.0.cl", - "tags": [ - "10.1.0.cl" - ], - "description": "Roles for version 10.1.0.cl" - }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, - { - "name": "9.5.0.cl", - "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], - "description": "Roles for version 9.5.0.cl" - }, - { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], - "description": "Roles for version 9.6.0.cl" - } - ], "tags": [], "paths": { - "/api/rest/2.0/auth/session/user": { + "/api/2.0/rest/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get Session object information", "tags": [ - "Authentication", - "9.0.0.cl" + "Auth" ], "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -108,38 +24,8 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -151,58 +37,55 @@ } } }, - "/api/rest/2.0/auth/session/token": { - "get": { - "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/login": { + "post": { + "operationId": "login", + "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", "tags": [ - "Authentication", - "9.4.0.cl" + "Auth" ], - "parameters": [], - "responses": { - "200": { - "description": "Fetching token for current user successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTokenResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "type": "string", + "deprecated": false + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "username", + "password" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -214,13 +97,12 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/2.0/rest/v2/auth/token/object": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getObjectAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", "tags": [ - "Users", - "9.0.0.cl" + "Auth" ], "requestBody": { "content": { @@ -228,187 +110,63 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, - "visibility": { - "description": "Visibility of the user", + "username": { + "description": "Username of the user account", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" + "deprecated": false }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the user", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "account_type": { - "description": "Type of the account", + "password": { + "description": "The password of the user account", + "default": "", "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "deprecated": false }, - "account_status": { - "description": "Current status of the user account.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true + "deprecated": false }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true - }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } + "object_id": { + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "type": "string", + "deprecated": false }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, "type": "integer", - "format": "int32" + "format": "int32", + "deprecated": false }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" - }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", - "type": "array", - "items": { - "type": "string" - } - }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, - "type": "boolean", - "nullable": true + "format": "int32", + "deprecated": false } - } + }, + "required": [ + "username", + "object_id" + ] } } - }, - "required": true + } }, - "parameters": [], "responses": { "200": { - "description": "User search result.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/Token" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -416,29 +174,74 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "default": "", + "type": "string", + "deprecated": false + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", + "type": "string", + "deprecated": false + }, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + } + }, + "required": [ + "username" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -450,57 +253,35 @@ } } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "To log a user out of the current session, use this endpoint", "tags": [ - "System", - "9.0.0.cl" + "Auth" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, "responses": { "200": { - "description": "Cluster information.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } + "type": "object" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -508,29 +289,52 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "To expire or revoke a token for a user, use this endpoint", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "deprecated": false + }, + "token": { + "type": "string", + "deprecated": false + } + }, + "required": [ + "username", + "token" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -541,14893 +345,157 @@ } } } - }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster config information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/search": { - "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/search": { - "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tags search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/search": { - "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "display_name": { - "description": "Display name of the group", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/sql": { - "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/sql": { - "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/liveboard": { - "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "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).", - "type": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" - }, - "png_options": { - "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/answer": { - "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" - }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/principals/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - } - }, - "required": [ - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/logs/fetch": { - "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "log_type": { - "description": "Name of the log type", - "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] - }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" - }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" - }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "log_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Log fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/search": { - "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Details of local repository configuration", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/search": { - "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ] - }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Commit history of the metadata object", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/search": { - "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } - }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", - "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" - }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true - }, - "configuration": { - "description": "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.", - "type": "object" - }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "List of connections to the datasource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/search": { - "post": { - "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "permissions": { - "description": "Permission details of the Role", - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Roles search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/search": { - "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/session/login": { - "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "object_id": { - "description": "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.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "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.", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/token/full": { - "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string" - }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "type": "string" - }, - "token": { - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/validate": { - "post": { - "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", - "tags": [ - "Authentication", - "9.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Token validation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", - "type": "boolean", - "nullable": true - }, - "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "display_name", - "email" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/update": { - "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", - "type": "boolean", - "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/import": { - "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } - }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "users" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import users operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/change-password": { - "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "current_password", - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/reset-password": { - "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/force-logout": { - "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object" - } - }, - "required": [ - "configuration" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/create": { - "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" - }, - "description": { - "description": "Description of the Org.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/update": { - "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { - "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/create": { - "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tag successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/update": { - "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name or Id of the tag." - } - ], - "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { - "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], - "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/assign": { - "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/unassign": { - "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "display_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/update": { - "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group to modify.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/import": { - "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "groups": { - "description": "Details of groups which are to be imported", - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupsImportListInput" - } - }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/import": { - "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import metadata objects using specified TMLs is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" - ] - }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "emails", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/update/{connection_identifier}": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - } - }, - "required": [ - "name", - "description", - "metadata_type", - "metadata_identifier", - "time_zone", - "recipient_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/delete": { - "post": { - "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the scheduled job." - } - ], - "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/search": { - "post": { - "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" - }, - "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - }, - "schedule_identifiers": { - "description": "unique ID or name of the Schedule", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/update": { - "post": { - "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the scheduled job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the schedule." - } - ], - "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions": { - "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "action_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { - "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DbtSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object", - "nullable": true - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email of the user.", - "nullable": true - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user.", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user.", - "nullable": true - }, - "tenant_id": { - "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Groups to which the user is assigned.", - "nullable": true - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user", - "nullable": true - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user", - "nullable": true - }, - "user_parameters": { - "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "FavoriteMetadataItem": { - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the metadata object." - }, - "name": { - "type": "string", - "description": "name of the metadata object." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata object." - } - } - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the object.", - "nullable": true - } - }, - "description": "The object representation with ID and Name." - }, - "FavoriteMetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object.", - "nullable": true - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the cluster.", - "nullable": true - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster.", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "The timezone of the cluster.", - "nullable": true - }, - "locale": { - "type": "string", - "description": "The default locale of the cluster.", - "nullable": true - }, - "date_format": { - "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true - }, - "api_version": { - "type": "string", - "description": "The API version of the cluster.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true - }, - "license": { - "type": "string", - "description": "The license applied to the cluster.", - "nullable": true - }, - "date_time_format": { - "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true - }, - "time_format": { - "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true - }, - "system_user_id": { - "type": "string", - "description": "The unique identifier of system user.", - "nullable": true - }, - "super_user_id": { - "type": "string", - "description": "The unique identifier of super user.", - "nullable": true - }, - "hidden_object_id": { - "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true - }, - "system_group_id": { - "type": "string", - "description": "The unique identifier of system group.", - "nullable": true - }, - "tsadmin_user_id": { - "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true - }, - "admin_group_id": { - "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true - }, - "all_tables_connection_id": { - "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true - }, - "all_user_group_id": { - "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true - }, - "accept_language": { - "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true - }, - "all_user_group_member_user_count": { - "type": "integer", - "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true - }, - "logical_model_version": { - "type": "integer", - "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true - } - } - }, - "SystemConfig": { - "type": "object", - "properties": { - "onboarding_content_url": { - "type": "string", - "nullable": true - } - } - }, - "OrgResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the Org.", - "nullable": true - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "description": "Status of the Org.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the Org.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "description": "Visibility of the Org.", - "nullable": true - } - } - }, - "Tag": { - "type": "object", - "required": [ - "name", - "id" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "color": { - "type": "string", - "nullable": true - }, - "deleted": { - "type": "boolean", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "external": { - "type": "boolean", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "author_id": { - "type": "string", - "nullable": true - }, - "modifier_id": { - "type": "string", - "nullable": true - }, - "owner_id": { - "type": "string", - "nullable": true - } - } - }, - "UserGroupResponse": { - "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], - "properties": { - "author_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true - }, - "content": { - "type": "object", - "description": "Content details of the group", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true - }, - "default_liveboards": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group", - "nullable": true - }, - "display_name": { - "type": "string", - "description": "Display name of the group." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the group", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true - }, - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index number of the group", - "nullable": true - }, - "index_version": { - "type": "integer", - "format": "int32", - "description": "Index version number of the group", - "nullable": true - }, - "metadata_version": { - "type": "integer", - "format": "int32", - "description": "Metadata version number of the group", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Orgs in which group exists.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the group", - "nullable": true - }, - "sub_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Groups who are part of the group", - "nullable": true - }, - "system_group": { - "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Tags associated with the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Users who are part of the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - }, - "description": "List of roles assgined to the user", - "nullable": true - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id of the role", - "nullable": true - }, - "name": { - "type": "string", - "description": "name of the role", - "nullable": true - } - } - }, - "MetadataListItemInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true - } - } - }, - "PermissionInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Object share mode." - } - }, - "description": "Details of users or groups." - }, - "ExcludeMetadataListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" - } - } - }, - "FavoriteObjectOptionsInput": { - "type": "object", - "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true - } - }, - "description": "Favorite object options." - }, - "MetadataSearchSortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata.", - "nullable": true - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "SqlQueryResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "metadata_type", - "sql_queries" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "sql_queries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SqlQuery" - }, - "description": "SQL query details of metadata objects." - } - } - }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "PdfOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - } - } - }, - "PermissionOfPrincipalsResponse": { - "type": "object", - "properties": { - "principal_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PermissionOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type.", - "nullable": true - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization.", - "nullable": true - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LogResponse": { - "type": "object", - "required": [ - "date", - "log" - ], - "properties": { - "date": { - "type": "string", - "description": "Date timestamp of the log entry" - }, - "log": { - "type": "string", - "description": "Log data" - } - } - }, - "RepoConfigObject": { - "type": "object", - "properties": { - "repository_url": { - "type": "string", - "description": "Remote repository URL configured", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true - }, - "commit_branch_name": { - "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches that have been pulled in local repository", - "nullable": true - }, - "enable_guid_mapping": { - "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true - }, - "configuration_branch_name": { - "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true - }, - "org": { - "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true - } - } - }, - "CommitHistoryResponse": { - "type": "object", - "required": [ - "committer", - "author", - "comment", - "commit_time", - "commit_id", - "branch" - ], - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - } - } - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database.", - "nullable": true - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database.", - "nullable": true - }, - "table": { - "type": "string", - "description": "Name of the table within the schema.", - "nullable": true - }, - "column": { - "type": "string", - "description": "Name of the column within the table.", - "nullable": true - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - } - }, - "SearchConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "description": { - "type": "string", - "description": "Description of the connection.", - "nullable": true - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database.", - "nullable": true - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema.", - "nullable": true - } - } - }, - "Table": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table.", - "nullable": true - }, - "type": { - "type": "string", - "description": "Type of table. Either view or table", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the table", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table", - "nullable": true - } - } - }, - "Column": { - "type": "object", - "required": [ - "name", - "data_type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { - "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - } - } - }, - "SearchRoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - }, - "description": "Response for search role api should handle hidden privileges as well." - }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ResponseCustomAction": { - "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true - }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true - }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "JWT_Metadata_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "nullable": true - } - }, - "description": "Metadata objects." - }, - "User_Parameter_Options": { - "type": "object", - "properties": { - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "nullable": true - }, - "runtime_filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "nullable": true - }, - "runtime_sorts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Parameters" - }, - "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true - } - }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" - }, - "User_Object": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects to apply the User_Object." - }, - "User_Runtime_Filters": { - "type": "object", - "required": [ - "column_name", - "values", - "operator" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Value of the filters." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "GE", - "GT", - "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", - "BW", - "BW_INC", - "BW_INC_MAX", - "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" - ], - "description": "Operator value. Example: EQ" - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime filter.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Filters." - }, - "User_Runtime_Sorts": { - "type": "object", - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Order for the sort.", - "nullable": true - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime sort.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Sorts." - }, - "User_Parameters": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of values." - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime parameter.", - "nullable": true - } - }, - "description": "Objects to apply the Runtime_Parameters." - }, - "Token": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "Scope": { - "type": "object", - "required": [ - "access_type" - ], - "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true - } - } - }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "TokenValidationResponse": { - "type": "object", - "required": [ - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "token_type" - ], - "properties": { - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "token_type": { - "type": "string", - "description": "Type of token." - } - } - }, - "ResponseActivationURL": { - "type": "object", - "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user.", - "nullable": true - } - }, - "description": "The object representation with activation link." - }, - "ImportUser": { - "type": "object", - "required": [ - "user_identifier", - "display_name" - ], - "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { - "type": "string", - "description": "Password of the user.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email address of the user.", - "nullable": true - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - } - }, - "GroupsImportListInput": { - "type": "object", - "required": [ - "display_name", - "group_identifier" - ], - "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges that will be assigned to the group.", - "nullable": true - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true - } - } - }, - "ImportUserGroupsResponse": { - "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], - "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." - } - } - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION", - "USER", - "USER_GROUP", - "ROLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "ShareMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ], - "description": "Type of metadata.", - "nullable": true - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit", - "nullable": true - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "DeployResponse": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object", - "nullable": true - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object", - "nullable": true - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "CreateConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "FetchConnectionDiffStatusResponse": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true - } - } - }, - "RoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - } - }, - "LiveboardOptionsInput": { - "type": "object", - "required": [ - "visualization_identifiers" - ], - "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true - } - }, - "description": "Recipients of the scheduled job notification." - }, - "PrincipalsListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type." - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job.", - "nullable": true - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { - "type": "string", - "description": "Status of the job", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records.", - "nullable": true - } - } - }, - "Author": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "Author of the schedule." - }, - "Frequency": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpression", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "LiveboardOptions": { + } + }, + "components": { + "schemas": { + "ErrorResponse": { "type": "object", - "required": [ - "visualization_identifiers" - ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "error": { + "type": "object" } - }, - "description": "Options to specify details of Liveboard." + } }, - "MetadataResponse": { + "User": { "type": "object", "required": [ "id", - "type" + "name", + "display_name", + "account_type", + "account_status", + "email", + "creation_time_in_millis", + "first_login_time_in_millis" ], "properties": { - "name": { - "type": "string", - "nullable": true - }, "id": { "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] - } - } - }, - "PdfOptions": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "name": { + "type": "string" }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "display_name": { + "type": "string" }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "account_type": { + "type": "string" }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "account_status": { + "type": "string" }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true + "email": { + "type": "string" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { + "user_groups": { "type": "array", "items": { - "type": "string" - }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "$ref": "#/components/schemas/UserGroup" + } }, - "principals": { + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" - } - } - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true - } - }, - "description": "Schedule run response object" - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ], - "nullable": true - } - } - }, - "SortingOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "type": "string" + } }, - "record_size": { + "creation_time_in_millis": { "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "format": "int32" }, - "record_offset": { + "first_login_time_in_millis": { "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" - }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "format": "int32" }, - "parameters": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "type": "string" + } } } }, - "Associate_Metadata_Input_Create": { + "RiseSetter": { "type": "object", "required": [ - "identifier" + "field", + "path" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "path": { + "type": "string" } } }, - "ActionConfigInputCreate": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true - } - }, - "description": "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." - }, - "Action_Details_Input": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_userid", + "valid_for_username" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "token": { + "type": "string" }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true + "creation_time_in_millis": { + "type": "integer", + "format": "int32" }, - "url": { - "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "expiration_time_in_millis": { + "type": "integer", + "format": "int32" }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "scope": { + "$ref": "#/components/schemas/Scope" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "valid_for_userid": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "valid_for_username": { + "type": "string" } } }, - "ActionConfigInput": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ModelTableList": { + "UserGroup": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "id" ], "properties": { - "model_name": { - "type": "string", - "description": "Name of the Model." - }, - "model_path": { - "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "name": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "id": { + "type": "string" } } }, - "DbtSearchResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "dbt_connection_identifier": { - "type": "string", - "nullable": true - }, - "project_name": { - "type": "string", - "nullable": true - }, - "connection_id": { - "type": "string", - "nullable": true - }, - "connection_name": { - "type": "string", - "nullable": true - }, - "cdw_database": { - "type": "string", - "nullable": true + "access_type": { + "type": "string" }, - "import_type": { - "type": "string", - "nullable": true + "organisation_id": { + "type": "integer", + "format": "int32" }, - "author_name": { - "type": "string", - "nullable": true + "metadata_id": { + "type": "string" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 4e966976504c0daa7379c635e3c5d3224c26da33 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 09:17:58 +0000 Subject: [PATCH 164/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15816 +++++++++++++++++++++++++++++- 1 file changed, 15534 insertions(+), 282 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2e5c7fec7..325e1d913 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,18 +4,110 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": [ + "9.6.0.cl" + ], + "description": "Roles for version 9.6.0.cl" + } + ], "tags": [], "paths": { - "/api/2.0/rest/auth/session/user": { + "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get Session object information", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +116,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -33,59 +125,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/login": { - "post": { - "operationId": "login", - "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "type": "string", - "deprecated": false - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", - "type": "boolean", - "deprecated": false - } - }, - "required": [ - "username", - "password" - ] + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -97,76 +159,58 @@ } } }, - "/api/2.0/rest/v2/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "default": "", - "type": "string", - "deprecated": false - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", - "type": "string", - "deprecated": false - }, - "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false - }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false - }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", - "default": 0, - "type": "integer", - "format": "int32", - "deprecated": false - } - }, - "required": [ - "username", - "object_id" - ] - } - } - } - }, + "parameters": [], "responses": { "200": { + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -178,12 +222,13 @@ } } }, - "/api/2.0/rest/v2/auth/token/full": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "getFullAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -191,57 +236,187 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the user account", + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", "type": "string", - "deprecated": false + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "password": { - "description": "The password of the user account", - "default": "", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", "type": "string", - "deprecated": false + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", + "account_status": { + "description": "Current status of the user account.", "type": "string", - "deprecated": false + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "record_offset": { + "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions" + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "username" - ] + } } } - } + }, + "required": true }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -249,39 +424,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -293,48 +458,87 @@ } } }, - "/api/2.0/rest/v2/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "System", + "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "type": "string", - "deprecated": false - }, - "token": { - "type": "string", - "deprecated": false - } + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" }, - "required": [ - "username", - "token" - ] + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } } } - } - }, - "responses": { - "200": { + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -345,157 +549,15205 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/search": { + "post": { + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/search": { + "post": { + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "display_name": { + "description": "Display name of the group", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" + }, + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", + "$ref": "#/components/schemas/SortOptions" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataListItemInput" + } + }, + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "$ref": "#/components/schemas/MetadataSearchSortOptions" + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/async/status": { + "post": { + "operationId": "fetchAsyncImportTaskStatus", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "task_ids": { + "description": "List of task IDs to fetch status for.", + "type": "array", + "items": { + "type": "string" + } + }, + "task_status": { + "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ] + } + }, + "author_id": { + "description": "Author ID of async import tasks to filter on.", + "type": "string" + }, + "offset": { + "description": "The offset point, starting from where the task status should be included in the response.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "The number of task statuses that should be included in the response starting from offset position.", + "default": 5, + "type": "integer", + "format": "int32" + }, + "include_import_response": { + "description": "Boolean flag to specify whether to include import response in the task status objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task statuses fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/sql": { + "post": { + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/sql": { + "post": { + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of an Answer.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/liveboard": { + "post": { + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "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).", + "type": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput" + }, + "png_options": { + "description": "Options for PNG export.", + "$ref": "#/components/schemas/PngOptionsInput" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/answer": { + "post": { + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/logs/fetch": { + "post": { + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Log", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/search": { + "post": { + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Details of local repository configuration", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/search": { + "post": { + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ] + }, + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", + "type": "string" + }, + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Commit history of the metadata object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + } + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptionInput" + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object" + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of connections to the datasource.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/search": { + "post": { + "operationId": "searchRoles", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_identifiers": { + "description": "unique ID or name of the Roles", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Roles search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/update": { + "post": { + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/reset-password": { + "post": { + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/create": { + "post": { + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org.", + "type": "string" + }, + "description": { + "description": "Description of the Org.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/update": { + "post": { + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/delete": { + "post": { + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/create": { + "post": { + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" + }, + "display_name": { + "description": "Display name for the group.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "display_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/update": { + "post": { + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group to modify.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description for the group.", + "type": "string" + }, + "display_name": { + "description": "Display name of the group.", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/delete": { + "post": { + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/import": { + "post": { + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } + }, + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/import": { + "post": { + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import metadata objects using specified TMLs is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/async/import": { + "post": { + "operationId": "importMetadataTMLAsync", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task submitted successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export": { + "post": { + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExportMetadataTypeInput" + } + }, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "default": false, + "type": "boolean", + "nullable": true + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/delete": { + "post": { + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } + }, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "emails", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/create": { + "post": { + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_url": { + "description": "URL for connecting to remote repository", + "type": "string" + }, + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" + } + }, + "required": [ + "repository_url", + "username", + "access_token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully configured local repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/update": { + "post": { + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username to authenticate connection to version control system", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully updated local repository configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/delete": { + "post": { + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/commit": { + "post": { + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "comment": { + "description": "Comment to be added to the commit", + "type": "string" + } + }, + "required": [ + "metadata", + "comment" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully committed the metadata objects", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { + "post": { + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted" + } + ], + "responses": { + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/validate": { + "post": { + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", + "type": "string" + }, + "target_branch_name": { + "description": "Name of the branch where files will be merged", + "type": "string" + } + }, + "required": [ + "source_branch_name", + "target_branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "validation done successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/deploy": { + "post": { + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully deployed the changes", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string" + }, + "description": { + "description": "Description of the connection.", + "type": "string" + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] + }, + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" + }, + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/update": { + "post": { + "operationId": "updateRole", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "200": { + "description": "Role successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/delete": { + "post": { + "operationId": "deleteRole", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/create": { + "post": { + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of the metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency settings for the scheduled job.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + } + }, + "required": [ + "name", + "description", + "metadata_type", + "metadata_identifier", + "time_zone", + "recipient_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the scheduled job." + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with the scheduled jobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortingOptions" + }, + "history_runs_options": { + "description": "Options while fetching history runs for the schedule.", + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/update": { + "post": { + "operationId": "updateSchedule", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the scheduled job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify the details of a Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency of the scheduled job run.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input_Create" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "action_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "nullable": true + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, "User": { "type": "object", "required": [ "id", - "name", - "display_name", - "account_type", - "account_status", - "email", - "creation_time_in_millis", - "first_login_time_in_millis" + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user.", + "nullable": true + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password.", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds.", + "nullable": true + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email of the user.", + "nullable": true + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the user is external.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true + }, + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true + }, + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden.", + "nullable": true + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present.", + "nullable": true + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience.", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user.", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the user.", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true + }, + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user.", + "nullable": true + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user.", + "nullable": true + }, + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user.", + "nullable": true + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned.", + "nullable": true + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of.", + "nullable": true + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org.", + "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user", + "nullable": true + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user", + "nullable": true + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + } + } + }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The current Org context of the user." + }, + "FavoriteMetadataItem": { + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the metadata object." + }, + "name": { + "type": "string", + "description": "name of the metadata object." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata object." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the object.", + "nullable": true + } + }, + "description": "The object representation with ID and Name." + }, + "FavoriteMetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object.", + "nullable": true + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "SystemInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the cluster.", + "nullable": true + }, + "release_version": { + "type": "string", + "description": "The release version of the cluster.", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "The timezone of the cluster.", + "nullable": true + }, + "locale": { + "type": "string", + "description": "The default locale of the cluster.", + "nullable": true + }, + "date_format": { + "type": "string", + "description": "The default date format representation of the cluster.", + "nullable": true + }, + "api_version": { + "type": "string", + "description": "The API version of the cluster.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The deployment type of the cluster.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The deployed environment of the cluster.", + "nullable": true + }, + "license": { + "type": "string", + "description": "The license applied to the cluster.", + "nullable": true + }, + "date_time_format": { + "type": "string", + "description": "The default date time format representation of the cluster.", + "nullable": true + }, + "time_format": { + "type": "string", + "description": "The default time format representation of the cluster.", + "nullable": true + }, + "system_user_id": { + "type": "string", + "description": "The unique identifier of system user.", + "nullable": true + }, + "super_user_id": { + "type": "string", + "description": "The unique identifier of super user.", + "nullable": true + }, + "hidden_object_id": { + "type": "string", + "description": "The unique identifier of hidden object.", + "nullable": true + }, + "system_group_id": { + "type": "string", + "description": "The unique identifier of system group.", + "nullable": true + }, + "tsadmin_user_id": { + "type": "string", + "description": "The unique identifier of tsadmin user.", + "nullable": true + }, + "admin_group_id": { + "type": "string", + "description": "The unique identifier of admin group.", + "nullable": true + }, + "all_tables_connection_id": { + "type": "string", + "description": "The unique identifier of all tables connection.", + "nullable": true + }, + "all_user_group_id": { + "type": "string", + "description": "The unique identifier of ALL group.", + "nullable": true + }, + "accept_language": { + "type": "string", + "description": "The supported accept language by the cluster.", + "nullable": true + }, + "all_user_group_member_user_count": { + "type": "integer", + "format": "int32", + "description": "The count of users of ALL group.", + "nullable": true + }, + "logical_model_version": { + "type": "integer", + "format": "int32", + "description": "The version number of logical model of the cluster.", + "nullable": true + } + } + }, + "SystemConfig": { + "type": "object", + "properties": { + "onboarding_content_url": { + "type": "string", + "nullable": true + } + } + }, + "OrgResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the Org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Org.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], + "description": "Status of the Org.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the Org.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ], + "description": "Visibility of the Org.", + "nullable": true + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name", + "id" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "color": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "author_id": { + "type": "string", + "nullable": true + }, + "modifier_id": { + "type": "string", + "nullable": true + }, + "owner_id": { + "type": "string", + "nullable": true + } + } + }, + "UserGroupResponse": { + "type": "object", + "required": [ + "display_name", + "id", + "name", + "visibility" + ], + "properties": { + "author_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Content details of the group", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the group in milliseconds", + "nullable": true + }, + "default_liveboards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the group is deleted", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the group is deprecated", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group", + "nullable": true + }, + "display_name": { + "type": "string", + "description": "Display name of the group." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the group is external", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the group", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the group is hidden", + "nullable": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index number of the group", + "nullable": true + }, + "index_version": { + "type": "integer", + "format": "int32", + "description": "Index version number of the group", + "nullable": true + }, + "metadata_version": { + "type": "integer", + "format": "int32", + "description": "Metadata version number of the group", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the group in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Orgs in which group exists.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the group", + "nullable": true + }, + "sub_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Groups who are part of the group", + "nullable": true + }, + "system_group": { + "type": "boolean", + "description": "Indicates whether the group is a system group.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Tags associated with the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Users who are part of the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user", + "nullable": true + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role", + "nullable": true + }, + "name": { + "type": "string", + "description": "name of the role", + "nullable": true + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata.", + "nullable": true + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects.", + "nullable": true + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects.", + "nullable": true + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "ImportEPackAsyncTaskStatus": { + "type": "object", + "properties": { + "tenant_id": { + "type": "string", + "description": "GUID of tenant from which the task is initiated.", + "nullable": true + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Organisation ID of the user who initiated the task.", + "nullable": true + }, + "task_id": { + "type": "string", + "description": "Unique identifier for the task.", + "nullable": true + }, + "task_name": { + "type": "string", + "description": "Name of the task.", + "nullable": true + }, + "import_response": { + "type": "object", + "description": "Response of imported objects so far.", + "nullable": true + }, + "task_status": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ], + "description": "Current status of the task.", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "ID of the user who initiated the task.", + "nullable": true + }, + "import_policy": { + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ], + "description": "Policy used for the import task.", + "nullable": true + }, + "created_at": { + "type": "number", + "format": "float", + "description": "Time when the task was created (in ms since epoch).", + "nullable": true + }, + "in_progress_at": { + "type": "number", + "format": "float", + "description": "Time when the task started (in ms since epoch).", + "nullable": true + }, + "completed_at": { + "type": "number", + "format": "float", + "description": "Time when the task was completed (in ms since epoch).", + "nullable": true + }, + "total_object_count": { + "type": "integer", + "format": "int32", + "description": "Total number of objects to process.", + "nullable": true + }, + "object_processed_count": { + "type": "integer", + "format": "int32", + "description": "Number of objects processed so far.", + "nullable": true + }, + "modified_at": { + "type": "number", + "format": "float", + "description": "Last time the task status was updated (in ms since epoch).", + "nullable": true + } + } + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + } + } + }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type.", + "nullable": true + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization.", + "nullable": true + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization.", + "nullable": true + } + } + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with fetch data api" + }, + "LogResponse": { + "type": "object", + "required": [ + "date", + "log" + ], + "properties": { + "date": { + "type": "string", + "description": "Date timestamp of the log entry" + }, + "log": { + "type": "string", + "description": "Log data" + } + } + }, + "RepoConfigObject": { + "type": "object", + "properties": { + "repository_url": { + "type": "string", + "description": "Remote repository URL configured", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username to authenticate connection to the version control system", + "nullable": true + }, + "commit_branch_name": { + "type": "string", + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Branches that have been pulled in local repository", + "nullable": true + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true + }, + "configuration_branch_name": { + "type": "string", + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the Org", + "nullable": true + } + } + }, + "CommitHistoryResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment", + "commit_time", + "commit_id", + "branch" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + } + } + }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database.", + "nullable": true + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database.", + "nullable": true + }, + "table": { + "type": "string", + "description": "Name of the table within the schema.", + "nullable": true + }, + "column": { + "type": "string", + "description": "Name of the column within the table.", + "nullable": true + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection.", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects", + "nullable": true + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database.", + "nullable": true + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created.", + "nullable": true + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema.", + "nullable": true + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table.", + "nullable": true + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the table", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" + }, + "data_type": { + "type": "string", + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate", + "nullable": true + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + } + } + }, + "SearchRoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + }, + "description": "Response for search role api should handle hidden privileges as well." + }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ResponseCustomAction": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "`Type` and configuration data for custom actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "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." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to assign the the custom action to.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT.", + "nullable": true + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT.", + "nullable": true + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT.", + "nullable": true + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "nullable": true + } + }, + "description": "Metadata objects." + }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "nullable": true + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + }, + "nullable": true + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + }, + "nullable": true + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later", + "nullable": true + } + }, + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort.", + "nullable": true + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter.", + "nullable": true + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, + "Token": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "Scope": { + "type": "object", + "required": [ + "access_type" + ], + "properties": { + "access_type": { + "type": "string", + "description": "Object access scope type." + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_id": { + "type": "string", + "description": "Unique identifier of the Org.", + "nullable": true + } + } + }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user.", + "nullable": true + } + }, + "description": "The object representation with activation link." + }, + "ImportUser": { + "type": "object", + "required": [ + "user_identifier", + "display_name" + ], + "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "password": { + "type": "string", + "description": "Password of the user.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email address of the user.", + "nullable": true + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true + } + } + }, + "ImportUsersResponse": { + "type": "object", + "properties": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + } + }, + "GroupsImportListInput": { + "type": "object", + "required": [ + "display_name", + "group_identifier" + ], + "properties": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges that will be assigned to the group.", + "nullable": true + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true + } + } + }, + "ImportUserGroupsResponse": { + "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], + "properties": { + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." + } + } + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API" + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit", + "nullable": true + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object", + "nullable": true + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object", + "nullable": true + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file", + "nullable": true + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff.", + "nullable": true + } + } + }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + } + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients.", + "nullable": true + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true + } + }, + "description": "Recipients of the scheduled job notification." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job.", + "nullable": true + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard.", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export.", + "nullable": true + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { + "type": "string", + "description": "Status of the job", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records.", + "nullable": true + } + } + }, + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "MetadataResponse": { + "type": "object", + "required": [ + "id", + "type" ], "properties": { + "name": { + "type": "string", + "nullable": true + }, "id": { "type": "string" }, - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, - "display_name": { - "type": "string" + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, - "account_type": { - "type": "string" + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, - "account_status": { - "type": "string" + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, - "email": { - "type": "string" + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - } + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true }, - "privileges": { + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { "type": "array", "items": { "type": "string" - } - }, - "creation_time_in_millis": { - "type": "integer", - "format": "int32" - }, - "first_login_time_in_millis": { - "type": "integer", - "format": "int32" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, - "tags": { + "principals": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } - } + }, + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "RiseSetter": { + "PrincipalsListItem": { "type": "object", "required": [ - "field", - "path" + "identifier", + "type" ], "properties": { - "field": { - "type": "string" + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." }, - "path": { - "type": "string" + "type": { + "type": "string", + "description": "Principal type. Valid values are" } } }, - "Token": { + "ResponseScheduleRun": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_userid", - "valid_for_username" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "token": { - "type": "string" + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "creation_time_in_millis": { + "start_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "expiration_time_in_millis": { + "end_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run end time in milliseconds." }, - "scope": { - "$ref": "#/components/schemas/Scope" + "status": { + "type": "string", + "description": "Status of the schedule run." }, - "valid_for_userid": { - "type": "string" + "detail": { + "type": "string", + "description": "Message details related to the schedule run.", + "nullable": true + } + }, + "description": "Schedule run response object" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true }, - "valid_for_username": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "nullable": true } } }, - "UserGroup": { + "SortingOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + }, + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "name", - "id" + "url" ], "properties": { - "name": { - "type": "string" + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true }, - "id": { - "type": "string" + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true } } }, - "Scope": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { - "type": "string" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, - "organisation_id": { - "type": "integer", - "format": "int32" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "metadata_id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true + } + }, + "description": "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." + }, + "Action_Details_Input": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInput": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ModelTableList": { + "type": "object", + "required": [ + "model_name", + "tables" + ], + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string", + "nullable": true + }, + "project_name": { + "type": "string", + "nullable": true + }, + "connection_id": { + "type": "string", + "nullable": true + }, + "connection_name": { + "type": "string", + "nullable": true + }, + "cdw_database": { + "type": "string", + "nullable": true + }, + "import_type": { + "type": "string", + "nullable": true + }, + "author_name": { + "type": "string", + "nullable": true } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { @@ -520,4 +15772,4 @@ } } ] -} \ No newline at end of file +} From 25439b69ce1e1ca94d6615ac0d33050d9ca6f208 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Aug 2024 09:20:37 +0000 Subject: [PATCH 165/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15810 +----------------------------- 1 file changed, 279 insertions(+), 15531 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 325e1d913..2e5c7fec7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,110 +4,18 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, - "x-roles": [ - { - "name": "9.0.0.cl", - "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], - "description": "Roles for version 9.0.0.cl" - }, - { - "name": "9.12.0.cl", - "id": "9.12.0.cl", - "tags": [ - "9.12.0.cl" - ], - "description": "Roles for version 9.12.0.cl" - }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, - { - "name": "9.2.0.cl", - "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], - "description": "Roles for version 9.2.0.cl" - }, - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, - { - "name": "10.1.0.cl", - "id": "10.1.0.cl", - "tags": [ - "10.1.0.cl" - ], - "description": "Roles for version 10.1.0.cl" - }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, - { - "name": "9.5.0.cl", - "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], - "description": "Roles for version 9.5.0.cl" - }, - { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], - "description": "Roles for version 9.6.0.cl" - } - ], "tags": [], "paths": { - "/api/rest/2.0/auth/session/user": { + "/api/2.0/rest/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get Session object information", "tags": [ - "Authentication", - "9.0.0.cl" + "Auth" ], "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -116,38 +24,8 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -159,58 +37,55 @@ } } }, - "/api/rest/2.0/auth/session/token": { - "get": { - "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/login": { + "post": { + "operationId": "login", + "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", "tags": [ - "Authentication", - "9.4.0.cl" + "Auth" ], - "parameters": [], - "responses": { - "200": { - "description": "Fetching token for current user successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTokenResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "type": "string", + "deprecated": false + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "username", + "password" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -222,13 +97,12 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/2.0/rest/v2/auth/token/object": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getObjectAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", "tags": [ - "Users", - "9.0.0.cl" + "Auth" ], "requestBody": { "content": { @@ -236,187 +110,63 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, - "visibility": { - "description": "Visibility of the user", + "username": { + "description": "Username of the user account", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the user", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } + "deprecated": false }, - "account_type": { - "description": "Type of the account", + "password": { + "description": "The password of the user account", + "default": "", "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "deprecated": false }, - "account_status": { - "description": "Current status of the user account.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] + "deprecated": false }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true - }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } + "object_id": { + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "type": "string", + "deprecated": false }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, "type": "integer", - "format": "int32" + "format": "int32", + "deprecated": false }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" - }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", - "type": "array", - "items": { - "type": "string" - } - }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, - "type": "boolean", - "nullable": true + "format": "int32", + "deprecated": false } - } + }, + "required": [ + "username", + "object_id" + ] } } - }, - "required": true + } }, - "parameters": [], "responses": { "200": { - "description": "User search result.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/Token" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -424,29 +174,74 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "default": "", + "type": "string", + "deprecated": false + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", + "type": "string", + "deprecated": false + }, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + } + }, + "required": [ + "username" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -458,57 +253,35 @@ } } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "To log a user out of the current session, use this endpoint", "tags": [ - "System", - "9.0.0.cl" + "Auth" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, "responses": { "200": { - "description": "Cluster information.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } + "type": "object" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -516,29 +289,52 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "To expire or revoke a token for a user, use this endpoint", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "deprecated": false + }, + "token": { + "type": "string", + "deprecated": false + } + }, + "required": [ + "username", + "token" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -549,15205 +345,157 @@ } } } - }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster config information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/search": { - "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/search": { - "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tags search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/search": { - "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "display_name": { - "description": "Display name of the group", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/async/status": { - "post": { - "operationId": "fetchAsyncImportTaskStatus", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task_ids": { - "description": "List of task IDs to fetch status for.", - "type": "array", - "items": { - "type": "string" - } - }, - "task_status": { - "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", - "type": "array", - "items": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ] - } - }, - "author_id": { - "description": "Author ID of async import tasks to filter on.", - "type": "string" - }, - "offset": { - "description": "The offset point, starting from where the task status should be included in the response.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "The number of task statuses that should be included in the response starting from offset position.", - "default": 5, - "type": "integer", - "format": "int32" - }, - "include_import_response": { - "description": "Boolean flag to specify whether to include import response in the task status objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task statuses fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/sql": { - "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/sql": { - "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/liveboard": { - "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "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).", - "type": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" - }, - "png_options": { - "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/answer": { - "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" - }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/principals/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - } - }, - "required": [ - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", - "type": "string" - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/logs/fetch": { - "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "log_type": { - "description": "Name of the log type", - "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] - }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" - }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" - }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "log_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Log fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/search": { - "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Details of local repository configuration", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/search": { - "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ] - }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Commit history of the metadata object", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/search": { - "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } - }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", - "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" - }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true - }, - "configuration": { - "description": "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.", - "type": "object" - }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "List of connections to the datasource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/search": { - "post": { - "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "permissions": { - "description": "Permission details of the Role", - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Roles search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/search": { - "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/session/login": { - "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "object_id": { - "description": "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.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "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.", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/token/full": { - "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string" - }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", - "type": "array", - "items": { - "type": "string" - } - }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, - "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "type": "string" - }, - "token": { - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/validate": { - "post": { - "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", - "tags": [ - "Authentication", - "9.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Token validation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", - "type": "boolean", - "nullable": true - }, - "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "display_name", - "email" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/update": { - "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", - "type": "boolean", - "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/import": { - "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } - }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "users" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import users operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/change-password": { - "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "current_password", - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/reset-password": { - "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/force-logout": { - "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object" - } - }, - "required": [ - "configuration" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/create": { - "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" - }, - "description": { - "description": "Description of the Org.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/update": { - "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { - "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/create": { - "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tag successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/update": { - "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name or Id of the tag." - } - ], - "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { - "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], - "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/assign": { - "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/unassign": { - "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "display_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/update": { - "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group to modify.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/import": { - "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "groups": { - "description": "Details of groups which are to be imported", - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupsImportListInput" - } - }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/import": { - "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import metadata objects using specified TMLs is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/async/import": { - "post": { - "operationId": "importMetadataTMLAsync", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task submitted successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" - ] - }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "emails", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/update/{connection_identifier}": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - } - }, - "required": [ - "name", - "description", - "metadata_type", - "metadata_identifier", - "time_zone", - "recipient_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/delete": { - "post": { - "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the scheduled job." - } - ], - "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/search": { - "post": { - "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" - }, - "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - }, - "schedule_identifiers": { - "description": "unique ID or name of the Schedule", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/update": { - "post": { - "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the scheduled job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" - }, - "pdf_options": { - "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - }, - "time_zone": { - "description": "Time zone", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" - }, - "recipient_details": { - "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" - }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the schedule." - } - ], - "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions": { - "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "action_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { - "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DbtSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object", - "nullable": true - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email of the user.", - "nullable": true - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user.", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user.", - "nullable": true - }, - "tenant_id": { - "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Groups to which the user is assigned.", - "nullable": true - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user", - "nullable": true - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user", - "nullable": true - }, - "user_parameters": { - "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "FavoriteMetadataItem": { - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the metadata object." - }, - "name": { - "type": "string", - "description": "name of the metadata object." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata object." - } - } - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the object.", - "nullable": true - } - }, - "description": "The object representation with ID and Name." - }, - "FavoriteMetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": "Type of metadata object.", - "nullable": true - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the cluster.", - "nullable": true - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster.", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "The timezone of the cluster.", - "nullable": true - }, - "locale": { - "type": "string", - "description": "The default locale of the cluster.", - "nullable": true - }, - "date_format": { - "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true - }, - "api_version": { - "type": "string", - "description": "The API version of the cluster.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true - }, - "license": { - "type": "string", - "description": "The license applied to the cluster.", - "nullable": true - }, - "date_time_format": { - "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true - }, - "time_format": { - "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true - }, - "system_user_id": { - "type": "string", - "description": "The unique identifier of system user.", - "nullable": true - }, - "super_user_id": { - "type": "string", - "description": "The unique identifier of super user.", - "nullable": true - }, - "hidden_object_id": { - "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true - }, - "system_group_id": { - "type": "string", - "description": "The unique identifier of system group.", - "nullable": true - }, - "tsadmin_user_id": { - "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true - }, - "admin_group_id": { - "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true - }, - "all_tables_connection_id": { - "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true - }, - "all_user_group_id": { - "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true - }, - "accept_language": { - "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true - }, - "all_user_group_member_user_count": { - "type": "integer", - "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true - }, - "logical_model_version": { - "type": "integer", - "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true - } - } - }, - "SystemConfig": { - "type": "object", - "properties": { - "onboarding_content_url": { - "type": "string", - "nullable": true - } - } - }, - "OrgResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the Org.", - "nullable": true - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "description": "Status of the Org.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the Org.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "description": "Visibility of the Org.", - "nullable": true - } - } - }, - "Tag": { - "type": "object", - "required": [ - "name", - "id" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "color": { - "type": "string", - "nullable": true - }, - "deleted": { - "type": "boolean", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "external": { - "type": "boolean", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "author_id": { - "type": "string", - "nullable": true - }, - "modifier_id": { - "type": "string", - "nullable": true - }, - "owner_id": { - "type": "string", - "nullable": true - } - } - }, - "UserGroupResponse": { - "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], - "properties": { - "author_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true - }, - "content": { - "type": "object", - "description": "Content details of the group", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true - }, - "default_liveboards": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group", - "nullable": true - }, - "display_name": { - "type": "string", - "description": "Display name of the group." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the group", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true - }, - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index number of the group", - "nullable": true - }, - "index_version": { - "type": "integer", - "format": "int32", - "description": "Index version number of the group", - "nullable": true - }, - "metadata_version": { - "type": "integer", - "format": "int32", - "description": "Metadata version number of the group", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Orgs in which group exists.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the group", - "nullable": true - }, - "sub_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Groups who are part of the group", - "nullable": true - }, - "system_group": { - "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Tags associated with the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Users who are part of the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - }, - "description": "List of roles assgined to the user", - "nullable": true - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id of the role", - "nullable": true - }, - "name": { - "type": "string", - "description": "name of the role", - "nullable": true - } - } - }, - "MetadataListItemInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true - } - } - }, - "PermissionInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Object share mode." - } - }, - "description": "Details of users or groups." - }, - "ExcludeMetadataListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" - } - } - }, - "FavoriteObjectOptionsInput": { - "type": "object", - "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true - } - }, - "description": "Favorite object options." - }, - "MetadataSearchSortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata.", - "nullable": true - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "ImportEPackAsyncTaskStatus": { - "type": "object", - "properties": { - "tenant_id": { - "type": "string", - "description": "GUID of tenant from which the task is initiated.", - "nullable": true - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Organisation ID of the user who initiated the task.", - "nullable": true - }, - "task_id": { - "type": "string", - "description": "Unique identifier for the task.", - "nullable": true - }, - "task_name": { - "type": "string", - "description": "Name of the task.", - "nullable": true - }, - "import_response": { - "type": "object", - "description": "Response of imported objects so far.", - "nullable": true - }, - "task_status": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ], - "description": "Current status of the task.", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "ID of the user who initiated the task.", - "nullable": true - }, - "import_policy": { - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" - ], - "description": "Policy used for the import task.", - "nullable": true - }, - "created_at": { - "type": "number", - "format": "float", - "description": "Time when the task was created (in ms since epoch).", - "nullable": true - }, - "in_progress_at": { - "type": "number", - "format": "float", - "description": "Time when the task started (in ms since epoch).", - "nullable": true - }, - "completed_at": { - "type": "number", - "format": "float", - "description": "Time when the task was completed (in ms since epoch).", - "nullable": true - }, - "total_object_count": { - "type": "integer", - "format": "int32", - "description": "Total number of objects to process.", - "nullable": true - }, - "object_processed_count": { - "type": "integer", - "format": "int32", - "description": "Number of objects processed so far.", - "nullable": true - }, - "modified_at": { - "type": "number", - "format": "float", - "description": "Last time the task status was updated (in ms since epoch).", - "nullable": true - } - } - }, - "SqlQueryResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "metadata_type", - "sql_queries" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "sql_queries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SqlQuery" - }, - "description": "SQL query details of metadata objects." - } - } - }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "PdfOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - } - } - }, - "PermissionOfPrincipalsResponse": { - "type": "object", - "properties": { - "principal_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PermissionOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type.", - "nullable": true - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization.", - "nullable": true - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LogResponse": { - "type": "object", - "required": [ - "date", - "log" - ], - "properties": { - "date": { - "type": "string", - "description": "Date timestamp of the log entry" - }, - "log": { - "type": "string", - "description": "Log data" - } - } - }, - "RepoConfigObject": { - "type": "object", - "properties": { - "repository_url": { - "type": "string", - "description": "Remote repository URL configured", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true - }, - "commit_branch_name": { - "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches that have been pulled in local repository", - "nullable": true - }, - "enable_guid_mapping": { - "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true - }, - "configuration_branch_name": { - "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true - }, - "org": { - "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true - } - } - }, - "CommitHistoryResponse": { - "type": "object", - "required": [ - "committer", - "author", - "comment", - "commit_time", - "commit_id", - "branch" - ], - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - } - } - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database.", - "nullable": true - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database.", - "nullable": true - }, - "table": { - "type": "string", - "description": "Name of the table within the schema.", - "nullable": true - }, - "column": { - "type": "string", - "description": "Name of the column within the table.", - "nullable": true - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - } - }, - "SearchConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "description": { - "type": "string", - "description": "Description of the connection.", - "nullable": true - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database.", - "nullable": true - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema.", - "nullable": true - } - } - }, - "Table": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table.", - "nullable": true - }, - "type": { - "type": "string", - "description": "Type of table. Either view or table", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the table", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table", - "nullable": true - } - } - }, - "Column": { - "type": "object", - "required": [ - "name", - "data_type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { - "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - } - } - }, - "SearchRoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - }, - "description": "Response for search role api should handle hidden privileges as well." - }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ResponseCustomAction": { - "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": "Type of metadata." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true - }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true - }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "JWT_Metadata_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "nullable": true - } - }, - "description": "Metadata objects." - }, - "User_Parameter_Options": { - "type": "object", - "properties": { - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "nullable": true - }, - "runtime_filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "nullable": true - }, - "runtime_sorts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Parameters" - }, - "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true - } - }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" - }, - "User_Object": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of object.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects to apply the User_Object." - }, - "User_Runtime_Filters": { - "type": "object", - "required": [ - "column_name", - "values", - "operator" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Value of the filters." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "GE", - "GT", - "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", - "BW", - "BW_INC", - "BW_INC_MAX", - "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" - ], - "description": "Operator value. Example: EQ" - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime filter.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Filters." - }, - "User_Runtime_Sorts": { - "type": "object", - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Order for the sort.", - "nullable": true - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime sort.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Sorts." - }, - "User_Parameters": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of values." - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime parameter.", - "nullable": true - } - }, - "description": "Objects to apply the Runtime_Parameters." - }, - "Token": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "Scope": { - "type": "object", - "required": [ - "access_type" - ], - "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true - } - } - }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload." - }, - "TokenValidationResponse": { - "type": "object", - "required": [ - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "token_type" - ], - "properties": { - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "token_type": { - "type": "string", - "description": "Type of token." - } - } - }, - "ResponseActivationURL": { - "type": "object", - "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user.", - "nullable": true - } - }, - "description": "The object representation with activation link." - }, - "ImportUser": { - "type": "object", - "required": [ - "user_identifier", - "display_name" - ], - "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { - "type": "string", - "description": "Password of the user.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email address of the user.", - "nullable": true - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - } - }, - "GroupsImportListInput": { - "type": "object", - "required": [ - "display_name", - "group_identifier" - ], - "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges that will be assigned to the group.", - "nullable": true - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true - } - } - }, - "ImportUserGroupsResponse": { - "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], - "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." - } - } - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION", - "USER", - "USER_GROUP", - "ROLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "ShareMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": "Type of metadata (Optional when given identifier is ID).", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ], - "description": "Type of metadata.", - "nullable": true - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit", - "nullable": true - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "DeployResponse": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object", - "nullable": true - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object", - "nullable": true - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "CreateConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "FetchConnectionDiffStatusResponse": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true - } - } - }, - "RoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - } - }, - "LiveboardOptionsInput": { - "type": "object", - "required": [ - "visualization_identifiers" - ], - "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true - } - }, - "description": "Recipients of the scheduled job notification." - }, - "PrincipalsListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type." - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job.", - "nullable": true - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { - "type": "string", - "description": "Status of the job", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records.", - "nullable": true - } - } - }, - "Author": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "Author of the schedule." - }, - "Frequency": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpression", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "LiveboardOptions": { + } + }, + "components": { + "schemas": { + "ErrorResponse": { "type": "object", - "required": [ - "visualization_identifiers" - ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "error": { + "type": "object" } - }, - "description": "Options to specify details of Liveboard." + } }, - "MetadataResponse": { + "User": { "type": "object", "required": [ "id", - "type" + "name", + "display_name", + "account_type", + "account_status", + "email", + "creation_time_in_millis", + "first_login_time_in_millis" ], "properties": { - "name": { - "type": "string", - "nullable": true - }, "id": { "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] - } - } - }, - "PdfOptions": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "name": { + "type": "string" }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "display_name": { + "type": "string" }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "account_type": { + "type": "string" }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "account_status": { + "type": "string" }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true + "email": { + "type": "string" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { + "user_groups": { "type": "array", "items": { - "type": "string" - }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "$ref": "#/components/schemas/UserGroup" + } }, - "principals": { + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" - } - } - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true - } - }, - "description": "Schedule run response object" - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ], - "nullable": true - } - } - }, - "SortingOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "type": "string" + } }, - "record_size": { + "creation_time_in_millis": { "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "format": "int32" }, - "record_offset": { + "first_login_time_in_millis": { "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" - }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "format": "int32" }, - "parameters": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "type": "string" + } } } }, - "Associate_Metadata_Input_Create": { + "RiseSetter": { "type": "object", "required": [ - "identifier" + "field", + "path" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "path": { + "type": "string" } } }, - "ActionConfigInputCreate": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true - } - }, - "description": "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." - }, - "Action_Details_Input": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_userid", + "valid_for_username" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "token": { + "type": "string" }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true + "creation_time_in_millis": { + "type": "integer", + "format": "int32" }, - "url": { - "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "expiration_time_in_millis": { + "type": "integer", + "format": "int32" }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "scope": { + "$ref": "#/components/schemas/Scope" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "valid_for_userid": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": "Type of metadata.", - "nullable": true + "valid_for_username": { + "type": "string" } } }, - "ActionConfigInput": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ModelTableList": { + "UserGroup": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "id" ], "properties": { - "model_name": { - "type": "string", - "description": "Name of the Model." - }, - "model_path": { - "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "name": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "id": { + "type": "string" } } }, - "DbtSearchResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "dbt_connection_identifier": { - "type": "string", - "nullable": true - }, - "project_name": { - "type": "string", - "nullable": true - }, - "connection_id": { - "type": "string", - "nullable": true - }, - "connection_name": { - "type": "string", - "nullable": true - }, - "cdw_database": { - "type": "string", - "nullable": true + "access_type": { + "type": "string" }, - "import_type": { - "type": "string", - "nullable": true + "organisation_id": { + "type": "integer", + "format": "int32" }, - "author_name": { - "type": "string", - "nullable": true + "metadata_id": { + "type": "string" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { @@ -15772,4 +520,4 @@ } } ] -} +} \ No newline at end of file From 011d5a3ad9bf3b6316e6f43e6f787642b2e175d7 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:25:03 +0530 Subject: [PATCH 166/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 15816 +++++++++++++++++++++++++++++- 1 file changed, 15534 insertions(+), 282 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2e5c7fec7..325e1d913 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,18 +4,110 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": [ + "9.6.0.cl" + ], + "description": "Roles for version 9.6.0.cl" + } + ], "tags": [], "paths": { - "/api/2.0/rest/auth/session/user": { + "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get Session object information", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +116,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -33,59 +125,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/login": { - "post": { - "operationId": "login", - "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "type": "string", - "deprecated": false - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", - "type": "boolean", - "deprecated": false - } - }, - "required": [ - "username", - "password" - ] + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -97,76 +159,58 @@ } } }, - "/api/2.0/rest/v2/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "default": "", - "type": "string", - "deprecated": false - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", - "type": "string", - "deprecated": false - }, - "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false - }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false - }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", - "default": 0, - "type": "integer", - "format": "int32", - "deprecated": false - } - }, - "required": [ - "username", - "object_id" - ] - } - } - } - }, + "parameters": [], "responses": { "200": { + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -178,12 +222,13 @@ } } }, - "/api/2.0/rest/v2/auth/token/full": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "getFullAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -191,57 +236,187 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the user account", + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", "type": "string", - "deprecated": false + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "password": { - "description": "The password of the user account", - "default": "", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", "type": "string", - "deprecated": false + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", + "account_status": { + "description": "Current status of the user account.", "type": "string", - "deprecated": false + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "record_offset": { + "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptions" + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "username" - ] + } } } - } + }, + "required": true }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -249,39 +424,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -293,48 +458,87 @@ } } }, - "/api/2.0/rest/v2/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "System", + "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "type": "string", - "deprecated": false - }, - "token": { - "type": "string", - "deprecated": false - } + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" }, - "required": [ - "username", - "token" - ] + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } } } - } - }, - "responses": { - "200": { + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -345,157 +549,15205 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } - } - }, + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/search": { + "post": { + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/search": { + "post": { + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "display_name": { + "description": "Display name of the group", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" + }, + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", + "$ref": "#/components/schemas/SortOptions" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataListItemInput" + } + }, + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "$ref": "#/components/schemas/MetadataSearchSortOptions" + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/async/status": { + "post": { + "operationId": "fetchAsyncImportTaskStatus", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "task_ids": { + "description": "List of task IDs to fetch status for.", + "type": "array", + "items": { + "type": "string" + } + }, + "task_status": { + "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ] + } + }, + "author_id": { + "description": "Author ID of async import tasks to filter on.", + "type": "string" + }, + "offset": { + "description": "The offset point, starting from where the task status should be included in the response.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "The number of task statuses that should be included in the response starting from offset position.", + "default": 5, + "type": "integer", + "format": "int32" + }, + "include_import_response": { + "description": "Boolean flag to specify whether to include import response in the task status objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task statuses fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/sql": { + "post": { + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/sql": { + "post": { + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of an Answer.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/liveboard": { + "post": { + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "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).", + "type": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/PdfOptionsInput" + }, + "png_options": { + "description": "Options for PNG export.", + "$ref": "#/components/schemas/PngOptionsInput" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/answer": { + "post": { + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "type": "string" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output format. By default, the API returns full data in the JSON.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/logs/fetch": { + "post": { + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Log", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/search": { + "post": { + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Details of local repository configuration", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/search": { + "post": { + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ] + }, + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", + "type": "string" + }, + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Commit history of the metadata object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + } + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortOptionInput" + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object" + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of connections to the datasource.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/search": { + "post": { + "operationId": "searchRoles", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_identifiers": { + "description": "unique ID or name of the Roles", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Roles search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "items": { + "type": "string" + } + }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, + "user_parameters": { + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/update": { + "post": { + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/reset-password": { + "post": { + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/create": { + "post": { + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org.", + "type": "string" + }, + "description": { + "description": "Description of the Org.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/update": { + "post": { + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/delete": { + "post": { + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/create": { + "post": { + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" + }, + "display_name": { + "description": "Display name for the group.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "display_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/update": { + "post": { + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group to modify.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description for the group.", + "type": "string" + }, + "display_name": { + "description": "Display name of the group.", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/delete": { + "post": { + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/import": { + "post": { + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } + }, + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/import": { + "post": { + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import metadata objects using specified TMLs is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/async/import": { + "post": { + "operationId": "importMetadataTMLAsync", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task submitted successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export": { + "post": { + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExportMetadataTypeInput" + } + }, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "default": false, + "type": "boolean", + "nullable": true + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/delete": { + "post": { + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } + }, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "emails", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/create": { + "post": { + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_url": { + "description": "URL for connecting to remote repository", + "type": "string" + }, + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" + } + }, + "required": [ + "repository_url", + "username", + "access_token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully configured local repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/update": { + "post": { + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username to authenticate connection to version control system", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully updated local repository configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/delete": { + "post": { + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/commit": { + "post": { + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "comment": { + "description": "Comment to be added to the commit", + "type": "string" + } + }, + "required": [ + "metadata", + "comment" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully committed the metadata objects", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { + "post": { + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted" + } + ], + "responses": { + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/validate": { + "post": { + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", + "type": "string" + }, + "target_branch_name": { + "description": "Name of the branch where files will be merged", + "type": "string" + } + }, + "required": [ + "source_branch_name", + "target_branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "validation done successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/deploy": { + "post": { + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully deployed the changes", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string" + }, + "description": { + "description": "Description of the connection.", + "type": "string" + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] + }, + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" + }, + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/update": { + "post": { + "operationId": "updateRole", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "200": { + "description": "Role successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/delete": { + "post": { + "operationId": "deleteRole", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/create": { + "post": { + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of the metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency settings for the scheduled job.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + } + }, + "required": [ + "name", + "description", + "metadata_type", + "metadata_identifier", + "time_zone", + "recipient_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the scheduled job." + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with the scheduled jobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "$ref": "#/components/schemas/SortingOptions" + }, + "history_runs_options": { + "description": "Options while fetching history runs for the schedule.", + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/update": { + "post": { + "operationId": "updateSchedule", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the scheduled job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify the details of a Liveboard.", + "$ref": "#/components/schemas/LiveboardOptionsInput" + }, + "pdf_options": { + "description": "Options for PDF export.", + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency of the scheduled job run.", + "$ref": "#/components/schemas/FrequencyInput" + }, + "recipient_details": { + "description": "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.", + "$ref": "#/components/schemas/RecipientDetailsInput" + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input_Create" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "action_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "$ref": "#/components/schemas/Action_Details_Input" + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "$ref": "#/components/schemas/Default_Action_Config_Input" + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "nullable": true + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, "User": { "type": "object", "required": [ "id", - "name", - "display_name", - "account_type", - "account_status", - "email", - "creation_time_in_millis", - "first_login_time_in_millis" + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user.", + "nullable": true + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password.", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds.", + "nullable": true + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email of the user.", + "nullable": true + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the user is external.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true + }, + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true + }, + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden.", + "nullable": true + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present.", + "nullable": true + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience.", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user.", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the user.", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true + }, + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user.", + "nullable": true + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user.", + "nullable": true + }, + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user.", + "nullable": true + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned.", + "nullable": true + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of.", + "nullable": true + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org.", + "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user", + "nullable": true + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user", + "nullable": true + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + } + } + }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The current Org context of the user." + }, + "FavoriteMetadataItem": { + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the metadata object." + }, + "name": { + "type": "string", + "description": "name of the metadata object." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata object." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the object.", + "nullable": true + } + }, + "description": "The object representation with ID and Name." + }, + "FavoriteMetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": "Type of metadata object.", + "nullable": true + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "SystemInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the cluster.", + "nullable": true + }, + "release_version": { + "type": "string", + "description": "The release version of the cluster.", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "The timezone of the cluster.", + "nullable": true + }, + "locale": { + "type": "string", + "description": "The default locale of the cluster.", + "nullable": true + }, + "date_format": { + "type": "string", + "description": "The default date format representation of the cluster.", + "nullable": true + }, + "api_version": { + "type": "string", + "description": "The API version of the cluster.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The deployment type of the cluster.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The deployed environment of the cluster.", + "nullable": true + }, + "license": { + "type": "string", + "description": "The license applied to the cluster.", + "nullable": true + }, + "date_time_format": { + "type": "string", + "description": "The default date time format representation of the cluster.", + "nullable": true + }, + "time_format": { + "type": "string", + "description": "The default time format representation of the cluster.", + "nullable": true + }, + "system_user_id": { + "type": "string", + "description": "The unique identifier of system user.", + "nullable": true + }, + "super_user_id": { + "type": "string", + "description": "The unique identifier of super user.", + "nullable": true + }, + "hidden_object_id": { + "type": "string", + "description": "The unique identifier of hidden object.", + "nullable": true + }, + "system_group_id": { + "type": "string", + "description": "The unique identifier of system group.", + "nullable": true + }, + "tsadmin_user_id": { + "type": "string", + "description": "The unique identifier of tsadmin user.", + "nullable": true + }, + "admin_group_id": { + "type": "string", + "description": "The unique identifier of admin group.", + "nullable": true + }, + "all_tables_connection_id": { + "type": "string", + "description": "The unique identifier of all tables connection.", + "nullable": true + }, + "all_user_group_id": { + "type": "string", + "description": "The unique identifier of ALL group.", + "nullable": true + }, + "accept_language": { + "type": "string", + "description": "The supported accept language by the cluster.", + "nullable": true + }, + "all_user_group_member_user_count": { + "type": "integer", + "format": "int32", + "description": "The count of users of ALL group.", + "nullable": true + }, + "logical_model_version": { + "type": "integer", + "format": "int32", + "description": "The version number of logical model of the cluster.", + "nullable": true + } + } + }, + "SystemConfig": { + "type": "object", + "properties": { + "onboarding_content_url": { + "type": "string", + "nullable": true + } + } + }, + "OrgResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the Org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Org.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], + "description": "Status of the Org.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the Org.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ], + "description": "Visibility of the Org.", + "nullable": true + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name", + "id" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "color": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "author_id": { + "type": "string", + "nullable": true + }, + "modifier_id": { + "type": "string", + "nullable": true + }, + "owner_id": { + "type": "string", + "nullable": true + } + } + }, + "UserGroupResponse": { + "type": "object", + "required": [ + "display_name", + "id", + "name", + "visibility" + ], + "properties": { + "author_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Content details of the group", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the group in milliseconds", + "nullable": true + }, + "default_liveboards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the group is deleted", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the group is deprecated", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group", + "nullable": true + }, + "display_name": { + "type": "string", + "description": "Display name of the group." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the group is external", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the group", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the group is hidden", + "nullable": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index number of the group", + "nullable": true + }, + "index_version": { + "type": "integer", + "format": "int32", + "description": "Index version number of the group", + "nullable": true + }, + "metadata_version": { + "type": "integer", + "format": "int32", + "description": "Metadata version number of the group", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the group in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Orgs in which group exists.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the group", + "nullable": true + }, + "sub_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Groups who are part of the group", + "nullable": true + }, + "system_group": { + "type": "boolean", + "description": "Indicates whether the group is a system group.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Tags associated with the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Users who are part of the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user", + "nullable": true + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role", + "nullable": true + }, + "name": { + "type": "string", + "description": "name of the role", + "nullable": true + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata.", + "nullable": true + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects.", + "nullable": true + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects.", + "nullable": true + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "ImportEPackAsyncTaskStatus": { + "type": "object", + "properties": { + "tenant_id": { + "type": "string", + "description": "GUID of tenant from which the task is initiated.", + "nullable": true + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Organisation ID of the user who initiated the task.", + "nullable": true + }, + "task_id": { + "type": "string", + "description": "Unique identifier for the task.", + "nullable": true + }, + "task_name": { + "type": "string", + "description": "Name of the task.", + "nullable": true + }, + "import_response": { + "type": "object", + "description": "Response of imported objects so far.", + "nullable": true + }, + "task_status": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ], + "description": "Current status of the task.", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "ID of the user who initiated the task.", + "nullable": true + }, + "import_policy": { + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ], + "description": "Policy used for the import task.", + "nullable": true + }, + "created_at": { + "type": "number", + "format": "float", + "description": "Time when the task was created (in ms since epoch).", + "nullable": true + }, + "in_progress_at": { + "type": "number", + "format": "float", + "description": "Time when the task started (in ms since epoch).", + "nullable": true + }, + "completed_at": { + "type": "number", + "format": "float", + "description": "Time when the task was completed (in ms since epoch).", + "nullable": true + }, + "total_object_count": { + "type": "integer", + "format": "int32", + "description": "Total number of objects to process.", + "nullable": true + }, + "object_processed_count": { + "type": "integer", + "format": "int32", + "description": "Number of objects processed so far.", + "nullable": true + }, + "modified_at": { + "type": "number", + "format": "float", + "description": "Last time the task status was updated (in ms since epoch).", + "nullable": true + } + } + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + } + } + }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type.", + "nullable": true + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization.", + "nullable": true + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization.", + "nullable": true + } + } + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with fetch data api" + }, + "LogResponse": { + "type": "object", + "required": [ + "date", + "log" + ], + "properties": { + "date": { + "type": "string", + "description": "Date timestamp of the log entry" + }, + "log": { + "type": "string", + "description": "Log data" + } + } + }, + "RepoConfigObject": { + "type": "object", + "properties": { + "repository_url": { + "type": "string", + "description": "Remote repository URL configured", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username to authenticate connection to the version control system", + "nullable": true + }, + "commit_branch_name": { + "type": "string", + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Branches that have been pulled in local repository", + "nullable": true + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true + }, + "configuration_branch_name": { + "type": "string", + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the Org", + "nullable": true + } + } + }, + "CommitHistoryResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment", + "commit_time", + "commit_id", + "branch" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + } + } + }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database.", + "nullable": true + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database.", + "nullable": true + }, + "table": { + "type": "string", + "description": "Name of the table within the schema.", + "nullable": true + }, + "column": { + "type": "string", + "description": "Name of the column within the table.", + "nullable": true + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection.", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects", + "nullable": true + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database.", + "nullable": true + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created.", + "nullable": true + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema.", + "nullable": true + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table.", + "nullable": true + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the table", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" + }, + "data_type": { + "type": "string", + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate", + "nullable": true + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + } + } + }, + "SearchRoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + }, + "description": "Response for search role api should handle hidden privileges as well." + }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ResponseCustomAction": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "`Type` and configuration data for custom actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "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." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to assign the the custom action to.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": "Type of metadata." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT.", + "nullable": true + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT.", + "nullable": true + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT.", + "nullable": true + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "nullable": true + } + }, + "description": "Metadata objects." + }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "nullable": true + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + }, + "nullable": true + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + }, + "nullable": true + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later", + "nullable": true + } + }, + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of object.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort.", + "nullable": true + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter.", + "nullable": true + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, + "Token": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "Scope": { + "type": "object", + "required": [ + "access_type" + ], + "properties": { + "access_type": { + "type": "string", + "description": "Object access scope type." + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_id": { + "type": "string", + "description": "Unique identifier of the Org.", + "nullable": true + } + } + }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload." + }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user.", + "nullable": true + } + }, + "description": "The object representation with activation link." + }, + "ImportUser": { + "type": "object", + "required": [ + "user_identifier", + "display_name" + ], + "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "password": { + "type": "string", + "description": "Password of the user.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email address of the user.", + "nullable": true + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true + } + } + }, + "ImportUsersResponse": { + "type": "object", + "properties": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + } + }, + "GroupsImportListInput": { + "type": "object", + "required": [ + "display_name", + "group_identifier" + ], + "properties": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges that will be assigned to the group.", + "nullable": true + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true + } + } + }, + "ImportUserGroupsResponse": { + "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], + "properties": { + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." + } + } + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API" + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata (Optional when given identifier is ID).", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit", + "nullable": true + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object", + "nullable": true + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object", + "nullable": true + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file", + "nullable": true + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff.", + "nullable": true + } + } + }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + } + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients.", + "nullable": true + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true + } + }, + "description": "Recipients of the scheduled job notification." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job.", + "nullable": true + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard.", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export.", + "nullable": true + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { + "type": "string", + "description": "Status of the job", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records.", + "nullable": true + } + } + }, + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "MetadataResponse": { + "type": "object", + "required": [ + "id", + "type" ], "properties": { + "name": { + "type": "string", + "nullable": true + }, "id": { "type": "string" }, - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, - "display_name": { - "type": "string" + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, - "account_type": { - "type": "string" + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, - "account_status": { - "type": "string" + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, - "email": { - "type": "string" + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - } + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true }, - "privileges": { + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { "type": "array", "items": { "type": "string" - } - }, - "creation_time_in_millis": { - "type": "integer", - "format": "int32" - }, - "first_login_time_in_millis": { - "type": "integer", - "format": "int32" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, - "tags": { + "principals": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } - } + }, + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "RiseSetter": { + "PrincipalsListItem": { "type": "object", "required": [ - "field", - "path" + "identifier", + "type" ], "properties": { - "field": { - "type": "string" + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." }, - "path": { - "type": "string" + "type": { + "type": "string", + "description": "Principal type. Valid values are" } } }, - "Token": { + "ResponseScheduleRun": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_userid", - "valid_for_username" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "token": { - "type": "string" + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "creation_time_in_millis": { + "start_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "expiration_time_in_millis": { + "end_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run end time in milliseconds." }, - "scope": { - "$ref": "#/components/schemas/Scope" + "status": { + "type": "string", + "description": "Status of the schedule run." }, - "valid_for_userid": { - "type": "string" + "detail": { + "type": "string", + "description": "Message details related to the schedule run.", + "nullable": true + } + }, + "description": "Schedule run response object" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true }, - "valid_for_username": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "nullable": true } } }, - "UserGroup": { + "SortingOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + }, + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "name", - "id" + "url" ], "properties": { - "name": { - "type": "string" + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true }, - "id": { - "type": "string" + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true } } }, - "Scope": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { - "type": "string" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, - "organisation_id": { - "type": "integer", - "format": "int32" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "metadata_id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true + } + }, + "description": "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." + }, + "Action_Details_Input": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": "Type of metadata.", + "nullable": true + } + } + }, + "ActionConfigInput": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ModelTableList": { + "type": "object", + "required": [ + "model_name", + "tables" + ], + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string", + "nullable": true + }, + "project_name": { + "type": "string", + "nullable": true + }, + "connection_id": { + "type": "string", + "nullable": true + }, + "connection_name": { + "type": "string", + "nullable": true + }, + "cdw_database": { + "type": "string", + "nullable": true + }, + "import_type": { + "type": "string", + "nullable": true + }, + "author_name": { + "type": "string", + "nullable": true } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { @@ -520,4 +15772,4 @@ } } ] -} \ No newline at end of file +} From 8f63d79f8ff3650c8e06bd44918321c06f278eb7 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Mon, 26 Aug 2024 13:50:46 +0530 Subject: [PATCH 167/410] Update openapiSpecv3-2_0.json --- api-spec/openapiSpecv3-2_0.json | 392 +++++++++++++++++++++++++------- 1 file changed, 314 insertions(+), 78 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 325e1d913..794bcf918 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -53,6 +53,14 @@ ], "description": "Roles for version 10.1.0.cl" }, + { + "name": "10.3.0.cl", + "id": "10.3.0.cl", + "tags": [ + "10.3.0.cl" + ], + "description": "Roles for version 10.3.0.cl" + }, { "name": "10.0.0.cl", "id": "10.0.0.cl", @@ -306,7 +314,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -379,7 +388,11 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] }, "role_identifiers": { "description": "Filters by the role assigned to the user.", @@ -1019,7 +1032,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -1074,7 +1088,11 @@ }, "sort_options": { "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] } } } @@ -1193,7 +1211,11 @@ }, "favorite_object_options": { "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + } + ] }, "include_auto_created_objects": { "description": "Includes system-generated metadata objects.", @@ -1269,7 +1291,11 @@ }, "sort_options": { "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/MetadataSearchSortOptions" + } + ] }, "tag_identifiers": { "description": "Tags to filter metadata objects by", @@ -1382,17 +1408,17 @@ ] } }, - "author_id": { + "author_identifier": { "description": "Author ID of async import tasks to filter on.", "type": "string" }, - "offset": { + "record_offset": { "description": "The offset point, starting from where the task status should be included in the response.", "default": 0, "type": "integer", "format": "int32" }, - "batch_size": { + "record_size": { "description": "The number of task statuses that should be included in the response starting from offset position.", "default": 5, "type": "integer", @@ -1417,10 +1443,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } + "$ref": "#/components/schemas/GetAsyncImportStatusResponse" } } } @@ -1689,11 +1712,19 @@ }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/PdfOptionsInput" + } + ] }, "png_options": { "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/PngOptionsInput" + } + ] }, "runtime_param_override": { "description": "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).", @@ -2205,7 +2236,7 @@ "type": "string" }, "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", "default": "COMPACT", "type": "string", "enum": [ @@ -2332,7 +2363,7 @@ "type": "string" }, "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", "default": "COMPACT", "type": "string", "enum": [ @@ -2447,7 +2478,7 @@ "type": "string" }, "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", "default": "COMPACT", "type": "string", "enum": [ @@ -2932,7 +2963,11 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptionInput" + } + ] }, "include_details": { "description": "Indicates whether to include complete details of the connection objects.", @@ -3101,7 +3136,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -3224,7 +3260,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + } + ] }, "include_group_associations": { "description": "When set to true, returns the associated groups for a custom action.", @@ -3436,7 +3476,7 @@ "type": "object", "properties": { "username": { - "description": "Username of the ThoughtSpot user", + "description": "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).", "type": "string" }, "object_id": { @@ -3485,14 +3525,13 @@ "type": "string" } }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" + "description": "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).", + "allOf": [ + { + "$ref": "#/components/schemas/User_Parameter_Options" + } + ] } }, "required": [ @@ -3619,14 +3658,13 @@ "type": "string" } }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" + "description": "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).", + "allOf": [ + { + "$ref": "#/components/schemas/User_Parameter_Options" + } + ] } }, "required": [ @@ -5749,7 +5787,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -5920,7 +5959,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } }, @@ -6744,6 +6784,114 @@ } } }, + "/api/rest/2.0/metadata/copyobject": { + "post": { + "operationId": "copyObject", + "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of the metadata object specified in the API request.\n\nRequires create access to metadata objects\n\nUpon successful execution, the API returns the id of the new object which is copied from the given object.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "10.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "description": "Description of the new object", + "type": "string" + }, + "identifier": { + "description": "GUID of metadata object to be copied (answer id or liveboard id)", + "type": "string" + }, + "type": { + "description": "Type of metadata object", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ] + }, + "title": { + "description": "Title of the new object", + "type": "string" + } + }, + "required": [ + "identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully created a copy of the object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCopyObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Object not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", @@ -7270,7 +7418,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7370,7 +7518,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7565,7 +7713,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -8334,7 +8482,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8458,9 +8607,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8649,11 +8798,19 @@ }, "liveboard_options": { "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] }, "pdf_options": { "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] }, "time_zone": { "description": "Time zone", @@ -9294,11 +9451,19 @@ }, "frequency": { "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] }, "recipient_details": { "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] } }, "required": [ @@ -9468,11 +9633,19 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortingOptions" + } + ] }, "history_runs_options": { "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + } + ] }, "schedule_identifiers": { "description": "unique ID or name of the Schedule", @@ -9589,11 +9762,19 @@ }, "liveboard_options": { "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] }, "time_zone": { "description": "Time zone", @@ -10233,11 +10414,19 @@ }, "frequency": { "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] }, "recipient_details": { "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] }, "status": { "description": "Status of the schedule", @@ -10331,7 +10520,11 @@ }, "action_details": { "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input_Create" + } + ] }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10342,7 +10535,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + } + ] }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -10450,7 +10647,11 @@ "properties": { "action_details": { "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input" + } + ] }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10461,7 +10662,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input" + } + ] }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -11577,7 +11782,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata object." + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." } } }, @@ -11611,7 +11816,7 @@ "LIVEBOARD", "ANSWER" ], - "description": "Type of metadata object.", + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true } } @@ -12285,6 +12490,24 @@ }, "description": "Metadata Search Response Object." }, + "GetAsyncImportStatusResponse": { + "type": "object", + "properties": { + "status_list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + }, + "description": "List of task statuses.", + "nullable": true + }, + "last_batch": { + "type": "boolean", + "description": "Indicates whether there are more task statuses to fetch.", + "nullable": true + } + } + }, "ImportEPackAsyncTaskStatus": { "type": "object", "properties": { @@ -12564,7 +12787,7 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata object.", + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true }, "identifier": { @@ -13267,7 +13490,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -13545,7 +13769,7 @@ }, "type": { "type": "string", - "description": "Type of metadata." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." } } }, @@ -13578,7 +13802,7 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata object.", + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true }, "identifier": { @@ -13640,7 +13864,7 @@ "nullable": true } }, - "description": "JWT user options to create a JWT token given the payload." + "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" }, "JWT_Parameter": { "type": "object", @@ -13719,7 +13943,7 @@ "nullable": true } }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + "description": "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)." }, "User_Object": { "type": "object", @@ -13734,7 +13958,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of object.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true }, "identifier": { @@ -13942,7 +14166,7 @@ "nullable": true } }, - "description": "JWT user options to create a JWT token given the payload." + "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" }, "TokenValidationResponse": { "type": "object", @@ -14154,7 +14378,7 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n 1. LIVEBOARD\n 2. ANSWERS\n 3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n 4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", "nullable": true }, "identifier": { @@ -14220,7 +14444,8 @@ "THIRDPARTY_ANALYSIS", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges that will be assigned to the group.", @@ -14293,6 +14518,16 @@ } } }, + "ResponseCopyObject": { + "type": "object", + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + } + } + }, "ExportMetadataTypeInput": { "type": "object", "required": [ @@ -14311,7 +14546,7 @@ "USER_GROUP", "ROLE" ], - "description": "Type of metadata (Optional when given identifier is ID).", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true }, "identifier": { @@ -14336,7 +14571,7 @@ "LOGICAL_COLUMN", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata (Optional when given identifier is ID).", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true }, "identifier": { @@ -14359,7 +14594,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata.", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true }, "identifier": { @@ -14382,7 +14617,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata (Optional when given identifier is ID).", + "description": " Type of metadata.\n \n\nType 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.", "nullable": true }, "identifier": { @@ -14431,7 +14666,7 @@ "LOGICAL_TABLE", "CUSTOM_ACTION" ], - "description": "Type of metadata.", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true } } @@ -14761,7 +14996,8 @@ "CAN_CREATE_CATALOG", "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO" + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] }, "description": "Privileges granted to the role." @@ -15508,7 +15744,7 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata.", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true } } @@ -15624,7 +15860,7 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata.", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true } } From 9bd62547bca1fb0ab4a8638ba65e500e5d119b30 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Mon, 26 Aug 2024 15:35:02 +0530 Subject: [PATCH 168/410] Update openapiSpecv3-2_0.json (#159) --- api-spec/openapiSpecv3-2_0.json | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 794bcf918..e303e9931 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3476,7 +3476,7 @@ "type": "object", "properties": { "username": { - "description": "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).", + "description": "Username of the ThoughtSpot user", "type": "string" }, "object_id": { @@ -13935,15 +13935,9 @@ "$ref": "#/components/schemas/User_Parameters" }, "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", - "nullable": true } }, - "description": "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)." + "description": "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).\n" }, "User_Object": { "type": "object", From acf0f3d09fab3dcab21f4afe7b7fb81c004c0723 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 27 Aug 2024 21:09:52 +0000 Subject: [PATCH 169/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 168 +++++++++----------------------- 1 file changed, 44 insertions(+), 124 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e303e9931..38ab1fd9f 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -388,11 +388,7 @@ }, "sort_options": { "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] + "$ref": "#/components/schemas/SortOptions" }, "role_identifiers": { "description": "Filters by the role assigned to the user.", @@ -1088,11 +1084,7 @@ }, "sort_options": { "description": "Sort options to filter group details.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] + "$ref": "#/components/schemas/SortOptions" } } } @@ -1211,11 +1203,7 @@ }, "favorite_object_options": { "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "allOf": [ - { - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - } - ] + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" }, "include_auto_created_objects": { "description": "Includes system-generated metadata objects.", @@ -1291,11 +1279,7 @@ }, "sort_options": { "description": "Sort options to filter metadata details.", - "allOf": [ - { - "$ref": "#/components/schemas/MetadataSearchSortOptions" - } - ] + "$ref": "#/components/schemas/MetadataSearchSortOptions" }, "tag_identifiers": { "description": "Tags to filter metadata objects by", @@ -1712,19 +1696,11 @@ }, "pdf_options": { "description": "Options for PDF export.", - "allOf": [ - { - "$ref": "#/components/schemas/PdfOptionsInput" - } - ] + "$ref": "#/components/schemas/PdfOptionsInput" }, "png_options": { "description": "Options for PNG export.", - "allOf": [ - { - "$ref": "#/components/schemas/PngOptionsInput" - } - ] + "$ref": "#/components/schemas/PngOptionsInput" }, "runtime_param_override": { "description": "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).", @@ -2963,11 +2939,7 @@ }, "sort_options": { "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptionInput" - } - ] + "$ref": "#/components/schemas/SortOptionInput" }, "include_details": { "description": "Indicates whether to include complete details of the connection objects.", @@ -3260,11 +3232,7 @@ }, "default_action_config": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - } - ] + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" }, "include_group_associations": { "description": "When set to true, returns the associated groups for a custom action.", @@ -3525,13 +3493,14 @@ "type": "string" } }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, "user_parameters": { - "description": "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).", - "allOf": [ - { - "$ref": "#/components/schemas/User_Parameter_Options" - } - ] + "description": "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).
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" } }, "required": [ @@ -3658,13 +3627,14 @@ "type": "string" } }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, "user_parameters": { - "description": "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).", - "allOf": [ - { - "$ref": "#/components/schemas/User_Parameter_Options" - } - ] + "description": "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).
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" } }, "required": [ @@ -8798,19 +8768,11 @@ }, "liveboard_options": { "description": "Options to specify details of Liveboard.", - "allOf": [ - { - "$ref": "#/components/schemas/LiveboardOptionsInput" - } - ] + "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "allOf": [ - { - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - } - ] + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { "description": "Time zone", @@ -9451,19 +9413,11 @@ }, "frequency": { "description": "Frequency settings for the scheduled job.", - "allOf": [ - { - "$ref": "#/components/schemas/FrequencyInput" - } - ] + "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/RecipientDetailsInput" - } - ] + "$ref": "#/components/schemas/RecipientDetailsInput" } }, "required": [ @@ -9633,19 +9587,11 @@ }, "sort_options": { "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortingOptions" - } - ] + "$ref": "#/components/schemas/SortingOptions" }, "history_runs_options": { "description": "Options while fetching history runs for the schedule.", - "allOf": [ - { - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - } - ] + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" }, "schedule_identifiers": { "description": "unique ID or name of the Schedule", @@ -9762,19 +9708,11 @@ }, "liveboard_options": { "description": "Options to specify the details of a Liveboard.", - "allOf": [ - { - "$ref": "#/components/schemas/LiveboardOptionsInput" - } - ] + "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { "description": "Options for PDF export.", - "allOf": [ - { - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - } - ] + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { "description": "Time zone", @@ -10414,19 +10352,11 @@ }, "frequency": { "description": "Frequency of the scheduled job run.", - "allOf": [ - { - "$ref": "#/components/schemas/FrequencyInput" - } - ] + "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/RecipientDetailsInput" - } - ] + "$ref": "#/components/schemas/RecipientDetailsInput" }, "status": { "description": "Status of the schedule", @@ -10520,11 +10450,7 @@ }, "action_details": { "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input_Create" - } - ] + "$ref": "#/components/schemas/Action_Details_Input_Create" }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10535,11 +10461,7 @@ }, "default_action_config": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - } - ] + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -10647,11 +10569,7 @@ "properties": { "action_details": { "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input" - } - ] + "$ref": "#/components/schemas/Action_Details_Input" }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10662,11 +10580,7 @@ }, "default_action_config": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input" - } - ] + "$ref": "#/components/schemas/Default_Action_Config_Input" }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -13935,9 +13849,15 @@ "$ref": "#/components/schemas/User_Parameters" }, "nullable": true + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later", + "nullable": true } }, - "description": "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).\n" + "description": "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)." }, "User_Object": { "type": "object", @@ -16002,4 +15922,4 @@ } } ] -} +} \ No newline at end of file From 538c842101c788d57ca0c379afe7d7d7c0c5d474 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 28 Aug 2024 09:46:27 +0000 Subject: [PATCH 170/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 38ab1fd9f..c68539696 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6248,6 +6248,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "if we should skip CDW validation for table imports.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -6348,6 +6354,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "if we should skip CDW validation for table imports.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ From 9c7abbdac5d62d4e4bd6e7cc1ef65a15239a0a67 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 28 Aug 2024 11:11:06 +0000 Subject: [PATCH 171/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c68539696..133f8d81e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1393,7 +1393,7 @@ } }, "author_identifier": { - "description": "Author ID of async import tasks to filter on.", + "description": "Author GUID or name of async import tasks to filter on.", "type": "string" }, "record_offset": { From f3e0192634a4838251dae996bd718f2fd12a96da Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 29 Aug 2024 06:41:04 +0000 Subject: [PATCH 172/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 169 ++++++++++++++++++++++++-------- 1 file changed, 126 insertions(+), 43 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 133f8d81e..6042333ac 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -388,7 +388,11 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] }, "role_identifiers": { "description": "Filters by the role assigned to the user.", @@ -1084,7 +1088,11 @@ }, "sort_options": { "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] } } } @@ -1203,7 +1211,11 @@ }, "favorite_object_options": { "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + } + ] }, "include_auto_created_objects": { "description": "Includes system-generated metadata objects.", @@ -1279,7 +1291,11 @@ }, "sort_options": { "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/MetadataSearchSortOptions" + } + ] }, "tag_identifiers": { "description": "Tags to filter metadata objects by", @@ -1696,11 +1712,19 @@ }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/PdfOptionsInput" + } + ] }, "png_options": { "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/PngOptionsInput" + } + ] }, "runtime_param_override": { "description": "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).", @@ -2939,7 +2963,11 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptionInput" + } + ] }, "include_details": { "description": "Indicates whether to include complete details of the connection objects.", @@ -3232,7 +3260,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + } + ] }, "include_group_associations": { "description": "When set to true, returns the associated groups for a custom action.", @@ -3493,14 +3525,13 @@ "type": "string" } }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, "user_parameters": { - "description": "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).
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" + "description": "
Version: 9.10.5.cl or 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": [ @@ -3627,14 +3658,13 @@ "type": "string" } }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, "user_parameters": { - "description": "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).
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" + "description": "
Version: 9.10.5.cl or 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": [ @@ -8780,11 +8810,19 @@ }, "liveboard_options": { "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] }, "pdf_options": { "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] }, "time_zone": { "description": "Time zone", @@ -9425,11 +9463,19 @@ }, "frequency": { "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] }, "recipient_details": { "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] } }, "required": [ @@ -9599,11 +9645,19 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortingOptions" + } + ] }, "history_runs_options": { "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + } + ] }, "schedule_identifiers": { "description": "unique ID or name of the Schedule", @@ -9720,11 +9774,19 @@ }, "liveboard_options": { "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] }, "time_zone": { "description": "Time zone", @@ -10364,11 +10426,19 @@ }, "frequency": { "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] }, "recipient_details": { "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] }, "status": { "description": "Status of the schedule", @@ -10462,7 +10532,11 @@ }, "action_details": { "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input_Create" + } + ] }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10473,7 +10547,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + } + ] }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -10581,7 +10659,11 @@ "properties": { "action_details": { "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input" + } + ] }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10592,7 +10674,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input" + } + ] }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -13846,6 +13932,7 @@ "items": { "$ref": "#/components/schemas/User_Runtime_Filters" }, + "description": "Objects to apply the User_Runtime_Filters.\n\nExamples to set the `runtime_filters` :\n```json\n{ \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false }\n```", "nullable": true }, "runtime_sorts": { @@ -13853,6 +13940,7 @@ "items": { "$ref": "#/components/schemas/User_Runtime_Sorts" }, + "description": "Objects to apply the User_Runtime_Sorts.\n\nExamples to set the `runtime_sorts` :\n```json\n{ \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false }\n```", "nullable": true }, "parameters": { @@ -13860,16 +13948,11 @@ "items": { "$ref": "#/components/schemas/User_Parameters" }, - "nullable": true - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later", + "description": "Objects to apply the Runtime_Parameters.\n\nExamples to set the `parameters` :\n```json\n{ \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false }\n```", "nullable": true } }, - "description": "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)." + "description": "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).\n" }, "User_Object": { "type": "object", From 5744bf87a6cbb2fbcc5b790f1a26afa353bad5e6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 30 Aug 2024 12:11:06 +0000 Subject: [PATCH 173/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6042333ac..104ea24e3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -315,7 +315,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -1033,7 +1034,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -3137,7 +3139,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -5788,7 +5791,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -5960,7 +5964,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -8495,7 +8500,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } } @@ -13503,7 +13509,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] }, "description": "Privileges granted to the role." @@ -14454,7 +14461,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] }, "description": "Privileges that will be assigned to the group.", @@ -15006,7 +15014,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] }, "description": "Privileges granted to the role." From aa3e4fd497fef91af508ae0080a1f2d0dd877048 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 5 Sep 2024 15:15:11 +0000 Subject: [PATCH 174/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 104ea24e3..a90913ada 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2092,7 +2092,7 @@ "format": "int32" }, "permission_type": { - "description": "Permission type if it is effective then fetch the effective permission\nof principals else fetch the defined permission of principals.", + "description": "
Version: 10.3.0.cl or later
\n\nSpecifies the type of permission. Valid values are:\n EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong.\n DEFINED - If a user or user group received access to metadata objects via object sharing by another user.", "type": "string" } }, From cade6aa5eefaf5f17ca4143939708254dd6abfe2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 9 Sep 2024 10:56:55 +0000 Subject: [PATCH 175/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16062 +----------------------------- 1 file changed, 278 insertions(+), 15784 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a90913ada..2e5c7fec7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,118 +4,18 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, - "x-roles": [ - { - "name": "9.0.0.cl", - "id": "9.0.0.cl", - "tags": [ - "9.0.0.cl" - ], - "description": "Roles for version 9.0.0.cl" - }, - { - "name": "9.12.0.cl", - "id": "9.12.0.cl", - "tags": [ - "9.12.0.cl" - ], - "description": "Roles for version 9.12.0.cl" - }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, - { - "name": "9.2.0.cl", - "id": "9.2.0.cl", - "tags": [ - "9.2.0.cl" - ], - "description": "Roles for version 9.2.0.cl" - }, - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, - { - "name": "10.1.0.cl", - "id": "10.1.0.cl", - "tags": [ - "10.1.0.cl" - ], - "description": "Roles for version 10.1.0.cl" - }, - { - "name": "10.3.0.cl", - "id": "10.3.0.cl", - "tags": [ - "10.3.0.cl" - ], - "description": "Roles for version 10.3.0.cl" - }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, - { - "name": "9.9.0.cl", - "id": "9.9.0.cl", - "tags": [ - "9.9.0.cl" - ], - "description": "Roles for version 9.9.0.cl" - }, - { - "name": "9.5.0.cl", - "id": "9.5.0.cl", - "tags": [ - "9.5.0.cl" - ], - "description": "Roles for version 9.5.0.cl" - }, - { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", - "tags": [ - "9.6.0.cl" - ], - "description": "Roles for version 9.6.0.cl" - } - ], "tags": [], "paths": { - "/api/rest/2.0/auth/session/user": { + "/api/2.0/rest/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "Get Session object information", "tags": [ - "Authentication", - "9.0.0.cl" + "Auth" ], "parameters": [], "responses": { "200": { - "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -124,38 +24,8 @@ } } }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -167,58 +37,55 @@ } } }, - "/api/rest/2.0/auth/session/token": { - "get": { - "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/login": { + "post": { + "operationId": "login", + "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", "tags": [ - "Authentication", - "9.4.0.cl" + "Auth" ], - "parameters": [], - "responses": { - "200": { - "description": "Fetching token for current user successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTokenResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "type": "string", + "deprecated": false + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", + "type": "boolean", + "deprecated": false + } + }, + "required": [ + "username", + "password" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -230,13 +97,12 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/2.0/rest/v2/auth/token/object": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getObjectAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", "tags": [ - "Users", - "9.0.0.cl" + "Auth" ], "requestBody": { "content": { @@ -244,193 +110,63 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", - "type": "string" - }, - "visibility": { - "description": "Visibility of the user", + "username": { + "description": "Username of the user account", "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" + "deprecated": false }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the user", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "account_type": { - "description": "Type of the account", + "password": { + "description": "The password of the user account", + "default": "", "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "deprecated": false }, - "account_status": { - "description": "Current status of the user account.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true + "deprecated": false }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } + "object_id": { + "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", + "type": "string", + "deprecated": false }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, "type": "integer", - "format": "int32" + "format": "int32", + "deprecated": false }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] - }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", - "type": "array", - "items": { - "type": "string" - } - }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, - "type": "boolean", - "nullable": true + "format": "int32", + "deprecated": false } - } + }, + "required": [ + "username", + "object_id" + ] } } - }, - "required": true + } }, - "parameters": [], "responses": { "200": { - "description": "User search result.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/Token" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -438,29 +174,74 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user account", + "type": "string", + "deprecated": false + }, + "password": { + "description": "The password of the user account", + "default": "", + "type": "string", + "deprecated": false + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", + "default": "", + "type": "string", + "deprecated": false + }, + "validity_time_in_sec": { + "description": "Duration in seconds after which the token expires", + "default": 300, + "type": "integer", + "format": "int32", + "deprecated": false + }, + "organization_id": { + "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "default": 0, + "type": "integer", + "format": "int32", + "deprecated": false + } + }, + "required": [ + "username" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "$ref": "#/components/schemas/Token" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -472,57 +253,35 @@ } } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/2.0/rest/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "To log a user out of the current session, use this endpoint", "tags": [ - "System", - "9.0.0.cl" + "Auth" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, "responses": { "200": { - "description": "Cluster information.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } + "type": "object" } } } }, - "400": { - "description": "Invalid request.", + "500": { + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -530,29 +289,52 @@ } } } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } + } + } + } + }, + "/api/2.0/rest/v2/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "To expire or revoke a token for a user, use this endpoint", + "tags": [ + "Auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "deprecated": false + }, + "token": { + "type": "string", + "deprecated": false + } + }, + "required": [ + "username", + "token" + ] } } - }, - "403": { - "description": "Forbidden access.", + } + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } }, "500": { - "description": "Unexpected error", + "description": "Operation failed", "content": { "application/json": { "schema": { @@ -563,15445 +345,157 @@ } } } - }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster config information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/search": { - "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/search": { - "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tags search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/search": { - "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "display_name": { - "description": "Display name of the group", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" - }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/search": { - "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "allOf": [ - { - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - } - ] - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "allOf": [ - { - "$ref": "#/components/schemas/MetadataSearchSortOptions" - } - ] - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/async/status": { - "post": { - "operationId": "fetchAsyncImportTaskStatus", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task_ids": { - "description": "List of task IDs to fetch status for.", - "type": "array", - "items": { - "type": "string" - } - }, - "task_status": { - "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", - "type": "array", - "items": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ] - } - }, - "author_identifier": { - "description": "Author GUID or name of async import tasks to filter on.", - "type": "string" - }, - "record_offset": { - "description": "The offset point, starting from where the task status should be included in the response.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of task statuses that should be included in the response starting from offset position.", - "default": 5, - "type": "integer", - "format": "int32" - }, - "include_import_response": { - "description": "Boolean flag to specify whether to include import response in the task status objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task statuses fetched successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetAsyncImportStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/sql": { - "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/sql": { - "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching SQL query of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/liveboard": { - "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "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).", - "type": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "pdf_options": { - "description": "Options for PDF export.", - "allOf": [ - { - "$ref": "#/components/schemas/PdfOptionsInput" - } - ] - }, - "png_options": { - "description": "Options for PNG export.", - "allOf": [ - { - "$ref": "#/components/schemas/PngOptionsInput" - } - ] - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/report/answer": { - "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Reports", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" - }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/principals/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - } - }, - "required": [ - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/fetch-permissions": { - "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "
Version: 10.3.0.cl or later
\n\nSpecifies the type of permission. Valid values are:\n EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong.\n DEFINED - If a user or user group received access to metadata objects via object sharing by another user.", - "type": "string" - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching permissions of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" - }, - "examples": { - "example_1": { - "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/logs/fetch": { - "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Log", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "log_type": { - "description": "Name of the log type", - "type": "string", - "enum": [ - "SECURITY_AUDIT" - ] - }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" - }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" - }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "log_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Log fetched successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/search": { - "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Details of local repository configuration", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/search": { - "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ] - }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Commit history of the metadata object", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/search": { - "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } - }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", - "type": "string", - "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" - ] - }, - "sort_options": { - "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptionInput" - } - ] - }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true - }, - "configuration": { - "description": "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.", - "type": "object" - }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "List of connections to the datasource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/search": { - "post": { - "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true - }, - "permissions": { - "description": "Permission details of the Role", - "type": "array", - "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Roles search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/search": { - "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - } - ] - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/session/login": { - "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User login successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "object_id": { - "description": "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.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "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.", - "type": "array", - "items": { - "type": "string" - } - }, - "user_parameters": { - "description": "
Version: 9.10.5.cl or 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": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/token/full": { - "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" - }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" - }, - "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", - "type": "string" - }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true - }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", - "type": "array", - "items": { - "type": "string" - } - }, - "user_parameters": { - "description": "
Version: 9.10.5.cl or 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": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "parameters": [], - "responses": { - "204": { - "description": "User logout successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Authentication", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "type": "string" - }, - "token": { - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Token successfully revoked." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/auth/token/validate": { - "post": { - "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", - "tags": [ - "Authentication", - "9.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Token validation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", - "type": "boolean", - "nullable": true - }, - "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "display_name", - "email" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/update": { - "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", - "type": "boolean", - "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/import": { - "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } - }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "users" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import users operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/change-password": { - "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "current_password", - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password change operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/reset-password": { - "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", - "type": "string" - } - }, - "required": [ - "new_password", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "User password reset operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/force-logout": { - "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Force logging out of users operation successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/activate": { - "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "auth_token", - "password" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User activated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/users/deactivate": { - "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.7.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" - } - }, - "required": [ - "user_identifier", - "base_url" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", - "type": "object" - } - }, - "required": [ - "configuration" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/create": { - "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" - }, - "description": { - "description": "Description of the Org.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/update": { - "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "Add Default Groups to an Org", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { - "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], - "responses": { - "204": { - "description": "Organization successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/create": { - "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Tag successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - }, - "examples": { - "example_1": { - "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/update": { - "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Name or Id of the tag." - } - ], - "responses": { - "204": { - "description": "Tag successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { - "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], - "responses": { - "204": { - "description": "Tag successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/assign": { - "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully assigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/tags/unassign": { - "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Tags", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } - }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata", - "tag_identifiers" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Tags successfully unassigned." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/create": { - "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description of the group", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "display_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "User group successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/update": { - "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the group to modify.", - "type": "string" - }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", - "type": "string" - }, - "privileges": { - "description": "Privileges to assign to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/{group_identifier}/delete": { - "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], - "responses": { - "204": { - "description": "User group successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/groups/import": { - "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Groups", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "groups": { - "description": "Details of groups which are to be imported", - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupsImportListInput" - } - }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import user groups operation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/import": { - "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - }, - "skip_cdw_validation_for_tables": { - "description": "if we should skip CDW validation for table imports.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Import metadata objects using specified TMLs is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/async/import": { - "post": { - "operationId": "importMetadataTMLAsync", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - }, - "skip_cdw_validation_for_tables": { - "description": "if we should skip CDW validation for table imports.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task submitted successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" - ] - }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/copyobject": { - "post": { - "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of the metadata object specified in the API request.\n\nRequires create access to metadata objects\n\nUpon successful execution, the API returns the id of the new object which is copied from the given object.\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "10.3.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "description": { - "description": "Description of the new object", - "type": "string" - }, - "identifier": { - "description": "GUID of metadata object to be copied (answer id or liveboard id)", - "type": "string" - }, - "type": { - "description": "Type of metadata object", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ] - }, - "title": { - "description": "Title of the new object", - "type": "string" - } - }, - "required": [ - "identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully created a copy of the object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCopyObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "404": { - "description": "Object not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "emails", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/update/{connection_identifier}": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "allOf": [ - { - "$ref": "#/components/schemas/LiveboardOptionsInput" - } - ] - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "allOf": [ - { - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - } - ] - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency settings for the scheduled job.", - "allOf": [ - { - "$ref": "#/components/schemas/FrequencyInput" - } - ] - }, - "recipient_details": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/RecipientDetailsInput" - } - ] - } - }, - "required": [ - "name", - "description", - "metadata_type", - "metadata_identifier", - "time_zone", - "recipient_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/delete": { - "post": { - "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the scheduled job." - } - ], - "responses": { - "204": { - "description": "Schedule successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/search": { - "post": { - "operationId": "searchSchedules", - "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects associated with the scheduled jobs.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortingOptions" - } - ] - }, - "history_runs_options": { - "description": "Options while fetching history runs for the schedule.", - "allOf": [ - { - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - } - ] - }, - "schedule_identifiers": { - "description": "unique ID or name of the Schedule", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Schedule search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseSchedule" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/{schedule_identifier}/update": { - "post": { - "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the scheduled job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify the details of a Liveboard.", - "allOf": [ - { - "$ref": "#/components/schemas/LiveboardOptionsInput" - } - ] - }, - "pdf_options": { - "description": "Options for PDF export.", - "allOf": [ - { - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - } - ] - }, - "time_zone": { - "description": "Time zone", - "type": "string", - "enum": [ - "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" - ] - }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "allOf": [ - { - "$ref": "#/components/schemas/FrequencyInput" - } - ] - }, - "recipient_details": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/RecipientDetailsInput" - } - ] - }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "schedule_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the schedule." - } - ], - "responses": { - "204": { - "description": "Schedule successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions": { - "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input_Create" - } - ] - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - } - ] - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "action_details" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { - "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input" - } - ] - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input" - } - ] - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", - "type": "string" - }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action updated successfully." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/dbt-connection": { - "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "connection_name", - "database_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Succesfully created DBT Connection.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-tml": { - "post": { - "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } - }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] - }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier", - "import_worksheets" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/generate-sync-tml": { - "post": { - "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/search": { - "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [], - "responses": { - "200": { - "description": "Retrieved list of DBT connections successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DbtSearchResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { - "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "dbt_connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID of the DBT Connection." - } - ], - "responses": { - "204": { - "description": "DBT Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/dbt/update-dbt-connection": { - "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "DBT", - "9.9.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" - }, - "project_name": { - "description": "Name of the project", - "type": "string" - }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" - } - }, - "required": [ - "dbt_connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "DBT Connection successfully updated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object", - "nullable": true - } - } - }, - "GetTokenResponse": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "RiseSetter": { - "type": "object", - "required": [ - "field", - "path" - ], - "properties": { - "field": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "User": { - "type": "object", - "required": [ - "id", - "name", - "display_name", - "visibility" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user." - }, - "name": { - "type": "string", - "description": "Name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true - }, - "can_change_password": { - "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true - }, - "current_org": { - "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email of the user.", - "nullable": true - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataItem" - }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true - }, - "first_login_time_in_millis": { - "type": "number", - "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true - }, - "group_mask": { - "type": "integer", - "format": "int32", - "description": "Group mask of the user.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true - }, - "home_liveboard": { - "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "incomplete_details": { - "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true - }, - "is_first_login": { - "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Org" - }, - "description": "Orgs to which the user belongs.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the user.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the user.", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true - }, - "super_user": { - "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true - }, - "system_user": { - "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Tags associated with the user.", - "nullable": true - }, - "tenant_id": { - "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Groups to which the user is assigned.", - "nullable": true - }, - "user_inherited_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true - }, - "welcome_email_sent": { - "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true - }, - "org_privileges": { - "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true - }, - "extended_properties": { - "type": "object", - "description": "Properties for the user", - "nullable": true - }, - "extended_preferences": { - "type": "object", - "description": "Preferences for the user", - "nullable": true - }, - "user_parameters": { - "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - } - } - }, - "Org": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "The current Org context of the user." - }, - "FavoriteMetadataItem": { - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the metadata object." - }, - "name": { - "type": "string", - "description": "name of the metadata object." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." - } - } - }, - "Object_ID_And_Name": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the object.", - "nullable": true - } - }, - "description": "The object representation with ID and Name." - }, - "FavoriteMetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - } - } - }, - "SortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "SystemInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the cluster.", - "nullable": true - }, - "release_version": { - "type": "string", - "description": "The release version of the cluster.", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "The timezone of the cluster.", - "nullable": true - }, - "locale": { - "type": "string", - "description": "The default locale of the cluster.", - "nullable": true - }, - "date_format": { - "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true - }, - "api_version": { - "type": "string", - "description": "The API version of the cluster.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true - }, - "license": { - "type": "string", - "description": "The license applied to the cluster.", - "nullable": true - }, - "date_time_format": { - "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true - }, - "time_format": { - "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true - }, - "system_user_id": { - "type": "string", - "description": "The unique identifier of system user.", - "nullable": true - }, - "super_user_id": { - "type": "string", - "description": "The unique identifier of super user.", - "nullable": true - }, - "hidden_object_id": { - "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true - }, - "system_group_id": { - "type": "string", - "description": "The unique identifier of system group.", - "nullable": true - }, - "tsadmin_user_id": { - "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true - }, - "admin_group_id": { - "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true - }, - "all_tables_connection_id": { - "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true - }, - "all_user_group_id": { - "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true - }, - "accept_language": { - "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true - }, - "all_user_group_member_user_count": { - "type": "integer", - "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true - }, - "logical_model_version": { - "type": "integer", - "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true - } - } - }, - "SystemConfig": { - "type": "object", - "properties": { - "onboarding_content_url": { - "type": "string", - "nullable": true - } - } - }, - "OrgResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the Org.", - "nullable": true - }, - "status": { - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ], - "description": "Status of the Org.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the Org.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ], - "description": "Visibility of the Org.", - "nullable": true - } - } - }, - "Tag": { - "type": "object", - "required": [ - "name", - "id" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "color": { - "type": "string", - "nullable": true - }, - "deleted": { - "type": "boolean", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "external": { - "type": "boolean", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "nullable": true - }, - "author_id": { - "type": "string", - "nullable": true - }, - "modifier_id": { - "type": "string", - "nullable": true - }, - "owner_id": { - "type": "string", - "nullable": true - } - } - }, - "UserGroupResponse": { - "type": "object", - "required": [ - "display_name", - "id", - "name", - "visibility" - ], - "properties": { - "author_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "complete_detail": { - "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true - }, - "content": { - "type": "object", - "description": "Content details of the group", - "nullable": true - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true - }, - "default_liveboards": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group", - "nullable": true - }, - "display_name": { - "type": "string", - "description": "Display name of the group." - }, - "external": { - "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the group", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true - }, - "id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index number of the group", - "nullable": true - }, - "index_version": { - "type": "integer", - "format": "int32", - "description": "Index version number of the group", - "nullable": true - }, - "metadata_version": { - "type": "integer", - "format": "int32", - "description": "Metadata version number of the group", - "nullable": true - }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group." - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Orgs in which group exists.", - "nullable": true - }, - "owner_id": { - "type": "string", - "description": "The unique identifier of the object", - "nullable": true - }, - "parent_type": { - "type": "string", - "enum": [ - "USER", - "GROUP" - ], - "description": "Parent type of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Privileges which are assigned to the group", - "nullable": true - }, - "sub_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Groups who are part of the group", - "nullable": true - }, - "system_group": { - "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Tags associated with the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "Users who are part of the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - }, - "description": "List of roles assgined to the user", - "nullable": true - } - } - }, - "Role": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id of the role", - "nullable": true - }, - "name": { - "type": "string", - "description": "name of the role", - "nullable": true - } - } - }, - "MetadataListItemInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true - } - } - }, - "PermissionInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Object share mode." - } - }, - "description": "Details of users or groups." - }, - "ExcludeMetadataListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" - ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" - } - } - }, - "FavoriteObjectOptionsInput": { - "type": "object", - "properties": { - "include": { - "type": "boolean", - "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true - } - }, - "description": "Favorite object options." - }, - "MetadataSearchSortOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "VIEWS", - "FAVORITES", - "LAST_ACCESSED" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "MetadataSearchResponse": { - "type": "object", - "required": [ - "metadata_type" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata.", - "nullable": true - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "dependent_objects": { - "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true - }, - "incomplete_objects": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true - }, - "metadata_detail": { - "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true - }, - "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "GetAsyncImportStatusResponse": { - "type": "object", - "properties": { - "status_list": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - }, - "description": "List of task statuses.", - "nullable": true - }, - "last_batch": { - "type": "boolean", - "description": "Indicates whether there are more task statuses to fetch.", - "nullable": true - } - } - }, - "ImportEPackAsyncTaskStatus": { - "type": "object", - "properties": { - "tenant_id": { - "type": "string", - "description": "GUID of tenant from which the task is initiated.", - "nullable": true - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Organisation ID of the user who initiated the task.", - "nullable": true - }, - "task_id": { - "type": "string", - "description": "Unique identifier for the task.", - "nullable": true - }, - "task_name": { - "type": "string", - "description": "Name of the task.", - "nullable": true - }, - "import_response": { - "type": "object", - "description": "Response of imported objects so far.", - "nullable": true - }, - "task_status": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ], - "description": "Current status of the task.", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "ID of the user who initiated the task.", - "nullable": true - }, - "import_policy": { - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" - ], - "description": "Policy used for the import task.", - "nullable": true - }, - "created_at": { - "type": "number", - "format": "float", - "description": "Time when the task was created (in ms since epoch).", - "nullable": true - }, - "in_progress_at": { - "type": "number", - "format": "float", - "description": "Time when the task started (in ms since epoch).", - "nullable": true - }, - "completed_at": { - "type": "number", - "format": "float", - "description": "Time when the task was completed (in ms since epoch).", - "nullable": true - }, - "total_object_count": { - "type": "integer", - "format": "int32", - "description": "Total number of objects to process.", - "nullable": true - }, - "object_processed_count": { - "type": "integer", - "format": "int32", - "description": "Number of objects processed so far.", - "nullable": true - }, - "modified_at": { - "type": "number", - "format": "float", - "description": "Last time the task status was updated (in ms since epoch).", - "nullable": true - } - } - }, - "SqlQueryResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "metadata_type", - "sql_queries" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "metadata_type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION", - "TAG", - "USER", - "USER_GROUP", - "LOGICAL_RELATIONSHIP" - ], - "description": "Type of the metadata." - }, - "sql_queries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SqlQuery" - }, - "description": "SQL query details of metadata objects." - } - } - }, - "SqlQuery": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "sql_query" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "Unique identifier of the metadata." - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata." - }, - "sql_query": { - "type": "string", - "description": "SQL query of a metadata object." - } - }, - "description": "Response format associated with fetch SQL query api" - }, - "PdfOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "enum": [ - "PORTRAIT", - "LANDSCAPE" - ], - "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - } - } - }, - "PngOptionsInput": { - "type": "object", - "properties": { - "include_cover_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - } - } - }, - "PermissionOfPrincipalsResponse": { - "type": "object", - "properties": { - "principal_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PermissionOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_permission_details": { - "type": "object", - "nullable": true - } - } - }, - "PrincipalsInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the principal object such as a user or group." - }, - "type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type.", - "nullable": true - } - } - }, - "PermissionsMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Permission API's" - }, - "SearchDataResponse": { - "type": "object", - "required": [ - "contents" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with the search data API." - }, - "AnswerContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - } - } - }, - "LiveboardDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LiveboardContent" - }, - "description": "Data content of metadata objects" - } - } - }, - "LiveboardContent": { - "type": "object", - "required": [ - "available_data_row_count", - "column_names", - "data_rows", - "record_offset", - "record_size", - "returned_data_row_count", - "sampling_ratio" - ], - "properties": { - "available_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total available data row count." - }, - "column_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Name of the columns." - }, - "data_rows": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Rows of data set." - }, - "record_offset": { - "type": "integer", - "format": "int32", - "description": "The starting record number from where the records should be included." - }, - "record_size": { - "type": "integer", - "format": "int32", - "description": "The number of records that should be included." - }, - "returned_data_row_count": { - "type": "integer", - "format": "int32", - "description": "Total returned data row count." - }, - "sampling_ratio": { - "type": "number", - "format": "float", - "description": "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." - }, - "visualization_id": { - "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true - }, - "visualization_name": { - "type": "string", - "description": "Name of the visualization.", - "nullable": true - } - } - }, - "AnswerDataResponse": { - "type": "object", - "required": [ - "metadata_id", - "metadata_name", - "contents" - ], - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "contents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnswerContent" - }, - "description": "Data content of metadata objects" - } - }, - "description": "Response format associated with fetch data api" - }, - "LogResponse": { - "type": "object", - "required": [ - "date", - "log" - ], - "properties": { - "date": { - "type": "string", - "description": "Date timestamp of the log entry" - }, - "log": { - "type": "string", - "description": "Log data" - } - } - }, - "RepoConfigObject": { - "type": "object", - "properties": { - "repository_url": { - "type": "string", - "description": "Remote repository URL configured", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true - }, - "commit_branch_name": { - "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches that have been pulled in local repository", - "nullable": true - }, - "enable_guid_mapping": { - "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true - }, - "configuration_branch_name": { - "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true - }, - "org": { - "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true - } - } - }, - "CommitHistoryResponse": { - "type": "object", - "required": [ - "committer", - "author", - "comment", - "commit_time", - "commit_id", - "branch" - ], - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit" - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed." - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit" - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed" - } - } - }, - "CommiterType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "AuthorType": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email id of the committer", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username of the committer", - "nullable": true - } - } - }, - "ConnectionInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true - }, - "name_pattern": { - "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true - }, - "data_warehouse_objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataWarehouseObjectInput" - }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true - } - } - }, - "DataWarehouseObjectInput": { - "type": "object", - "properties": { - "database": { - "type": "string", - "description": "Name of the database.", - "nullable": true - }, - "schema": { - "type": "string", - "description": "Name of the schema within the database.", - "nullable": true - }, - "table": { - "type": "string", - "description": "Name of the table within the schema.", - "nullable": true - }, - "column": { - "type": "string", - "description": "Name of the column within the table.", - "nullable": true - } - } - }, - "SortOptionInput": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "enum": [ - "NAME", - "DISPLAY_NAME", - "AUTHOR", - "CREATED", - "MODIFIED", - "LAST_ACCESSED", - "SYNCED", - "VIEWS", - "USER_STATE", - "ROW_COUNT" - ], - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - } - }, - "SearchConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique ID of the connection." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "description": { - "type": "string", - "description": "Description of the connection.", - "nullable": true - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "data_warehouse_objects": { - "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "DataWarehouseObjects": { - "type": "object", - "required": [ - "databases" - ], - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - }, - "description": "Databases of the connection." - } - } - }, - "Database": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the database." - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaObject" - }, - "description": "Schemas of the database.", - "nullable": true - }, - "auto_created": { - "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true - } - } - }, - "SchemaObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the schema." - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - }, - "description": "Tables in the schema.", - "nullable": true - } - } - }, - "Table": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the table." - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - }, - "description": "Columns of the table.", - "nullable": true - }, - "type": { - "type": "string", - "description": "Type of table. Either view or table", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the table", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "linked": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - }, - "relationships": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of relationships for the table", - "nullable": true - } - } - }, - "Column": { - "type": "object", - "required": [ - "name", - "data_type" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the column" - }, - "data_type": { - "type": "string", - "description": "Data type of the column" - }, - "is_aggregate": { - "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true - }, - "can_import": { - "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true - }, - "selected": { - "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true - }, - "is_linked_active": { - "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true - } - } - }, - "SearchRoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - }, - "description": "Response for search role api should handle hidden privileges as well." - }, - "Default_Action_Config_Search_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ResponseCustomAction": { - "type": "object", - "required": [ - "action_details", - "default_action_config", - "id", - "name" - ], - "properties": { - "action_details": { - "$ref": "#/components/schemas/Action_details", - "description": "`Type` and configuration data for custom actions" - }, - "default_action_config": { - "$ref": "#/components/schemas/Default_action_config", - "description": "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." - }, - "id": { - "type": "string", - "description": "Unique Id of the custom action." - }, - "metadata_association": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata_Association_Item" - }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Unique name of the custom action." - }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Object_ID_And_Name" - }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true - } - }, - "description": "Custom action details" - }, - "Action_details": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Type and Configuration for Custom Actions" - }, - "CALLBACK": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URL": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItem" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Authentication": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_Key": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_Auth": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true - } - } - }, - "Default_action_config": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "Metadata_Association_Item": { - "type": "object", - "required": [ - "action_config", - "identifier", - "type" - ], - "properties": { - "action_config": { - "$ref": "#/components/schemas/Action_config", - "description": "Specify that the association is enabled for the metadata object" - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - }, - "type": { - "type": "string", - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." - } - } - }, - "Action_config": { - "type": "object", - "properties": { - "position": { - "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object" - }, - "CustomActionMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Custom Action API's" - }, - "GenericInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "UserGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - } - }, - "JWT_User_Options": { - "type": "object", - "properties": { - "parameters": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Runtime_Filter" - }, - { - "$ref": "#/components/schemas/Runtime_Sort" - }, - { - "$ref": "#/components/schemas/Runtime_Param_Override" - } - ] - } - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" - }, - "JWT_Parameter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true - }, - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true - }, - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "JWT_Metadata_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ], - "nullable": true - } - }, - "description": "Metadata objects." - }, - "User_Parameter_Options": { - "type": "object", - "properties": { - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "nullable": true - }, - "runtime_filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - }, - "description": "Objects to apply the User_Runtime_Filters.\n\nExamples to set the `runtime_filters` :\n```json\n{ \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false }\n```", - "nullable": true - }, - "runtime_sorts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - }, - "description": "Objects to apply the User_Runtime_Sorts.\n\nExamples to set the `runtime_sorts` :\n```json\n{ \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false }\n```", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Parameters" - }, - "description": "Objects to apply the Runtime_Parameters.\n\nExamples to set the `parameters` :\n```json\n{ \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false }\n```", - "nullable": true - } - }, - "description": "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).\n" - }, - "User_Object": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects to apply the User_Object." - }, - "User_Runtime_Filters": { - "type": "object", - "required": [ - "column_name", - "values", - "operator" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Value of the filters." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "GE", - "GT", - "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", - "BW", - "BW_INC", - "BW_INC_MAX", - "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" - ], - "description": "Operator value. Example: EQ" - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime filter.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Filters." - }, - "User_Runtime_Sorts": { - "type": "object", - "properties": { - "column_name": { - "type": "string", - "description": "The column name to apply filter.", - "nullable": true - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "Order for the sort.", - "nullable": true - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime sort.", - "nullable": true - } - }, - "description": "Objects to apply the User_Runtime_Sorts." - }, - "User_Parameters": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of values." - }, - "persist": { - "type": "boolean", - "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User_Object" - }, - "description": "Object to apply the runtime parameter.", - "nullable": true - } - }, - "description": "Objects to apply the Runtime_Parameters." - }, - "Token": { - "type": "object", - "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "valid_for_username" - ], - "properties": { - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "valid_for_username": { - "type": "string", - "description": "Unique identifier of the user to whom the token is issued." - } - } - }, - "Scope": { - "type": "object", - "required": [ - "access_type" - ], - "properties": { - "access_type": { - "type": "string", - "description": "Object access scope type." - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true - }, - "metadata_id": { - "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true - } - } - }, - "JWT_User_Options_Full": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true - } - }, - "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" - }, - "TokenValidationResponse": { - "type": "object", - "required": [ - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_user_id", - "token_type" - ], - "properties": { - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - }, - "scope": { - "$ref": "#/components/schemas/Scope", - "description": "Token access scope details" - }, - "valid_for_user_id": { - "type": "string", - "description": "Username to whom the token is issued." - }, - "token_type": { - "type": "string", - "description": "Type of token." - } - } - }, - "ResponseActivationURL": { - "type": "object", - "properties": { - "activation_link": { - "type": "string", - "description": "Activation link to activate the user.", - "nullable": true - } - }, - "description": "The object representation with activation link." - }, - "ImportUser": { - "type": "object", - "required": [ - "user_identifier", - "display_name" - ], - "properties": { - "user_identifier": { - "type": "string", - "description": "Unique ID or name of the user." - }, - "display_name": { - "type": "string", - "description": "Display name of the user." - }, - "password": { - "type": "string", - "description": "Password of the user.", - "nullable": true - }, - "account_type": { - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ], - "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true - }, - "account_status": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ], - "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true - }, - "email": { - "type": "string", - "description": "Email address of the user.", - "nullable": true - }, - "org_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true - }, - "group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true - }, - "notify_on_share": { - "type": "boolean", - "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true - }, - "show_onboarding_experience": { - "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true - }, - "onboarding_experience_completed": { - "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true - }, - "home_liveboard_identifier": { - "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true - }, - "favorite_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true - } - } - }, - "ImportUsersResponse": { - "type": "object", - "properties": { - "users_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - }, - "users_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true - } - } - }, - "ImportUserType": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the user.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the user." - } - } - }, - "TagMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n 1. LIVEBOARD\n 2. ANSWERS\n 3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n 4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." - } - } - }, - "GroupsImportListInput": { - "type": "object", - "required": [ - "display_name", - "group_identifier" - ], - "properties": { - "display_name": { - "type": "string", - "description": "Unique display name of the group." - }, - "group_identifier": { - "type": "string", - "description": "Unique ID or name of the group." - }, - "default_liveboard_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Description of the group.", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - }, - "description": "Privileges that will be assigned to the group.", - "nullable": true - }, - "sub_group_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ], - "description": "Type of the group.", - "nullable": true - }, - "user_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true - }, - "visibility": { - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true - } - } - }, - "ImportUserGroupsResponse": { - "type": "object", - "required": [ - "groups_added", - "groups_deleted", - "groups_updated" - ], - "properties": { - "groups_added": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are added into the system." - }, - "groups_deleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are deleted from the system." - }, - "groups_updated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - }, - "description": "The groups which are updated in the system." - } - } - }, - "ResponseCopyObject": { - "type": "object", - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - } - } - }, - "ExportMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CONNECTION", - "CUSTOM_ACTION", - "USER", - "USER_GROUP", - "ROLE" - ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Export MetadataType API" - }, - "DeleteMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "LOGICAL_RELATIONSHIP" - ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Delete MetadataType API" - }, - "AuthorMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - }, - "description": "MetadataType InputType used in Author API's" - }, - "ShareMetadataTypeInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": " Type of metadata.\n \n\nType 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.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "SharePermissionsInput": { - "type": "object", - "required": [ - "principal", - "share_mode" - ], - "properties": { - "principal": { - "$ref": "#/components/schemas/PrincipalsInput", - "description": "Details of users or groups." - }, - "share_mode": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Type of access to the shared object" - } - } - }, - "MetadataObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata" - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" - ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - } - } - }, - "CommitResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - } - } - }, - "CommitFileType": { - "type": "object", - "required": [ - "file_name", - "status_code" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "RevertResponse": { - "type": "object", - "properties": { - "committer": { - "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true - }, - "author": { - "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true - }, - "comment": { - "type": "string", - "description": "Comments associated with the commit", - "nullable": true - }, - "commit_time": { - "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true - }, - "commit_id": { - "type": "string", - "description": "SHA id associated with the commit", - "nullable": true - }, - "branch": { - "type": "string", - "description": "Branch where changes were committed", - "nullable": true - }, - "committed_files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CommitFileType" - }, - "description": "Files that were pushed as part of this commit", - "nullable": true - }, - "reverted_metadata": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RevertedMetadata" - }, - "description": "Metadata of reverted file of this commit", - "nullable": true - } - } - }, - "RevertedMetadata": { - "type": "object", - "required": [ - "file_name", - "metadata_name", - "metadata_type", - "status_code", - "status_message" - ], - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed" - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object" - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object" - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file" - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment" - } - } - }, - "DeployResponse": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "Name of the file deployed", - "nullable": true - }, - "metadata_name": { - "type": "string", - "description": "Name of the metadata object", - "nullable": true - }, - "metadata_type": { - "type": "string", - "description": "Type of the metadata object", - "nullable": true - }, - "status_code": { - "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true - }, - "status_message": { - "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true - } - } - }, - "CreateConnectionResponse": { - "type": "object", - "required": [ - "id", - "name", - "data_warehouse_type" - ], - "properties": { - "id": { - "type": "string", - "description": "ID of the connection created." - }, - "name": { - "type": "string", - "description": "Name of the connection." - }, - "data_warehouse_type": { - "type": "string", - "enum": [ - "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" - ], - "description": "Type of data warehouse." - }, - "details": { - "type": "object", - "description": "Details of the connection.", - "nullable": true - } - } - }, - "FetchConnectionDiffStatusResponse": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true - } - } - }, - "RoleResponse": { - "type": "object", - "required": [ - "id", - "name", - "description", - "privileges" - ], - "properties": { - "id": { - "type": "string", - "description": "Unique Id of the role." - }, - "name": { - "type": "string", - "description": "Name of the role" - }, - "description": { - "type": "string", - "description": "Description of the role" - }, - "groups_assigned_count": { - "type": "integer", - "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true - }, - "orgs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Orgs in which role exists.", - "nullable": true - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GenericInfo" - }, - "description": "Details of groups assigned with this role", - "nullable": true - }, - "privileges": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - }, - "description": "Privileges granted to the role." - }, - "permission": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ], - "description": "Permission details of the Role", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true - }, - "modifier_id": { - "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true - }, - "creation_time_in_millis": { - "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true - }, - "modification_time_in_millis": { - "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true - }, - "deleted": { - "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true - }, - "deprecated": { - "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true - }, - "external": { - "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true - }, - "hidden": { - "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true - }, - "shared_via_connection": { - "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true - } - } - }, - "LiveboardOptionsInput": { - "type": "object", - "required": [ - "visualization_identifiers" - ], - "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." - } - }, - "description": "Options to specify details of Liveboard." - }, - "SchedulesPdfOptionsInput": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true - }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true - }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true - }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true - }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true - }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "FrequencyInput": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpressionInput", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpressionInput": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "RecipientDetailsInput": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Emails of the recipients.", - "nullable": true - }, - "principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsListItemInput" - }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true - } - }, - "description": "Recipients of the scheduled job notification." - }, - "PrincipalsListItemInput": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type." - } - } - }, - "ResponseSchedule": { - "type": "object", - "required": [ - "author", - "creation_time_in_millis", - "file_format", - "frequency", - "id", - "metadata", - "name", - "recipient_details", - "time_zone" - ], - "properties": { - "author": { - "$ref": "#/components/schemas/Author", - "description": "Author of the schedule." - }, - "creation_time_in_millis": { - "type": "object", - "description": "Schedule creation time in milliseconds." - }, - "description": { - "type": "string", - "description": "Description of the job.", - "nullable": true - }, - "file_format": { - "type": "string", - "description": "Export file format." - }, - "frequency": { - "$ref": "#/components/schemas/Frequency", - "description": "Configuration of schedule with cron expression" - }, - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "liveboard_options": { - "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true - }, - "metadata": { - "$ref": "#/components/schemas/MetadataResponse", - "description": "Unique ID or name of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the scheduled job." - }, - "pdf_options": { - "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true - }, - "recipient_details": { - "$ref": "#/components/schemas/RecipientDetails", - "description": "Recipient of the scheduled job notifications." - }, - "status": { - "type": "string", - "description": "Status of the job", - "nullable": true - }, - "time_zone": { - "type": "string", - "description": "Time zone" - }, - "history_runs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseScheduleRun" - }, - "description": "Schedule runs history records.", - "nullable": true - } - } - }, - "Author": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the object." - }, - "name": { - "type": "string", - "description": "Name of the object." - } - }, - "description": "Author of the schedule." - }, - "Frequency": { - "type": "object", - "required": [ - "cron_expression" - ], - "properties": { - "cron_expression": { - "$ref": "#/components/schemas/CronExpression", - "description": "Schedule selected cron expression." - } - }, - "description": "Configuration of schedule with cron expression" - }, - "CronExpression": { - "type": "object", - "required": [ - "day_of_month", - "day_of_week", - "hour", - "minute", - "month", - "second" - ], - "properties": { - "day_of_month": { - "type": "string", - "description": "Day of month of the object." - }, - "day_of_week": { - "type": "string", - "description": "Day of Week of the object." - }, - "hour": { - "type": "string", - "description": "Hour of the object." - }, - "minute": { - "type": "string", - "description": "Minute of the object." - }, - "month": { - "type": "string", - "description": "Month of the object." - }, - "second": { - "type": "string", - "description": "Second of the object." - } - }, - "description": "Schedule selected cron expression." - }, - "LiveboardOptions": { + } + }, + "components": { + "schemas": { + "ErrorResponse": { "type": "object", - "required": [ - "visualization_identifiers" - ], "properties": { - "visualization_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique ID or name of visualizations." + "error": { + "type": "object" } - }, - "description": "Options to specify details of Liveboard." + } }, - "MetadataResponse": { + "User": { "type": "object", "required": [ "id", - "type" + "name", + "display_name", + "account_type", + "account_status", + "email", + "creation_time_in_millis", + "first_login_time_in_millis" ], "properties": { - "name": { - "type": "string", - "nullable": true - }, "id": { "type": "string" }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ] - } - } - }, - "PdfOptions": { - "type": "object", - "properties": { - "complete_liveboard": { - "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true - }, - "include_cover_page": { - "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true - }, - "include_custom_logo": { - "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true - }, - "include_filter_page": { - "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "name": { + "type": "string" }, - "include_page_number": { - "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "display_name": { + "type": "string" }, - "page_footer_text": { - "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "account_type": { + "type": "string" }, - "page_orientation": { - "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "account_status": { + "type": "string" }, - "page_size": { - "type": "string", - "enum": [ - "A4" - ], - "description": "Page size.", - "nullable": true + "email": { + "type": "string" }, - "truncate_table": { - "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true - } - }, - "description": "Options for PDF export." - }, - "RecipientDetails": { - "type": "object", - "properties": { - "emails": { + "user_groups": { "type": "array", "items": { - "type": "string" - }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "$ref": "#/components/schemas/UserGroup" + } }, - "principals": { + "privileges": { "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsListItem" - }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true - } - }, - "description": "Recipient configuration which includes email address, ID or name of the users and groups." - }, - "PrincipalsListItem": { - "type": "object", - "required": [ - "identifier", - "type" - ], - "properties": { - "identifier": { - "type": "string", - "description": "Unique ID or name of the user or group." - }, - "type": { - "type": "string", - "description": "Principal type. Valid values are" - } - } - }, - "ResponseScheduleRun": { - "type": "object", - "required": [ - "id", - "start_time_in_millis", - "end_time_in_millis", - "status" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the scheduled job." - }, - "start_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run start time in milliseconds." - }, - "end_time_in_millis": { - "type": "integer", - "format": "int32", - "description": "Schedule run end time in milliseconds." - }, - "status": { - "type": "string", - "description": "Status of the schedule run." - }, - "detail": { - "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true - } - }, - "description": "Schedule run response object" - }, - "MetadataInput": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "enum": [ - "LIVEBOARD" - ], - "nullable": true - } - } - }, - "SortingOptions": { - "type": "object", - "properties": { - "field_name": { - "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true - }, - "order": { - "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true - } - }, - "description": "Sort options." - }, - "ScheduleHistoryRunsOptionsInput": { - "type": "object", - "properties": { - "include_history_runs": { - "type": "boolean", - "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "type": "string" + } }, - "record_size": { + "creation_time_in_millis": { "type": "integer", - "format": "int32", - "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "format": "int32" }, - "record_offset": { + "first_login_time_in_millis": { "type": "integer", - "format": "int32", - "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true - } - } - }, - "Action_Details_Input_Create": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" - }, - "CALLBACKInputMandatory": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInputMandatory": { - "type": "object", - "required": [ - "url" - ], - "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "format": "int32" }, - "parameters": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true - }, - "url": { - "type": "string", - "description": "Request Url for the Custom action." - }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "AuthenticationInput": { - "type": "object", - "properties": { - "API_Key": { - "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true - }, - "Basic_Auth": { - "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true - }, - "Bearer_Token": { - "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true - }, - "No_Auth": { - "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true - } - }, - "description": "Authorization type for the custom action." - }, - "API_KeyInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Enter your key name", - "nullable": true - }, - "value": { - "type": "string", - "description": "Enter you key value", - "nullable": true - } - }, - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." - }, - "Basic_AuthInput": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "Password for the basic authentication", - "nullable": true - }, - "username": { - "type": "string", - "description": "Username for the basic authentication", - "nullable": true - } - }, - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." - }, - "ParametersListItemInput": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key for the url query parameter", - "nullable": true - }, - "value": { - "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "type": "string" + } } } }, - "Associate_Metadata_Input_Create": { + "RiseSetter": { "type": "object", "required": [ - "identifier" + "field", + "path" ], "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata." + "field": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "path": { + "type": "string" } } }, - "ActionConfigInputCreate": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input_Create": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true - } - }, - "description": "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." - }, - "Action_Details_Input": { - "type": "object", - "properties": { - "CALLBACK": { - "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true - }, - "URL": { - "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true - } - }, - "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." - }, - "CALLBACKInput": { - "type": "object", - "properties": { - "reference": { - "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true - } - }, - "description": "CALLBACK Custom Action Type" - }, - "URLInput": { + "Token": { "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_userid", + "valid_for_username" + ], "properties": { - "authentication": { - "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "token": { + "type": "string" }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParametersListItemInput" - }, - "description": "Query parameters for url.", - "nullable": true + "creation_time_in_millis": { + "type": "integer", + "format": "int32" }, - "url": { - "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "expiration_time_in_millis": { + "type": "integer", + "format": "int32" }, - "reference": { - "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true - } - }, - "description": "URL Custom Action Type" - }, - "Associate_Metadata_Input": { - "type": "object", - "properties": { - "action_config": { - "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "scope": { + "$ref": "#/components/schemas/Scope" }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "valid_for_userid": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISUALIZATION", - "ANSWER", - "WORKSHEET" - ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "valid_for_username": { + "type": "string" } } }, - "ActionConfigInput": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "MENU", - "PRIMARY", - "CONTEXT_MENU" - ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true - }, - "visibility": { - "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true - } - }, - "description": "Specify that the association is enabled for the metadata object Default" - }, - "Default_Action_Config_Input": { - "type": "object", - "properties": { - "visibility": { - "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true - } - }, - "description": "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." - }, - "ModelTableList": { + "UserGroup": { "type": "object", "required": [ - "model_name", - "tables" + "name", + "id" ], "properties": { - "model_name": { - "type": "string", - "description": "Name of the Model." - }, - "model_path": { - "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "name": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of Tables." + "id": { + "type": "string" } } }, - "DbtSearchResponse": { + "Scope": { "type": "object", + "required": [ + "access_type" + ], "properties": { - "dbt_connection_identifier": { - "type": "string", - "nullable": true - }, - "project_name": { - "type": "string", - "nullable": true - }, - "connection_id": { - "type": "string", - "nullable": true - }, - "connection_name": { - "type": "string", - "nullable": true - }, - "cdw_database": { - "type": "string", - "nullable": true + "access_type": { + "type": "string" }, - "import_type": { - "type": "string", - "nullable": true + "organisation_id": { + "type": "integer", + "format": "int32" }, - "author_name": { - "type": "string", - "nullable": true + "metadata_id": { + "type": "string" } } - }, - "Runtime_Filter": { - "type": "object", - "properties": { - "runtime_filter": { - "type": "object", - "description": "Runtime filter parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Sort": { - "type": "object", - "properties": { - "runtime_sort": { - "type": "object", - "description": "Runtime sort parameter type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." - }, - "Runtime_Param_Override": { - "type": "object", - "properties": { - "runtime_param_override": { - "type": "object", - "description": "Runtime param override type in JWT." - } - }, - "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { From 689f7f90c12cf6b5fe34c88fc97e97e077515dd7 Mon Sep 17 00:00:00 2001 From: Prashant Patil <141843298+yinstardev@users.noreply.github.com> Date: Tue, 10 Sep 2024 07:18:47 +0530 Subject: [PATCH 176/410] temp fix for the playground sdk (#164) --- api-spec/openapiSpecv3-2_0.json | 16068 +++++++++++++++++++++++++++++- 1 file changed, 15787 insertions(+), 281 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2e5c7fec7..b88fecbbd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4,18 +4,118 @@ "title": "ThoughtSpot Public REST API", "version": "2.0" }, + "x-roles": [ + { + "name": "9.0.0.cl", + "id": "9.0.0.cl", + "tags": [ + "9.0.0.cl" + ], + "description": "Roles for version 9.0.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" + }, + { + "name": "9.2.0.cl", + "id": "9.2.0.cl", + "tags": [ + "9.2.0.cl" + ], + "description": "Roles for version 9.2.0.cl" + }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" + }, + { + "name": "10.3.0.cl", + "id": "10.3.0.cl", + "tags": [ + "10.3.0.cl" + ], + "description": "Roles for version 10.3.0.cl" + }, + { + "name": "10.0.0.cl", + "id": "10.0.0.cl", + "tags": [ + "10.0.0.cl" + ], + "description": "Roles for version 10.0.0.cl" + }, + { + "name": "9.9.0.cl", + "id": "9.9.0.cl", + "tags": [ + "9.9.0.cl" + ], + "description": "Roles for version 9.9.0.cl" + }, + { + "name": "9.5.0.cl", + "id": "9.5.0.cl", + "tags": [ + "9.5.0.cl" + ], + "description": "Roles for version 9.5.0.cl" + }, + { + "name": "9.4.0.cl", + "id": "9.4.0.cl", + "tags": [ + "9.4.0.cl" + ], + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.6.0.cl", + "id": "9.6.0.cl", + "tags": [ + "9.6.0.cl" + ], + "description": "Roles for version 9.6.0.cl" + } + ], "tags": [], "paths": { - "/api/2.0/rest/auth/session/user": { + "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "Get Session object information", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.0.0.cl" ], "parameters": [], "responses": { "200": { + "description": "Fetch current session user detail successful.", "content": { "application/json": { "schema": { @@ -24,8 +124,8 @@ } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -33,59 +133,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/login": { - "post": { - "operationId": "login", - "description": "You can programmatically create login session for a user in ThoughtSpot using this endpoint. \n\nYou can create session by either providing userName and password as inputs in this request body or by including \"Authorization\" header with the token generated through the endpoint /tspublic/rest/v2/session/gettoken. \n\nuserName and password input is given precedence over \"Authorization\" header, when both are included in the request.", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "type": "string", - "deprecated": false - }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, sets a session cookie that persists in subsequent API calls.", - "type": "boolean", - "deprecated": false - } - }, - "required": [ - "username", - "password" - ] + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -97,76 +167,58 @@ } } }, - "/api/2.0/rest/v2/auth/token/object": { - "post": { - "operationId": "getObjectAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "/api/rest/2.0/auth/session/token": { + "get": { + "operationId": "getCurrentUserToken", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Authentication", + "9.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username of the user account", - "type": "string", - "deprecated": false - }, - "password": { - "description": "The password of the user account", - "default": "", - "type": "string", - "deprecated": false - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", - "type": "string", - "deprecated": false - }, - "object_id": { - "description": "GUID of the ThoughtSpot object. If set, the bearer will only have access to the specified Liveboard or another object.", - "type": "string", - "deprecated": false - }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false - }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", - "default": 0, - "type": "integer", - "format": "int32", - "deprecated": false - } - }, - "required": [ - "username", - "object_id" - ] - } - } - } - }, + "parameters": [], "responses": { "200": { + "description": "Fetching token for current user successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "$ref": "#/components/schemas/GetTokenResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -178,12 +230,13 @@ } } }, - "/api/2.0/rest/v2/auth/token/full": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "getFullAccessToken", - "description": " To programmatically create session token for a user in ThoughtSpot, use this endpoint. \n\nYou can generate the token for a user by providing password or secret key from the cluster. \n\nYou need to enable trusted authentication to generate secret key. To generate secret key, follow below steps. \n\n\n 1. Click the Develop tab. \n\n\n 2. Under Customizations, click Settings. \n\n\n 3. To enable trusted authentication, turn on the toggle. \n\n\n 4. A secret_key for trusted authentication is generated. \n\n\n 5. Click the clipboard icon to copy the token. \n\n\n \n\nPassword is given precedence over secretKey input, when both are included in the request.", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -191,57 +244,193 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the user account", + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", "type": "string", - "deprecated": false + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "password": { - "description": "The password of the user account", - "default": "", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", "type": "string", - "deprecated": false + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates this secret key when you enable trusted authentication.", - "default": "", + "account_status": { + "description": "Current status of the user account.", "type": "string", - "deprecated": false + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "validity_time_in_sec": { - "description": "Duration in seconds after which the token expires", - "default": 300, - "type": "integer", - "format": "int32", - "deprecated": false + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", + "type": "array", + "items": { + "type": "string" + } }, - "organization_id": { - "description": "Id of the organization to be associated with the user login. If no input is provided then last logged in organization will be considered", + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", "default": 0, "type": "integer", - "format": "int32", - "deprecated": false + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "username" - ] + } } } - } + }, + "required": true }, + "parameters": [], "responses": { "200": { + "description": "User search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } } } } }, - "500": { - "description": "Operation failed", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -249,39 +438,29 @@ } } } - } - } - } - }, - "/api/2.0/rest/auth/session/logout": { - "post": { - "operationId": "logout", - "description": "To log a user out of the current session, use this endpoint", - "tags": [ - "Auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } } - } - }, - "responses": { - "200": { + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -293,48 +472,87 @@ } } }, - "/api/2.0/rest/v2/auth/token/revoke": { - "post": { - "operationId": "revokeToken", - "description": "To expire or revoke a token for a user, use this endpoint", + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Auth" + "System", + "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "type": "string", - "deprecated": false - }, - "token": { - "type": "string", - "deprecated": false - } + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" }, - "required": [ - "username", - "token" - ] + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } } } - } - }, - "responses": { - "200": { + }, + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -345,157 +563,15445 @@ } } } - } - }, - "components": { - "schemas": { - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "object" - } + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/search": { + "post": { + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/search": { + "post": { + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "display_name": { + "description": "Display name of the group", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", + "type": "string" + }, + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" + }, + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/search": { + "post": { + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataListItemInput" + } + }, + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "allOf": [ + { + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + } + ] + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "allOf": [ + { + "$ref": "#/components/schemas/MetadataSearchSortOptions" + } + ] + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/async/status": { + "post": { + "operationId": "fetchAsyncImportTaskStatus", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "task_ids": { + "description": "List of task IDs to fetch status for.", + "type": "array", + "items": { + "type": "string" + } + }, + "task_status": { + "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ] + } + }, + "author_identifier": { + "description": "Author GUID or name of async import tasks to filter on.", + "type": "string" + }, + "record_offset": { + "description": "The offset point, starting from where the task status should be included in the response.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of task statuses that should be included in the response starting from offset position.", + "default": 5, + "type": "integer", + "format": "int32" + }, + "include_import_response": { + "description": "Boolean flag to specify whether to include import response in the task status objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task statuses fetched successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAsyncImportStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/sql": { + "post": { + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/sql": { + "post": { + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID or name of an Answer.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/liveboard": { + "post": { + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "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).", + "type": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "allOf": [ + { + "$ref": "#/components/schemas/PdfOptionsInput" + } + ] + }, + "png_options": { + "description": "Options for PNG export.", + "allOf": [ + { + "$ref": "#/components/schemas/PngOptionsInput" + } + ] + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/report/answer": { + "post": { + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Reports", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "
Version: 10.3.0.cl or later
\n\nSpecifies the type of permission. Valid values are:\n EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong.\n DEFINED - If a user or user group received access to metadata objects via object sharing by another user.", + "type": "string" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/logs/fetch": { + "post": { + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Log", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/search": { + "post": { + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Details of local repository configuration", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/search": { + "post": { + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ] + }, + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", + "type": "string" + }, + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Commit history of the metadata object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/search": { + "post": { + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "description": "List of connections and name pattern", + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionInput" + } + }, + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" + ] + }, + "sort_options": { + "description": "Sort options.", + "allOf": [ + { + "$ref": "#/components/schemas/SortOptionInput" + } + ] + }, + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", + "type": "object" + }, + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of connections to the datasource.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/search": { + "post": { + "operationId": "searchRoles", + "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_identifiers": { + "description": "unique ID or name of the Roles", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Roles search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + } + ] + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "items": { + "type": "string" + } + }, + "user_parameters": { + "description": "
Version: 9.10.5.cl or 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": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "items": { + "type": "string" + } + }, + "user_parameters": { + "description": "
Version: 9.10.5.cl or 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": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/auth/session/logout": { + "post": { + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/validate": { + "post": { + "operationId": "validateToken", + "description": " Version: 9.12.0.cl or later", + "tags": [ + "Authentication", + "9.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Token validation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenValidationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "Flag to indicate whether activation email should be sent to user.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/update": { + "post": { + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/reset-password": { + "post": { + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password reset operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "base_url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/create": { + "post": { + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org.", + "type": "string" + }, + "description": { + "description": "Description of the Org.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Organization successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + }, + "examples": { + "example_1": { + "value": { + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/update": { + "post": { + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Add Default Groups to an Org", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/orgs/{org_identifier}/delete": { + "post": { + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Orgs", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], + "responses": { + "204": { + "description": "Organization successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/create": { + "post": { + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" + }, + "display_name": { + "description": "Display name for the group.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "display_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User group successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserGroupResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/update": { + "post": { + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the group to modify.", + "type": "string" + }, + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description for the group.", + "type": "string" + }, + "display_name": { + "description": "Display name of the group.", + "type": "string" + }, + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/{group_identifier}/delete": { + "post": { + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], + "responses": { + "204": { + "description": "User group successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/groups/import": { + "post": { + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Groups", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } + }, + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/import": { + "post": { + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "if we should skip CDW validation for table imports.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import metadata objects using specified TMLs is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/async/import": { + "post": { + "operationId": "importMetadataTMLAsync", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "if we should skip CDW validation for table imports.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task submitted successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export": { + "post": { + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExportMetadataTypeInput" + } + }, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", + "default": false, + "type": "boolean", + "nullable": true + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] + }, + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true + }, + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/tml/export/batch": { + "post": { + "operationId": "exportMetadataTMLBatched", + "description": " Version: 10.1.0.cl or later", + "tags": [ + "Metadata", + "10.1.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", + "type": "string", + "enum": [ + "USER", + "USER_GROUP", + "ROLE" + ] + }, + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", + "type": "string", + "enum": [ + "JSON", + "YAML" + ] + }, + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Export TMLs of specified metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/delete": { + "post": { + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } + }, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Metadata objects successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/copyobject": { + "post": { + "operationId": "copyObject", + "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of the metadata object specified in the API request.\n\nRequires create access to metadata objects\n\nUpon successful execution, the API returns the id of the new object which is copied from the given object.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "10.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "description": "Description of the new object", + "type": "string" + }, + "identifier": { + "description": "GUID of metadata object to be copied (answer id or liveboard id)", + "type": "string" + }, + "type": { + "description": "Type of metadata object", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ] + }, + "title": { + "description": "Title of the new object", + "type": "string" + } + }, + "required": [ + "identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully created a copy of the object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCopyObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Object not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "emails", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/create": { + "post": { + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repository_url": { + "description": "URL for connecting to remote repository", + "type": "string" + }, + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" + } + }, + "required": [ + "repository_url", + "username", + "access_token" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully configured local repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/update": { + "post": { + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username to authenticate connection to version control system", + "type": "string" + }, + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully updated local repository configuration", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoConfigObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/config/delete": { + "post": { + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully deleted local repository configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/commit": { + "post": { + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true + }, + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "comment": { + "description": "Comment to be added to the commit", + "type": "string" + } + }, + "required": [ + "metadata", + "comment" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully committed the metadata objects", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { + "post": { + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "commit_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "Commit id to which the object should be reverted" + } + ], + "responses": { + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/branches/validate": { + "post": { + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", + "type": "string" + }, + "target_branch_name": { + "description": "Name of the branch where files will be merged", + "type": "string" + } + }, + "required": [ + "source_branch_name", + "target_branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "validation done successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/vcs/git/commits/deploy": { + "post": { + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Version Control", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully deployed the changes", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/create": { + "post": { + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the connection.", + "type": "string" + }, + "description": { + "description": "Description of the connection.", + "type": "string" + }, + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] + }, + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" + }, + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection to the datasource successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectionResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/delete": { + "post": { + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/delete/{connection_identifier}": { + "post": { + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection/update": { + "post": { + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/update/{connection_identifier}": { + "post": { + "operationId": "updateConnectionV2", + "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "10.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Updated name of the connection.", + "type": "string" + }, + "description": { + "description": "Updated description of the connection.", + "type": "string" + }, + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" + }, + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], + "responses": { + "204": { + "description": "Connection successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { + "post": { + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "true/false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { + "post": { + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } + ], + "responses": { + "200": { + "description": "Export metadata changes.", + "content": { + "application/octet-stream": {} + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/create": { + "post": { + "operationId": "createRole", + "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/update": { + "post": { + "operationId": "updateRole", + "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + } + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "200": { + "description": "Role successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/roles/{role_identifier}/delete": { + "post": { + "operationId": "deleteRole", + "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "tags": [ + "Roles", + "9.5.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], + "responses": { + "204": { + "description": "Role successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/create": { + "post": { + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of the metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "default": "PDF", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] + }, + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] + }, + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency settings for the scheduled job.", + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] + }, + "recipient_details": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] + } + }, + "required": [ + "name", + "description", + "metadata_type", + "metadata_identifier", + "time_zone", + "recipient_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/delete": { + "post": { + "operationId": "deleteSchedule", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the scheduled job." + } + ], + "responses": { + "204": { + "description": "Schedule successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/search": { + "post": { + "operationId": "searchSchedules", + "description": "\nSearch Schedules
Version: 9.4.0.cl or later\n\nGets a list of scheduled jobs configured for a Liveboard.\n\nTo get details of a specific scheduled job, specify the name or GUID of the scheduled job.\n\nRequires at least view access to Liveboards.\n\n**NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects associated with the scheduled jobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "allOf": [ + { + "$ref": "#/components/schemas/SortingOptions" + } + ] + }, + "history_runs_options": { + "description": "Options while fetching history runs for the schedule.", + "allOf": [ + { + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + } + ] + }, + "schedule_identifiers": { + "description": "unique ID or name of the Schedule", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Schedule search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSchedule" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/schedules/{schedule_identifier}/update": { + "post": { + "operationId": "updateSchedule", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Schedules", + "9.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the scheduled job.", + "type": "string" + }, + "description": { + "description": "Description of the scheduled job.", + "type": "string" + }, + "metadata_type": { + "description": "Type of metadata object.", + "type": "string", + "enum": [ + "LIVEBOARD" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" + }, + "file_format": { + "description": "Export file format.", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX" + ] + }, + "liveboard_options": { + "description": "Options to specify the details of a Liveboard.", + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] + }, + "pdf_options": { + "description": "Options for PDF export.", + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] + }, + "time_zone": { + "description": "Time zone", + "type": "string", + "enum": [ + "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" + ] + }, + "frequency": { + "description": "Frequency of the scheduled job run.", + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] + }, + "recipient_details": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions": { + "post": { + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input_Create" + } + ] + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" + } + }, + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + } + ] + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "action_details" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCustomAction" + }, + "examples": { + "example_1": { + "value": { + "action_details": { + "CALLBACK": { + "reference": "customaction" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input" + } + ] + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input" + } + ] + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/dbt-connection": { + "post": { + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "connection_name", + "database_name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Succesfully created DBT Connection.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-tml": { + "post": { + "operationId": "dbtGenerateTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", + "type": "string", + "enum": [ + "ALL", + "NONE", + "SELECTED" + ] + }, + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier", + "import_worksheets" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/generate-sync-tml": { + "post": { + "operationId": "dbtGenerateSyncTml", + "description": " Version: 9.9.0.cl or later", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Sync Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DbtSearchResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "post": { + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" + }, + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", + "type": "string", + "enum": [ + "DBT_CLOUD", + "ZIP_FILE" + ] + }, + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" + }, + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" + } + }, + "required": [ + "dbt_connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "DBT Connection successfully updated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "nullable": true + } + } + }, + "GetTokenResponse": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "RiseSetter": { + "type": "object", + "required": [ + "field", + "path" + ], + "properties": { + "field": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, + "User": { + "type": "object", + "required": [ + "id", + "name", + "display_name", + "visibility" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user." + }, + "name": { + "type": "string", + "description": "Name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user." + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the user.", + "nullable": true + }, + "can_change_password": { + "type": "boolean", + "description": "Defines whether the user can change their password.", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Defines whether the response has complete detail of the user.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the user in milliseconds.", + "nullable": true + }, + "current_org": { + "$ref": "#/components/schemas/Org", + "description": "Current logged-in Org of the user.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the user is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the user is deprecated.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email of the user.", + "nullable": true + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Expiration time of the user in milliseconds.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the user is external.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataItem" + }, + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true + }, + "first_login_time_in_millis": { + "type": "number", + "format": "float", + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true + }, + "group_mask": { + "type": "integer", + "format": "int32", + "description": "Group mask of the user.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the user is hidden.", + "nullable": true + }, + "home_liveboard": { + "$ref": "#/components/schemas/Object_ID_And_Name", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "incomplete_details": { + "type": "object", + "description": "Incomplete details of user if any present.", + "nullable": true + }, + "is_first_login": { + "type": "boolean", + "description": "Indicates whether it is first login of the user.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the user in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "The user preference for turning off the onboarding experience.", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Org" + }, + "description": "Orgs to which the user belongs.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "Unique identifier of owner of the user.", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the user.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the user.", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true + }, + "super_user": { + "type": "boolean", + "description": "Indicates whether the user is a super user.", + "nullable": true + }, + "system_user": { + "type": "boolean", + "description": "Indicates whether the user is a system user.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Tags associated with the user.", + "nullable": true + }, + "tenant_id": { + "type": "string", + "description": "Unique identifier of tenant of the user.", + "nullable": true + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Groups to which the user is assigned.", + "nullable": true + }, + "user_inherited_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Inherited User Groups which the user is part of.", + "nullable": true + }, + "welcome_email_sent": { + "type": "boolean", + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true + }, + "org_privileges": { + "type": "object", + "description": "Privileges which are assigned to the user with org.", + "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "extended_properties": { + "type": "object", + "description": "Properties for the user", + "nullable": true + }, + "extended_preferences": { + "type": "object", + "description": "Preferences for the user", + "nullable": true + }, + "user_parameters": { + "type": "object", + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + } + } + }, + "Org": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "The current Org context of the user." + }, + "FavoriteMetadataItem": { + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the metadata object." + }, + "name": { + "type": "string", + "description": "name of the metadata object." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." + } + } + }, + "Object_ID_And_Name": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the object.", + "nullable": true + } + }, + "description": "The object representation with ID and Name." + }, + "FavoriteMetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + } + } + }, + "SortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "SystemInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the cluster.", + "nullable": true + }, + "release_version": { + "type": "string", + "description": "The release version of the cluster.", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "The timezone of the cluster.", + "nullable": true + }, + "locale": { + "type": "string", + "description": "The default locale of the cluster.", + "nullable": true + }, + "date_format": { + "type": "string", + "description": "The default date format representation of the cluster.", + "nullable": true + }, + "api_version": { + "type": "string", + "description": "The API version of the cluster.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The deployment type of the cluster.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The deployed environment of the cluster.", + "nullable": true + }, + "license": { + "type": "string", + "description": "The license applied to the cluster.", + "nullable": true + }, + "date_time_format": { + "type": "string", + "description": "The default date time format representation of the cluster.", + "nullable": true + }, + "time_format": { + "type": "string", + "description": "The default time format representation of the cluster.", + "nullable": true + }, + "system_user_id": { + "type": "string", + "description": "The unique identifier of system user.", + "nullable": true + }, + "super_user_id": { + "type": "string", + "description": "The unique identifier of super user.", + "nullable": true + }, + "hidden_object_id": { + "type": "string", + "description": "The unique identifier of hidden object.", + "nullable": true + }, + "system_group_id": { + "type": "string", + "description": "The unique identifier of system group.", + "nullable": true + }, + "tsadmin_user_id": { + "type": "string", + "description": "The unique identifier of tsadmin user.", + "nullable": true + }, + "admin_group_id": { + "type": "string", + "description": "The unique identifier of admin group.", + "nullable": true + }, + "all_tables_connection_id": { + "type": "string", + "description": "The unique identifier of all tables connection.", + "nullable": true + }, + "all_user_group_id": { + "type": "string", + "description": "The unique identifier of ALL group.", + "nullable": true + }, + "accept_language": { + "type": "string", + "description": "The supported accept language by the cluster.", + "nullable": true + }, + "all_user_group_member_user_count": { + "type": "integer", + "format": "int32", + "description": "The count of users of ALL group.", + "nullable": true + }, + "logical_model_version": { + "type": "integer", + "format": "int32", + "description": "The version number of logical model of the cluster.", + "nullable": true + } + } + }, + "SystemConfig": { + "type": "object", + "properties": { + "onboarding_content_url": { + "type": "string", + "nullable": true + } + } + }, + "OrgResponse": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the Org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Org.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ], + "description": "Status of the Org.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the Org.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ], + "description": "Visibility of the Org.", + "nullable": true + } + } + }, + "Tag": { + "type": "object", + "required": [ + "name", + "id" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "color": { + "type": "string", + "nullable": true + }, + "deleted": { + "type": "boolean", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "external": { + "type": "boolean", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "nullable": true + }, + "author_id": { + "type": "string", + "nullable": true + }, + "modifier_id": { + "type": "string", + "nullable": true + }, + "owner_id": { + "type": "string", + "nullable": true + } + } + }, + "UserGroupResponse": { + "type": "object", + "required": [ + "display_name", + "id", + "name", + "visibility" + ], + "properties": { + "author_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "complete_detail": { + "type": "boolean", + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Content details of the group", + "nullable": true + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the group in milliseconds", + "nullable": true + }, + "default_liveboards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the group is deleted", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the group is deprecated", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group", + "nullable": true + }, + "display_name": { + "type": "string", + "description": "Display name of the group." + }, + "external": { + "type": "boolean", + "description": "Indicates whether the group is external", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the group", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the group is hidden", + "nullable": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index number of the group", + "nullable": true + }, + "index_version": { + "type": "integer", + "format": "int32", + "description": "Index version number of the group", + "nullable": true + }, + "metadata_version": { + "type": "integer", + "format": "int32", + "description": "Metadata version number of the group", + "nullable": true + }, + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the group in milliseconds.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group." + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Orgs in which group exists.", + "nullable": true + }, + "owner_id": { + "type": "string", + "description": "The unique identifier of the object", + "nullable": true + }, + "parent_type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ], + "description": "Parent type of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Privileges which are assigned to the group", + "nullable": true + }, + "sub_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Groups who are part of the group", + "nullable": true + }, + "system_group": { + "type": "boolean", + "description": "Indicates whether the group is a system group.", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Tags associated with the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "Users who are part of the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + }, + "description": "List of roles assgined to the user", + "nullable": true + } + } + }, + "Role": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id of the role", + "nullable": true + }, + "name": { + "type": "string", + "description": "name of the role", + "nullable": true + } + } + }, + "MetadataListItemInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true + } + } + }, + "PermissionInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Object share mode." + } + }, + "description": "Details of users or groups." + }, + "ExcludeMetadataListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" + ], + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + } + } + }, + "FavoriteObjectOptionsInput": { + "type": "object", + "properties": { + "include": { + "type": "boolean", + "default": false, + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true + } + }, + "description": "Favorite object options." + }, + "MetadataSearchSortOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "VIEWS", + "FAVORITES", + "LAST_ACCESSED" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "MetadataSearchResponse": { + "type": "object", + "required": [ + "metadata_type" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata.", + "nullable": true + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "dependent_objects": { + "type": "object", + "description": "Details of dependent objects of the metadata objects.", + "nullable": true + }, + "incomplete_objects": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true + }, + "metadata_detail": { + "type": "object", + "description": "Complete details of the metadata objects.", + "nullable": true + }, + "metadata_header": { + "type": "object", + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "GetAsyncImportStatusResponse": { + "type": "object", + "properties": { + "status_list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + }, + "description": "List of task statuses.", + "nullable": true + }, + "last_batch": { + "type": "boolean", + "description": "Indicates whether there are more task statuses to fetch.", + "nullable": true + } + } + }, + "ImportEPackAsyncTaskStatus": { + "type": "object", + "properties": { + "tenant_id": { + "type": "string", + "description": "GUID of tenant from which the task is initiated.", + "nullable": true + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Organisation ID of the user who initiated the task.", + "nullable": true + }, + "task_id": { + "type": "string", + "description": "Unique identifier for the task.", + "nullable": true + }, + "task_name": { + "type": "string", + "description": "Name of the task.", + "nullable": true + }, + "import_response": { + "type": "object", + "description": "Response of imported objects so far.", + "nullable": true + }, + "task_status": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ], + "description": "Current status of the task.", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "ID of the user who initiated the task.", + "nullable": true + }, + "import_policy": { + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ], + "description": "Policy used for the import task.", + "nullable": true + }, + "created_at": { + "type": "number", + "format": "float", + "description": "Time when the task was created (in ms since epoch).", + "nullable": true + }, + "in_progress_at": { + "type": "number", + "format": "float", + "description": "Time when the task started (in ms since epoch).", + "nullable": true + }, + "completed_at": { + "type": "number", + "format": "float", + "description": "Time when the task was completed (in ms since epoch).", + "nullable": true + }, + "total_object_count": { + "type": "integer", + "format": "int32", + "description": "Total number of objects to process.", + "nullable": true + }, + "object_processed_count": { + "type": "integer", + "format": "int32", + "description": "Number of objects processed so far.", + "nullable": true + }, + "modified_at": { + "type": "number", + "format": "float", + "description": "Last time the task status was updated (in ms since epoch).", + "nullable": true + } + } + }, + "SqlQueryResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "metadata_type", + "sql_queries" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "metadata_type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION", + "TAG", + "USER", + "USER_GROUP", + "LOGICAL_RELATIONSHIP" + ], + "description": "Type of the metadata." + }, + "sql_queries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SqlQuery" + }, + "description": "SQL query details of metadata objects." + } + } + }, + "SqlQuery": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "sql_query" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "Unique identifier of the metadata." + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata." + }, + "sql_query": { + "type": "string", + "description": "SQL query of a metadata object." + } + }, + "description": "Response format associated with fetch SQL query api" + }, + "PdfOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "default": true, + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "default": "PORTRAIT", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + } + } + }, + "PngOptionsInput": { + "type": "object", + "properties": { + "include_cover_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + } + } + }, + "PermissionOfPrincipalsResponse": { + "type": "object", + "properties": { + "principal_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PermissionOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_permission_details": { + "type": "object", + "nullable": true + } + } + }, + "PrincipalsInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the principal object such as a user or group." + }, + "type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type.", + "nullable": true + } + } + }, + "PermissionsMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Permission API's" + }, + "SearchDataResponse": { + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with the search data API." + }, + "AnswerContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + } + } + }, + "LiveboardDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveboardContent" + }, + "description": "Data content of metadata objects" + } + } + }, + "LiveboardContent": { + "type": "object", + "required": [ + "available_data_row_count", + "column_names", + "data_rows", + "record_offset", + "record_size", + "returned_data_row_count", + "sampling_ratio" + ], + "properties": { + "available_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total available data row count." + }, + "column_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Name of the columns." + }, + "data_rows": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Rows of data set." + }, + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records should be included." + }, + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records that should be included." + }, + "returned_data_row_count": { + "type": "integer", + "format": "int32", + "description": "Total returned data row count." + }, + "sampling_ratio": { + "type": "number", + "format": "float", + "description": "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." + }, + "visualization_id": { + "type": "string", + "description": "Unique ID of the visualization.", + "nullable": true + }, + "visualization_name": { + "type": "string", + "description": "Name of the visualization.", + "nullable": true + } + } + }, + "AnswerDataResponse": { + "type": "object", + "required": [ + "metadata_id", + "metadata_name", + "contents" + ], + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "contents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnswerContent" + }, + "description": "Data content of metadata objects" + } + }, + "description": "Response format associated with fetch data api" + }, + "LogResponse": { + "type": "object", + "required": [ + "date", + "log" + ], + "properties": { + "date": { + "type": "string", + "description": "Date timestamp of the log entry" + }, + "log": { + "type": "string", + "description": "Log data" + } + } + }, + "RepoConfigObject": { + "type": "object", + "properties": { + "repository_url": { + "type": "string", + "description": "Remote repository URL configured", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username to authenticate connection to the version control system", + "nullable": true + }, + "commit_branch_name": { + "type": "string", + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Branches that have been pulled in local repository", + "nullable": true + }, + "enable_guid_mapping": { + "type": "boolean", + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true + }, + "configuration_branch_name": { + "type": "string", + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/Org", + "description": "Details of the Org", + "nullable": true + } + } + }, + "CommitHistoryResponse": { + "type": "object", + "required": [ + "committer", + "author", + "comment", + "commit_time", + "commit_id", + "branch" + ], + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed" + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes" + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit" + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed." + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit" + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed" + } + } + }, + "CommiterType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "AuthorType": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email id of the committer", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username of the committer", + "nullable": true + } + } + }, + "ConnectionInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the connection.", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true + }, + "data_warehouse_objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataWarehouseObjectInput" + }, + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true + } + } + }, + "DataWarehouseObjectInput": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name of the database.", + "nullable": true + }, + "schema": { + "type": "string", + "description": "Name of the schema within the database.", + "nullable": true + }, + "table": { + "type": "string", + "description": "Name of the table within the schema.", + "nullable": true + }, + "column": { + "type": "string", + "description": "Name of the column within the table.", + "nullable": true + } + } + }, + "SortOptionInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED", + "LAST_ACCESSED", + "SYNCED", + "VIEWS", + "USER_STATE", + "ROW_COUNT" + ], + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "SearchConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the connection." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "description": { + "type": "string", + "description": "Description of the connection.", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "data_warehouse_objects": { + "$ref": "#/components/schemas/DataWarehouseObjects", + "description": "List of Data warehouse objects", + "nullable": true + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "DataWarehouseObjects": { + "type": "object", + "required": [ + "databases" + ], + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Database" + }, + "description": "Databases of the connection." + } + } + }, + "Database": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the database." + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaObject" + }, + "description": "Schemas of the database.", + "nullable": true + }, + "auto_created": { + "type": "boolean", + "description": "Determines if the object is auto created.", + "nullable": true + } + } + }, + "SchemaObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the schema." + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + }, + "description": "Tables in the schema.", + "nullable": true + } + } + }, + "Table": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the table." + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + }, + "description": "Columns of the table.", + "nullable": true + }, + "type": { + "type": "string", + "description": "Type of table. Either view or table", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the table", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "linked": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + }, + "relationships": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of relationships for the table", + "nullable": true + } + } + }, + "Column": { + "type": "object", + "required": [ + "name", + "data_type" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the column" + }, + "data_type": { + "type": "string", + "description": "Data type of the column" + }, + "is_aggregate": { + "type": "string", + "description": "Determines if the column schema is an aggregate", + "nullable": true + }, + "can_import": { + "type": "boolean", + "description": "Determines if the column schema can be imported", + "nullable": true + }, + "selected": { + "type": "boolean", + "description": "Determines if the table is selected", + "nullable": true + }, + "is_linked_active": { + "type": "boolean", + "description": "Determines if the table is linked", + "nullable": true + } + } + }, + "SearchRoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + }, + "description": "Response for search role api should handle hidden privileges as well." + }, + "Default_Action_Config_Search_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ResponseCustomAction": { + "type": "object", + "required": [ + "action_details", + "default_action_config", + "id", + "name" + ], + "properties": { + "action_details": { + "$ref": "#/components/schemas/Action_details", + "description": "`Type` and configuration data for custom actions" + }, + "default_action_config": { + "$ref": "#/components/schemas/Default_action_config", + "description": "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." + }, + "id": { + "type": "string", + "description": "Unique Id of the custom action." + }, + "metadata_association": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata_Association_Item" + }, + "description": "Metadata objects to assign the the custom action to.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Unique name of the custom action." + }, + "user_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Object_ID_And_Name" + }, + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true + } + }, + "description": "Custom action details" + }, + "Action_details": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACK", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URL", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Type and Configuration for Custom Actions" + }, + "CALLBACK": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URL": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItem" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Authentication": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_Key", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_Auth", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_Key": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_Auth": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItem": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true + } + } + }, + "Default_action_config": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "Metadata_Association_Item": { + "type": "object", + "required": [ + "action_config", + "identifier", + "type" + ], + "properties": { + "action_config": { + "$ref": "#/components/schemas/Action_config", + "description": "Specify that the association is enabled for the metadata object" + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." + } + } + }, + "Action_config": { + "type": "object", + "properties": { + "position": { + "type": "string", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object" + }, + "CustomActionMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Custom Action API's" + }, + "GenericInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "UserGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "JWT_User_Options": { + "type": "object", + "properties": { + "parameters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Runtime_Filter" + }, + { + "$ref": "#/components/schemas/Runtime_Sort" + }, + { + "$ref": "#/components/schemas/Runtime_Param_Override" + } + ] + } + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Metadata_Object" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" + }, + "JWT_Parameter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT.", + "nullable": true + }, + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT.", + "nullable": true + }, + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT.", + "nullable": true + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "JWT_Metadata_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ], + "nullable": true + } + }, + "description": "Metadata objects." + }, + "User_Parameter_Options": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "nullable": true + }, + "runtime_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Filters" + }, + "description": "Objects to apply the User_Runtime_Filters.\n\nExamples to set the `runtime_filters` :\n```json\n{ \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false }\n```", + "nullable": true + }, + "runtime_sorts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Runtime_Sorts" + }, + "description": "Objects to apply the User_Runtime_Sorts.\n\nExamples to set the `runtime_sorts` :\n```json\n{ \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false }\n```", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Parameters" + }, + "description": "Objects to apply the Runtime_Parameters.\n\nExamples to set the `parameters` :\n```json\n{ \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false }\n```", + "nullable": true + } + }, + "description": "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).\n" + }, + "User_Object": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects to apply the User_Object." + }, + "User_Runtime_Filters": { + "type": "object", + "required": [ + "column_name", + "values", + "operator" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Value of the filters." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "GE", + "GT", + "IN", + "LE", + "LT", + "NE", + "BEGINS_WITH", + "BW", + "BW_INC", + "BW_INC_MAX", + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" + ], + "description": "Operator value. Example: EQ" + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime filter.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Filters." + }, + "User_Runtime_Sorts": { + "type": "object", + "properties": { + "column_name": { + "type": "string", + "description": "The column name to apply filter.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "Order for the sort.", + "nullable": true + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime sort.", + "nullable": true + } + }, + "description": "Objects to apply the User_Runtime_Sorts." + }, + "User_Parameters": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The array of values." + }, + "persist": { + "type": "boolean", + "default": false, + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true + }, + "objects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User_Object" + }, + "description": "Object to apply the runtime parameter.", + "nullable": true + } + }, + "description": "Objects to apply the Runtime_Parameters." + }, + "Token": { + "type": "object", + "required": [ + "token", + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "valid_for_username" + ], + "properties": { + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "valid_for_username": { + "type": "string", + "description": "Unique identifier of the user to whom the token is issued." + } + } + }, + "Scope": { + "type": "object", + "required": [ + "access_type" + ], + "properties": { + "access_type": { + "type": "string", + "description": "Object access scope type." + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the metadata.", + "nullable": true + }, + "metadata_id": { + "type": "string", + "description": "Unique identifier of the Org.", + "nullable": true + } + } + }, + "JWT_User_Options_Full": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JWT_Parameter" + }, + "nullable": true + } + }, + "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" + }, + "TokenValidationResponse": { + "type": "object", + "required": [ + "creation_time_in_millis", + "expiration_time_in_millis", + "scope", + "valid_for_user_id", + "token_type" + ], + "properties": { + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + }, + "scope": { + "$ref": "#/components/schemas/Scope", + "description": "Token access scope details" + }, + "valid_for_user_id": { + "type": "string", + "description": "Username to whom the token is issued." + }, + "token_type": { + "type": "string", + "description": "Type of token." + } + } + }, + "ResponseActivationURL": { + "type": "object", + "properties": { + "activation_link": { + "type": "string", + "description": "Activation link to activate the user.", + "nullable": true + } + }, + "description": "The object representation with activation link." + }, + "ImportUser": { + "type": "object", + "required": [ + "user_identifier", + "display_name" + ], + "properties": { + "user_identifier": { + "type": "string", + "description": "Unique ID or name of the user." + }, + "display_name": { + "type": "string", + "description": "Display name of the user." + }, + "password": { + "type": "string", + "description": "Password of the user.", + "nullable": true + }, + "account_type": { + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ], + "default": "LOCAL_USER", + "description": "Type of the user account.", + "nullable": true + }, + "account_status": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ], + "default": "ACTIVE", + "description": "Status of the user account.", + "nullable": true + }, + "email": { + "type": "string", + "description": "Email address of the user.", + "nullable": true + }, + "org_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ID or name of the groups to which the user belongs.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true + }, + "notify_on_share": { + "type": "boolean", + "default": true, + "description": "Notify user when other users or groups share metadata objects", + "nullable": true + }, + "show_onboarding_experience": { + "type": "boolean", + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true + }, + "onboarding_experience_completed": { + "type": "boolean", + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true + }, + "home_liveboard_identifier": { + "type": "string", + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true + }, + "favorite_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + }, + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true + } + } + }, + "ImportUsersResponse": { + "type": "object", + "properties": { + "users_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + }, + "users_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUserType" + }, + "nullable": true + } + } + }, + "ImportUserType": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the user.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the user." + } + } + }, + "TagMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ], + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n 1. LIVEBOARD\n 2. ANSWERS\n 3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n 4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + } + } + }, + "GroupsImportListInput": { + "type": "object", + "required": [ + "display_name", + "group_identifier" + ], + "properties": { + "display_name": { + "type": "string", + "description": "Unique display name of the group." + }, + "group_identifier": { + "type": "string", + "description": "Unique ID or name of the group." + }, + "default_liveboard_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true + }, + "description": { + "type": "string", + "description": "Description of the group.", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + }, + "description": "Privileges that will be assigned to the group.", + "nullable": true + }, + "sub_group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ], + "description": "Type of the group.", + "nullable": true + }, + "user_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true + }, + "visibility": { + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ], + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true + } + } + }, + "ImportUserGroupsResponse": { + "type": "object", + "required": [ + "groups_added", + "groups_deleted", + "groups_updated" + ], + "properties": { + "groups_added": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are added into the system." + }, + "groups_deleted": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are deleted from the system." + }, + "groups_updated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroup" + }, + "description": "The groups which are updated in the system." + } + } + }, + "ResponseCopyObject": { + "type": "object", + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + } + } + }, + "ExportMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CONNECTION", + "CUSTOM_ACTION", + "USER", + "USER_GROUP", + "ROLE" + ], + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Export MetadataType API" + }, + "DeleteMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LOGICAL_RELATIONSHIP" + ], + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Delete MetadataType API" + }, + "AuthorMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + }, + "description": "MetadataType InputType used in Author API's" + }, + "ShareMetadataTypeInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": " Type of metadata.\n \n\nType 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.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "SharePermissionsInput": { + "type": "object", + "required": [ + "principal", + "share_mode" + ], + "properties": { + "principal": { + "$ref": "#/components/schemas/PrincipalsInput", + "description": "Details of users or groups." + }, + "share_mode": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Type of access to the shared object" + } + } + }, + "MetadataObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata" + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" + ], + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + } + } + }, + "CommitResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + } + } + }, + "CommitFileType": { + "type": "object", + "required": [ + "file_name", + "status_code" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "RevertResponse": { + "type": "object", + "properties": { + "committer": { + "$ref": "#/components/schemas/CommiterType", + "description": "Repository user using which changes were committed", + "nullable": true + }, + "author": { + "$ref": "#/components/schemas/AuthorType", + "description": "Thoughtspot user who commits the changes", + "nullable": true + }, + "comment": { + "type": "string", + "description": "Comments associated with the commit", + "nullable": true + }, + "commit_time": { + "type": "string", + "description": "Time at which the changes were committed.", + "nullable": true + }, + "commit_id": { + "type": "string", + "description": "SHA id associated with the commit", + "nullable": true + }, + "branch": { + "type": "string", + "description": "Branch where changes were committed", + "nullable": true + }, + "committed_files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitFileType" + }, + "description": "Files that were pushed as part of this commit", + "nullable": true + }, + "reverted_metadata": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RevertedMetadata" + }, + "description": "Metadata of reverted file of this commit", + "nullable": true + } + } + }, + "RevertedMetadata": { + "type": "object", + "required": [ + "file_name", + "metadata_name", + "metadata_type", + "status_code", + "status_message" + ], + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed" + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object" + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object" + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file" + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment" + } + } + }, + "DeployResponse": { + "type": "object", + "properties": { + "file_name": { + "type": "string", + "description": "Name of the file deployed", + "nullable": true + }, + "metadata_name": { + "type": "string", + "description": "Name of the metadata object", + "nullable": true + }, + "metadata_type": { + "type": "string", + "description": "Type of the metadata object", + "nullable": true + }, + "status_code": { + "type": "string", + "description": "Indicates the status of deployment for the file", + "nullable": true + }, + "status_message": { + "type": "string", + "description": "Any error or warning with the deployment", + "nullable": true + } + } + }, + "CreateConnectionResponse": { + "type": "object", + "required": [ + "id", + "name", + "data_warehouse_type" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the connection created." + }, + "name": { + "type": "string", + "description": "Name of the connection." + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "description": "Type of data warehouse." + }, + "details": { + "type": "object", + "description": "Details of the connection.", + "nullable": true + } + } + }, + "FetchConnectionDiffStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Status of the connection diff.", + "nullable": true + } + } + }, + "RoleResponse": { + "type": "object", + "required": [ + "id", + "name", + "description", + "privileges" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique Id of the role." + }, + "name": { + "type": "string", + "description": "Name of the role" + }, + "description": { + "type": "string", + "description": "Description of the role" + }, + "groups_assigned_count": { + "type": "integer", + "format": "int32", + "description": "number of groups assigned with this role", + "nullable": true + }, + "orgs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Orgs in which role exists.", + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericInfo" + }, + "description": "Details of groups assigned with this role", + "nullable": true + }, + "privileges": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] + }, + "description": "Privileges granted to the role." + }, + "permission": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ], + "description": "Permission details of the Role", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "Unique identifier of author of the role.", + "nullable": true + }, + "modifier_id": { + "type": "string", + "description": "Unique identifier of modifier of the role.", + "nullable": true + }, + "creation_time_in_millis": { + "type": "object", + "description": "Creation time of the role in milliseconds.", + "nullable": true + }, + "modification_time_in_millis": { + "type": "object", + "description": "Last modified time of the role in milliseconds.", + "nullable": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the role is deleted.", + "nullable": true + }, + "deprecated": { + "type": "boolean", + "description": "Indicates whether the role is deprecated.", + "nullable": true + }, + "external": { + "type": "boolean", + "description": "Indicates whether the role is external.", + "nullable": true + }, + "hidden": { + "type": "boolean", + "description": "Indicates whether the role is hidden.", + "nullable": true + }, + "shared_via_connection": { + "type": "boolean", + "description": "Indicates whether the role is shared via connection", + "nullable": true + } + } + }, + "LiveboardOptionsInput": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "SchedulesPdfOptionsInput": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true + }, + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true + }, + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true + }, + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true + }, + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true + }, + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true + }, + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "FrequencyInput": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpressionInput", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpressionInput": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "RecipientDetailsInput": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of the recipients.", + "nullable": true + }, + "principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsListItemInput" + }, + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true + } + }, + "description": "Recipients of the scheduled job notification." + }, + "PrincipalsListItemInput": { + "type": "object", + "required": [ + "identifier", + "type" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." + }, + "type": { + "type": "string", + "description": "Principal type." + } + } + }, + "ResponseSchedule": { + "type": "object", + "required": [ + "author", + "creation_time_in_millis", + "file_format", + "frequency", + "id", + "metadata", + "name", + "recipient_details", + "time_zone" + ], + "properties": { + "author": { + "$ref": "#/components/schemas/Author", + "description": "Author of the schedule." + }, + "creation_time_in_millis": { + "type": "object", + "description": "Schedule creation time in milliseconds." + }, + "description": { + "type": "string", + "description": "Description of the job.", + "nullable": true + }, + "file_format": { + "type": "string", + "description": "Export file format." + }, + "frequency": { + "$ref": "#/components/schemas/Frequency", + "description": "Configuration of schedule with cron expression" + }, + "id": { + "type": "string", + "description": "GUID of the scheduled job." + }, + "liveboard_options": { + "$ref": "#/components/schemas/LiveboardOptions", + "description": "Options to specify details of Liveboard.", + "nullable": true + }, + "metadata": { + "$ref": "#/components/schemas/MetadataResponse", + "description": "Unique ID or name of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the scheduled job." + }, + "pdf_options": { + "$ref": "#/components/schemas/PdfOptions", + "description": "Options for PDF export.", + "nullable": true + }, + "recipient_details": { + "$ref": "#/components/schemas/RecipientDetails", + "description": "Recipient of the scheduled job notifications." + }, + "status": { + "type": "string", + "description": "Status of the job", + "nullable": true + }, + "time_zone": { + "type": "string", + "description": "Time zone" + }, + "history_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseScheduleRun" + }, + "description": "Schedule runs history records.", + "nullable": true + } } }, - "User": { + "Author": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the object." + }, + "name": { + "type": "string", + "description": "Name of the object." + } + }, + "description": "Author of the schedule." + }, + "Frequency": { + "type": "object", + "required": [ + "cron_expression" + ], + "properties": { + "cron_expression": { + "$ref": "#/components/schemas/CronExpression", + "description": "Schedule selected cron expression." + } + }, + "description": "Configuration of schedule with cron expression" + }, + "CronExpression": { + "type": "object", + "required": [ + "day_of_month", + "day_of_week", + "hour", + "minute", + "month", + "second" + ], + "properties": { + "day_of_month": { + "type": "string", + "description": "Day of month of the object." + }, + "day_of_week": { + "type": "string", + "description": "Day of Week of the object." + }, + "hour": { + "type": "string", + "description": "Hour of the object." + }, + "minute": { + "type": "string", + "description": "Minute of the object." + }, + "month": { + "type": "string", + "description": "Month of the object." + }, + "second": { + "type": "string", + "description": "Second of the object." + } + }, + "description": "Schedule selected cron expression." + }, + "LiveboardOptions": { + "type": "object", + "required": [ + "visualization_identifiers" + ], + "properties": { + "visualization_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Unique ID or name of visualizations." + } + }, + "description": "Options to specify details of Liveboard." + }, + "MetadataResponse": { "type": "object", "required": [ "id", - "name", - "display_name", - "account_type", - "account_status", - "email", - "creation_time_in_millis", - "first_login_time_in_millis" + "type" ], "properties": { + "name": { + "type": "string", + "nullable": true + }, "id": { "type": "string" }, - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ] + } + } + }, + "PdfOptions": { + "type": "object", + "properties": { + "complete_liveboard": { + "type": "boolean", + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, - "display_name": { - "type": "string" + "include_cover_page": { + "type": "boolean", + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, - "account_type": { - "type": "string" + "include_custom_logo": { + "type": "boolean", + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, - "account_status": { - "type": "string" + "include_filter_page": { + "type": "boolean", + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, - "email": { - "type": "string" + "include_page_number": { + "type": "boolean", + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, - "user_groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroup" - } + "page_footer_text": { + "type": "string", + "description": "Text to include in the footer of each page.", + "nullable": true }, - "privileges": { + "page_orientation": { + "type": "string", + "description": "Page orientation of the PDF.", + "nullable": true + }, + "page_size": { + "type": "string", + "enum": [ + "A4" + ], + "description": "Page size.", + "nullable": true + }, + "truncate_table": { + "type": "boolean", + "description": "Indicates whether to include only first page of the tables.", + "nullable": true + } + }, + "description": "Options for PDF export." + }, + "RecipientDetails": { + "type": "object", + "properties": { + "emails": { "type": "array", "items": { "type": "string" - } - }, - "creation_time_in_millis": { - "type": "integer", - "format": "int32" - }, - "first_login_time_in_millis": { - "type": "integer", - "format": "int32" + }, + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, - "tags": { + "principals": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/components/schemas/PrincipalsListItem" + }, + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } - } + }, + "description": "Recipient configuration which includes email address, ID or name of the users and groups." }, - "RiseSetter": { + "PrincipalsListItem": { "type": "object", "required": [ - "field", - "path" + "identifier", + "type" ], "properties": { - "field": { - "type": "string" + "identifier": { + "type": "string", + "description": "Unique ID or name of the user or group." }, - "path": { - "type": "string" + "type": { + "type": "string", + "description": "Principal type. Valid values are" } } }, - "Token": { + "ResponseScheduleRun": { "type": "object", "required": [ - "token", - "creation_time_in_millis", - "expiration_time_in_millis", - "scope", - "valid_for_userid", - "valid_for_username" + "id", + "start_time_in_millis", + "end_time_in_millis", + "status" ], "properties": { - "token": { - "type": "string" + "id": { + "type": "string", + "description": "GUID of the scheduled job." }, - "creation_time_in_millis": { + "start_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run start time in milliseconds." }, - "expiration_time_in_millis": { + "end_time_in_millis": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "Schedule run end time in milliseconds." }, - "scope": { - "$ref": "#/components/schemas/Scope" + "status": { + "type": "string", + "description": "Status of the schedule run." }, - "valid_for_userid": { - "type": "string" + "detail": { + "type": "string", + "description": "Message details related to the schedule run.", + "nullable": true + } + }, + "description": "Schedule run response object" + }, + "MetadataInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true }, - "valid_for_username": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "LIVEBOARD" + ], + "nullable": true } } }, - "UserGroup": { + "SortingOptions": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + }, + "description": "Sort options." + }, + "ScheduleHistoryRunsOptionsInput": { + "type": "object", + "properties": { + "include_history_runs": { + "type": "boolean", + "default": false, + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true + }, + "record_size": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true + }, + "record_offset": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true + } + } + }, + "Action_Details_Input_Create": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInputMandatory", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInputMandatory", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" + }, + "CALLBACKInputMandatory": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInputMandatory": { "type": "object", "required": [ - "name", - "id" + "url" ], "properties": { - "name": { - "type": "string" + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true }, - "id": { - "type": "string" + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action." + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "AuthenticationInput": { + "type": "object", + "properties": { + "API_Key": { + "$ref": "#/components/schemas/API_KeyInput", + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true + }, + "Basic_Auth": { + "$ref": "#/components/schemas/Basic_AuthInput", + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true + }, + "Bearer_Token": { + "type": "string", + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true + }, + "No_Auth": { + "type": "string", + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true + } + }, + "description": "Authorization type for the custom action." + }, + "API_KeyInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Enter your key name", + "nullable": true + }, + "value": { + "type": "string", + "description": "Enter you key value", + "nullable": true + } + }, + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + }, + "Basic_AuthInput": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Password for the basic authentication", + "nullable": true + }, + "username": { + "type": "string", + "description": "Username for the basic authentication", + "nullable": true + } + }, + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + }, + "ParametersListItemInput": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the url query parameter", + "nullable": true + }, + "value": { + "type": "string", + "description": "Value for the url query parameter", + "nullable": true } } }, - "Scope": { + "Associate_Metadata_Input_Create": { "type": "object", "required": [ - "access_type" + "identifier" ], "properties": { - "access_type": { - "type": "string" + "action_config": { + "$ref": "#/components/schemas/ActionConfigInputCreate", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, - "organisation_id": { - "type": "integer", - "format": "int32" + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." }, - "metadata_id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + } + } + }, + "ActionConfigInputCreate": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "default": "MENU", + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "default": true, + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input_Create": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "default": true, + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true + } + }, + "description": "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." + }, + "Action_Details_Input": { + "type": "object", + "properties": { + "CALLBACK": { + "$ref": "#/components/schemas/CALLBACKInput", + "description": "CALLBACK Custom Action Type", + "nullable": true + }, + "URL": { + "$ref": "#/components/schemas/URLInput", + "description": "URL Custom Action Type", + "nullable": true + } + }, + "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." + }, + "CALLBACKInput": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true + } + }, + "description": "CALLBACK Custom Action Type" + }, + "URLInput": { + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/AuthenticationInput", + "description": "Authorization type for the custom action.", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParametersListItemInput" + }, + "description": "Query parameters for url.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Request Url for the Custom action.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference name. By default the value will be set to action name", + "nullable": true + } + }, + "description": "URL Custom Action Type" + }, + "Associate_Metadata_Input": { + "type": "object", + "properties": { + "action_config": { + "$ref": "#/components/schemas/ActionConfigInput", + "description": "Specify that the association is enabled for the metadata object", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "VISUALIZATION", + "ANSWER", + "WORKSHEET" + ], + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + } + } + }, + "ActionConfigInput": { + "type": "object", + "properties": { + "position": { + "type": "string", + "enum": [ + "MENU", + "PRIMARY", + "CONTEXT_MENU" + ], + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true + }, + "visibility": { + "type": "boolean", + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true + } + }, + "description": "Specify that the association is enabled for the metadata object Default" + }, + "Default_Action_Config_Input": { + "type": "object", + "properties": { + "visibility": { + "type": "boolean", + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true + } + }, + "description": "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." + }, + "ModelTableList": { + "type": "object", + "required": [ + "model_name", + "tables" + ], + "properties": { + "model_name": { + "type": "string", + "description": "Name of the Model." + }, + "model_path": { + "type": "string", + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true + }, + "tables": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Tables." + } + } + }, + "DbtSearchResponse": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "type": "string", + "nullable": true + }, + "project_name": { + "type": "string", + "nullable": true + }, + "connection_id": { + "type": "string", + "nullable": true + }, + "connection_name": { + "type": "string", + "nullable": true + }, + "cdw_database": { + "type": "string", + "nullable": true + }, + "import_type": { + "type": "string", + "nullable": true + }, + "author_name": { + "type": "string", + "nullable": true } } + }, + "Runtime_Filter": { + "type": "object", + "properties": { + "runtime_filter": { + "type": "object", + "description": "Runtime filter parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Sort": { + "type": "object", + "properties": { + "runtime_sort": { + "type": "object", + "description": "Runtime sort parameter type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." + }, + "Runtime_Param_Override": { + "type": "object", + "properties": { + "runtime_param_override": { + "type": "object", + "description": "Runtime param override type in JWT." + } + }, + "description": "List of runtime parameters need to set during the session." } }, "securitySchemes": { @@ -520,4 +16026,4 @@ } } ] -} \ No newline at end of file +} From cfd464d162021ce6941d5ddfc5c1ffb0d52ce6cf Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 10 Sep 2024 06:42:38 +0000 Subject: [PATCH 177/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b88fecbbd..a90913ada 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16026,4 +16026,4 @@ } } ] -} +} \ No newline at end of file From d369afe43759dcd5c3ed9bf3d54ddf1bacddd798 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 12 Sep 2024 09:28:43 +0000 Subject: [PATCH 178/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 362 +++++++++++++++++++++++++++++--- 1 file changed, 338 insertions(+), 24 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a90913ada..6f6a43c36 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -21,6 +21,14 @@ ], "description": "Roles for version 9.12.0.cl" }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, { "name": "9.7.0.cl", "id": "9.7.0.cl", @@ -37,14 +45,6 @@ ], "description": "Roles for version 9.2.0.cl" }, - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, { "name": "10.1.0.cl", "id": "10.1.0.cl", @@ -3945,6 +3945,156 @@ } } }, + "/api/rest/2.0/auth/token/custom": { + "post": { + "operationId": "getCustomAccessToken", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Authentication", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username for which the token needs to be created.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "persist_options": { + "description": "Indicates whether the specified attributes should be persisted or not.", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "RESET", + "REMOVE" + ] + }, + "filter_rules": { + "description": "Filter rules.", + "allOf": [ + { + "$ref": "#/components/schemas/FilterRules" + } + ] + }, + "parameter_values": { + "description": "Parameter values.", + "allOf": [ + { + "$ref": "#/components/schemas/ParameterValues" + } + ] + }, + "objects": { + "description": "Objects on which the filter rules and parameters values should be applied to", + "type": "array", + "items": { + "$ref": "#/components/schemas/TokenAccessScopeObject" + } + }, + "email": { + "description": "(just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user.", + "type": "string" + }, + "display_name": { + "description": "(just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user.", + "type": "string" + }, + "group_identifiers": { + "description": "(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.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "ABAC token creation was successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessToken" + } + } + } + }, + "400": { + "description": "Invalid request. This could be due to missing or incorrect parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access. The request could not be authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access. The user does not have permission to access this resource.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "An unexpected error occurred on the server.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", @@ -13937,7 +14087,7 @@ "runtime_filters": { "type": "array", "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" + "$ref": "#/components/schemas/Runtime_Filters" }, "description": "Objects to apply the User_Runtime_Filters.\n\nExamples to set the `runtime_filters` :\n```json\n{ \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false }\n```", "nullable": true @@ -13945,7 +14095,7 @@ "runtime_sorts": { "type": "array", "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" + "$ref": "#/components/schemas/Runtime_Sorts" }, "description": "Objects to apply the User_Runtime_Sorts.\n\nExamples to set the `runtime_sorts` :\n```json\n{ \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false }\n```", "nullable": true @@ -13953,7 +14103,7 @@ "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/User_Parameters" + "$ref": "#/components/schemas/Runtime_Parameters" }, "description": "Objects to apply the Runtime_Parameters.\n\nExamples to set the `parameters` :\n```json\n{ \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false }\n```", "nullable": true @@ -13984,7 +14134,7 @@ }, "description": "Objects to apply the User_Object." }, - "User_Runtime_Filters": { + "Runtime_Filters": { "type": "object", "required": [ "column_name", @@ -14007,19 +14157,21 @@ "type": "string", "enum": [ "EQ", - "GE", + "NE", + "LT", + "LE", "GT", + "GE", "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", "BW", + "CONTAINS", + "BEGINS_WITH", + "ENDS_WITH", "BW_INC", - "BW_INC_MAX", "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" + "BW_INC_MAX", + "LIKE", + "NOT_IN" ], "description": "Operator value. Example: EQ" }, @@ -14038,9 +14190,9 @@ "nullable": true } }, - "description": "Objects to apply the User_Runtime_Filters." + "description": "Objects to apply the Runtime_Filters." }, - "User_Runtime_Sorts": { + "Runtime_Sorts": { "type": "object", "properties": { "column_name": { @@ -14072,9 +14224,9 @@ "nullable": true } }, - "description": "Objects to apply the User_Runtime_Sorts." + "description": "Objects to apply the Runtime_Sorts." }, - "User_Parameters": { + "Runtime_Parameters": { "type": "object", "required": [ "name", @@ -14218,6 +14370,168 @@ } } }, + "FilterRules": { + "type": "object", + "required": [ + "column_name", + "operator", + "values" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The name of the column to apply the filter on." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "NE", + "LT", + "LE", + "GT", + "GE", + "IN", + "BW", + "CONTAINS", + "BEGINS_WITH", + "ENDS_WITH", + "BW_INC", + "BW_INC_MIN", + "BW_INC_MAX", + "LIKE", + "NOT_IN" + ], + "description": "The operator to use for filtering. Example: EQ (equals), GT(greater than), etc." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The values to filter on. To get all records, use TS_WILDCARD_ALL as values." + } + }, + "description": "Filter Rules to be applied on Objects." + }, + "ParameterValues": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the column to apply the filter on." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The values to filter on. Only single value is supported currently." + } + }, + "description": "Filter Rules to be applied on Objects." + }, + "TokenAccessScopeObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects on which the filter rules and parameters values should be applied to" + }, + "AccessToken": { + "type": "object", + "required": [ + "id", + "token", + "org", + "user", + "creation_time_in_millis", + "expiration_time_in_millis" + ], + "properties": { + "id": { + "type": "string", + "description": "GUID of the auth token." + }, + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "org": { + "$ref": "#/components/schemas/OrgInfo", + "description": "Org information for which the token is generated." + }, + "user": { + "$ref": "#/components/schemas/UserInfo", + "description": "User information for which the token is generated." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + } + } + }, + "OrgInfo": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Id." + }, + "name": { + "type": "string", + "description": "Name." + } + } + }, + "UserInfo": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Id." + }, + "name": { + "type": "string", + "description": "Name." + } + } + }, "ResponseActivationURL": { "type": "object", "properties": { From eb62aa90a57f64dc7561ce3d26a21d4ffac41983 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 12 Sep 2024 15:48:21 +0000 Subject: [PATCH 179/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6f6a43c36..ed00d5e54 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3995,19 +3995,17 @@ }, "filter_rules": { "description": "Filter rules.", - "allOf": [ - { - "$ref": "#/components/schemas/FilterRules" - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/FilterRules" + } }, "parameter_values": { "description": "Parameter values.", - "allOf": [ - { - "$ref": "#/components/schemas/ParameterValues" - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterValues" + } }, "objects": { "description": "Objects on which the filter rules and parameters values should be applied to", From 62a7ac26e3f7f7c9e3d918b7edf742e006749305 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 12 Sep 2024 16:39:24 +0000 Subject: [PATCH 180/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ed00d5e54..9ed5d6ca3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3529,7 +3529,7 @@ } }, "user_parameters": { - "description": "
Version: 9.10.5.cl or 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).", + "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" @@ -3662,7 +3662,7 @@ } }, "user_parameters": { - "description": "
Version: 9.10.5.cl or 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).", + "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" From 1ce79fb1551d191947ef11069cd69fddd0bc8cf5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 13 Sep 2024 10:36:15 +0000 Subject: [PATCH 181/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9ed5d6ca3..aa620030b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3989,8 +3989,8 @@ "type": "string", "enum": [ "ADD", - "RESET", - "REMOVE" + "NONE", + "RESET" ] }, "filter_rules": { @@ -4026,7 +4026,7 @@ "description": "(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.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/Group_Object" } } }, @@ -14456,6 +14456,16 @@ }, "description": "Objects on which the filter rules and parameters values should be applied to" }, + "Group_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + } + }, + "description": "Groups objects." + }, "AccessToken": { "type": "object", "required": [ From 31fc278b4e6f02f422b3c7b3d3607149404855bb Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 14 Sep 2024 14:35:11 +0000 Subject: [PATCH 182/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index aa620030b..63183b55b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4022,7 +4022,7 @@ "description": "(just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user.", "type": "string" }, - "group_identifiers": { + "groups": { "description": "(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.", "type": "array", "items": { From 195ba0690fc3c86842e9513a941b92dda0b7fedb Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 16 Sep 2024 05:47:36 +0000 Subject: [PATCH 183/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 63183b55b..d2887409b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4090,7 +4090,8 @@ } } } - } + }, + "security": [] } }, "/api/rest/2.0/users/create": { From 11272ea4cc40dc5d7a82705f992e4d87d41f950d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 17 Sep 2024 05:22:00 +0000 Subject: [PATCH 184/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d2887409b..35c1661dd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -11898,6 +11898,11 @@ "type": "object", "description": "User Parameters which are specified for the user via JWToken", "nullable": true + }, + "access_control_properties": { + "type": "object", + "description": "Access Control Properties which are specified for the user via JWToken", + "nullable": true } } }, From 7fd491f7d2c62de158d14e63abb927a0f89e348d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 17 Sep 2024 06:26:02 +0000 Subject: [PATCH 185/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 35c1661dd..20796ac39 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3983,7 +3983,7 @@ "description": "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.", "type": "string" }, - "persist_options": { + "persist_option": { "description": "Indicates whether the specified attributes should be persisted or not.", "default": "ADD", "type": "string", @@ -14475,7 +14475,6 @@ "AccessToken": { "type": "object", "required": [ - "id", "token", "org", "user", @@ -14485,7 +14484,8 @@ "properties": { "id": { "type": "string", - "description": "GUID of the auth token." + "description": "GUID of the auth token.", + "nullable": true }, "token": { "type": "string", @@ -14514,8 +14514,7 @@ "OrgInfo": { "type": "object", "required": [ - "id", - "name" + "id" ], "properties": { "id": { @@ -14525,15 +14524,15 @@ }, "name": { "type": "string", - "description": "Name." + "description": "Name.", + "nullable": true } } }, "UserInfo": { "type": "object", "required": [ - "id", - "name" + "id" ], "properties": { "id": { @@ -14542,7 +14541,8 @@ }, "name": { "type": "string", - "description": "Name." + "description": "Name.", + "nullable": true } } }, From 33d877fe0ffe8d06cc4c1da5513e953d74c77d22 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 18 Sep 2024 11:58:59 +0000 Subject: [PATCH 186/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2420 +++++++------------------------ 1 file changed, 555 insertions(+), 1865 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 20796ac39..07b564609 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -21,14 +21,6 @@ ], "description": "Roles for version 9.12.0.cl" }, - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, { "name": "9.7.0.cl", "id": "9.7.0.cl", @@ -53,14 +45,6 @@ ], "description": "Roles for version 10.1.0.cl" }, - { - "name": "10.3.0.cl", - "id": "10.3.0.cl", - "tags": [ - "10.3.0.cl" - ], - "description": "Roles for version 10.3.0.cl" - }, { "name": "10.0.0.cl", "id": "10.0.0.cl", @@ -312,11 +296,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -389,11 +369,7 @@ }, "sort_options": { "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] + "$ref": "#/components/schemas/SortOptions" }, "role_identifiers": { "description": "Filters by the role assigned to the user.", @@ -1031,11 +1007,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -1090,11 +1062,7 @@ }, "sort_options": { "description": "Sort options to filter group details.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] + "$ref": "#/components/schemas/SortOptions" } } } @@ -1213,11 +1181,7 @@ }, "favorite_object_options": { "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "allOf": [ - { - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - } - ] + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" }, "include_auto_created_objects": { "description": "Includes system-generated metadata objects.", @@ -1293,11 +1257,7 @@ }, "sort_options": { "description": "Sort options to filter metadata details.", - "allOf": [ - { - "$ref": "#/components/schemas/MetadataSearchSortOptions" - } - ] + "$ref": "#/components/schemas/MetadataSearchSortOptions" }, "tag_identifiers": { "description": "Tags to filter metadata objects by", @@ -1376,123 +1336,6 @@ } } }, - "/api/rest/2.0/metadata/tml/async/status": { - "post": { - "operationId": "fetchAsyncImportTaskStatus", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task_ids": { - "description": "List of task IDs to fetch status for.", - "type": "array", - "items": { - "type": "string" - } - }, - "task_status": { - "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", - "type": "array", - "items": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ] - } - }, - "author_identifier": { - "description": "Author GUID or name of async import tasks to filter on.", - "type": "string" - }, - "record_offset": { - "description": "The offset point, starting from where the task status should be included in the response.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of task statuses that should be included in the response starting from offset position.", - "default": 5, - "type": "integer", - "format": "int32" - }, - "include_import_response": { - "description": "Boolean flag to specify whether to include import response in the task status objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task statuses fetched successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetAsyncImportStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", @@ -1714,19 +1557,11 @@ }, "pdf_options": { "description": "Options for PDF export.", - "allOf": [ - { - "$ref": "#/components/schemas/PdfOptionsInput" - } - ] + "$ref": "#/components/schemas/PdfOptionsInput" }, "png_options": { "description": "Options for PNG export.", - "allOf": [ - { - "$ref": "#/components/schemas/PngOptionsInput" - } - ] + "$ref": "#/components/schemas/PngOptionsInput" }, "runtime_param_override": { "description": "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).", @@ -2092,7 +1927,8 @@ "format": "int32" }, "permission_type": { - "description": "
Version: 10.3.0.cl or later
\n\nSpecifies the type of permission. Valid values are:\n EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong.\n DEFINED - If a user or user group received access to metadata objects via object sharing by another user.", + "description": "Permission type if it is DEFINED then fetch the defined permission\nof principals else fetch the effective permission of principals.", + "default": "EFFECTIVE", "type": "string" } }, @@ -2238,7 +2074,7 @@ "type": "string" }, "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", "enum": [ @@ -2365,7 +2201,7 @@ "type": "string" }, "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", "enum": [ @@ -2480,7 +2316,7 @@ "type": "string" }, "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "description": "JSON output format. By default, the API returns full data in the JSON.", "default": "COMPACT", "type": "string", "enum": [ @@ -2579,7 +2415,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/logs-api#_security_events).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -2965,11 +2801,7 @@ }, "sort_options": { "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptionInput" - } - ] + "$ref": "#/components/schemas/SortOptionInput" }, "include_details": { "description": "Indicates whether to include complete details of the connection objects.", @@ -3136,11 +2968,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -3263,11 +3091,7 @@ }, "default_action_config": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - } - ] + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" }, "include_group_associations": { "description": "When set to true, returns the associated groups for a custom action.", @@ -3528,13 +3352,14 @@ "type": "string" } }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options", + "deprecated": true + }, "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" - } - ] + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" } }, "required": [ @@ -3661,13 +3486,14 @@ "type": "string" } }, + "jwt_user_options": { + "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", + "$ref": "#/components/schemas/JWT_User_Options_Full", + "deprecated": true + }, "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" - } - ] + "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", + "$ref": "#/components/schemas/User_Parameter_Options" } }, "required": [ @@ -3945,13 +3771,13 @@ } } }, - "/api/rest/2.0/auth/token/custom": { + "/api/rest/2.0/users/create": { "post": { - "operationId": "getCustomAccessToken", - "description": " Version: 10.4.0.cl or later", + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", - "10.4.0.cl" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3959,245 +3785,96 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username for which the token needs to be created.", + "name": { + "description": "Name of the user. The username string must be unique.", "type": "string" }, - "password": { - "description": "Password of the user account", - "default": "", + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", "type": "string" }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", + "password": { + "description": "Password for the user account.", "type": "string" }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_identifier": { - "description": "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.", + "email": { + "description": "Email of the user account", "type": "string" }, - "persist_option": { - "description": "Indicates whether the specified attributes should be persisted or not.", - "default": "ADD", + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", "type": "string", "enum": [ - "ADD", - "NONE", - "RESET" + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" ] }, - "filter_rules": { - "description": "Filter rules.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FilterRules" - } + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] }, - "parameter_values": { - "description": "Parameter values.", + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", "type": "array", "items": { - "$ref": "#/components/schemas/ParameterValues" + "type": "string" } }, - "objects": { - "description": "Objects on which the filter rules and parameters values should be applied to", + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", "type": "array", "items": { - "$ref": "#/components/schemas/TokenAccessScopeObject" + "type": "string" } }, - "email": { - "description": "(just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user.", - "type": "string" + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] }, - "display_name": { - "description": "(just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user.", + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", "type": "string" }, - "groups": { - "description": "(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.", + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", "type": "array", "items": { - "$ref": "#/components/schemas/Group_Object" - } - } - }, - "required": [ - "username" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "ABAC token creation was successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AccessToken" - } - } - } - }, - "400": { - "description": "Invalid request. This could be due to missing or incorrect parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access. The request could not be authenticated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access. The user does not have permission to access this resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "An unexpected error occurred on the server.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - }, - "security": [] - } - }, - "/api/rest/2.0/users/create": { - "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" + "$ref": "#/components/schemas/FavoriteMetadataInput" } }, "preferred_locale": { @@ -4235,12 +3912,12 @@ "type": "object" }, "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "description": "Flag to indicate whether welcome email should be sent to user", "type": "boolean", "nullable": true }, "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", + "description": "Flag to indicate whether activation email should be sent to user", "type": "boolean", "nullable": true } @@ -5451,7 +5128,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5555,7 +5232,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5641,7 +5318,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5937,11 +5614,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -6110,11 +5783,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } }, @@ -6417,8 +6086,7 @@ "enum": [ "PARTIAL", "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" + "VALIDATE_ONLY" ] }, "create_new": { @@ -6432,12 +6100,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "skip_cdw_validation_for_tables": { - "description": "if we should skip CDW validation for table imports.", - "default": false, - "type": "boolean", - "nullable": true } }, "required": [ @@ -6506,109 +6168,6 @@ } } }, - "/api/rest/2.0/metadata/tml/async/import": { - "post": { - "operationId": "importMetadataTMLAsync", - "description": " Version: 10.4.0.cl or later", - "tags": [ - "Metadata", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - }, - "skip_cdw_validation_for_tables": { - "description": "if we should skip CDW validation for table imports.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task submitted successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", @@ -6950,114 +6509,6 @@ } } }, - "/api/rest/2.0/metadata/copyobject": { - "post": { - "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of the metadata object specified in the API request.\n\nRequires create access to metadata objects\n\nUpon successful execution, the API returns the id of the new object which is copied from the given object.\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "10.3.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "description": { - "description": "Description of the new object", - "type": "string" - }, - "identifier": { - "description": "GUID of metadata object to be copied (answer id or liveboard id)", - "type": "string" - }, - "type": { - "description": "Type of metadata object", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ] - }, - "title": { - "description": "Title of the new object", - "type": "string" - } - }, - "required": [ - "identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully created a copy of the object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCopyObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "404": { - "description": "Object not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", @@ -7584,7 +7035,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7684,7 +7135,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7879,7 +7330,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -8646,11 +8097,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } } @@ -8774,9 +8221,7 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "CAN_ACCESS_ANALYST_STUDIO", - "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] } } @@ -8965,19 +8410,11 @@ }, "liveboard_options": { "description": "Options to specify details of Liveboard.", - "allOf": [ - { - "$ref": "#/components/schemas/LiveboardOptionsInput" - } - ] + "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "allOf": [ - { - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - } - ] + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { "description": "Time zone", @@ -9618,19 +9055,11 @@ }, "frequency": { "description": "Frequency settings for the scheduled job.", - "allOf": [ - { - "$ref": "#/components/schemas/FrequencyInput" - } - ] + "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/RecipientDetailsInput" - } - ] + "$ref": "#/components/schemas/RecipientDetailsInput" } }, "required": [ @@ -9800,19 +9229,11 @@ }, "sort_options": { "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortingOptions" - } - ] + "$ref": "#/components/schemas/SortingOptions" }, "history_runs_options": { "description": "Options while fetching history runs for the schedule.", - "allOf": [ - { - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" - } - ] + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" }, "schedule_identifiers": { "description": "unique ID or name of the Schedule", @@ -9929,19 +9350,11 @@ }, "liveboard_options": { "description": "Options to specify the details of a Liveboard.", - "allOf": [ - { - "$ref": "#/components/schemas/LiveboardOptionsInput" - } - ] + "$ref": "#/components/schemas/LiveboardOptionsInput" }, "pdf_options": { "description": "Options for PDF export.", - "allOf": [ - { - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - } - ] + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" }, "time_zone": { "description": "Time zone", @@ -10581,19 +9994,11 @@ }, "frequency": { "description": "Frequency of the scheduled job run.", - "allOf": [ - { - "$ref": "#/components/schemas/FrequencyInput" - } - ] + "$ref": "#/components/schemas/FrequencyInput" }, "recipient_details": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/RecipientDetailsInput" - } - ] + "$ref": "#/components/schemas/RecipientDetailsInput" }, "status": { "description": "Status of the schedule", @@ -10687,11 +10092,7 @@ }, "action_details": { "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input_Create" - } - ] + "$ref": "#/components/schemas/Action_Details_Input_Create" }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10702,11 +10103,7 @@ }, "default_action_config": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - } - ] + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -10814,11 +10211,7 @@ "properties": { "action_details": { "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input" - } - ] + "$ref": "#/components/schemas/Action_Details_Input" }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10829,11 +10222,7 @@ }, "default_action_config": { "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input" - } - ] + "$ref": "#/components/schemas/Default_Action_Config_Input" }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -11575,8 +10964,7 @@ "type": "object", "properties": { "error": { - "type": "object", - "nullable": true + "type": "object" } } }, @@ -11660,39 +11048,32 @@ }, "author_id": { "type": "string", - "description": "Unique identifier of author of the user.", - "nullable": true + "description": "Unique identifier of author of the user." }, "can_change_password": { "type": "boolean", - "description": "Defines whether the user can change their password.", - "nullable": true + "description": "Defines whether the user can change their password." }, "complete_detail": { "type": "boolean", - "description": "Defines whether the response has complete detail of the user.", - "nullable": true + "description": "Defines whether the response has complete detail of the user." }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the user in milliseconds.", - "nullable": true + "description": "Creation time of the user in milliseconds." }, "current_org": { "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user.", - "nullable": true + "description": "Current logged-in Org of the user." }, "deleted": { "type": "boolean", - "description": "Indicates whether the user is deleted.", - "nullable": true + "description": "Indicates whether the user is deleted." }, "deprecated": { "type": "boolean", - "description": "Indicates whether the user is deprecated.", - "nullable": true + "description": "Indicates whether the user is deprecated." }, "account_type": { "type": "string", @@ -11703,8 +11084,7 @@ "OIDC_USER", "REMOTE_USER" ], - "description": "Type of the user account.", - "nullable": true + "description": "Type of the user account." }, "account_status": { "type": "string", @@ -11715,98 +11095,81 @@ "LOCKED", "PENDING" ], - "description": "Status of the user account.", - "nullable": true + "description": "Status of the user account." }, "email": { "type": "string", - "description": "Email of the user.", - "nullable": true + "description": "Email of the user." }, "expiration_time_in_millis": { "type": "number", "format": "float", - "description": "Expiration time of the user in milliseconds.", - "nullable": true + "description": "Expiration time of the user in milliseconds." }, "external": { "type": "boolean", - "description": "Indicates whether the user is external.", - "nullable": true + "description": "Indicates whether the user is external." }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataItem" }, - "description": "Metadata objects to add to the users' favorites list.", - "nullable": true + "description": "Metadata objects to add to the users' favorites list." }, "first_login_time_in_millis": { "type": "number", "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds.", - "nullable": true + "description": "Timestamp of the first login session of the user in milliseconds." }, "group_mask": { "type": "integer", "format": "int32", - "description": "Group mask of the user.", - "nullable": true + "description": "Group mask of the user." }, "hidden": { "type": "boolean", - "description": "Indicates whether the user is hidden.", - "nullable": true + "description": "Indicates whether the user is hidden." }, "home_liveboard": { "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true + "description": "Unique ID or name of the default Liveboard assigned to the user." }, "incomplete_details": { "type": "object", - "description": "Incomplete details of user if any present.", - "nullable": true + "description": "Incomplete details of user if any present." }, "is_first_login": { "type": "boolean", - "description": "Indicates whether it is first login of the user.", - "nullable": true + "description": "Indicates whether it is first login of the user." }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user in milliseconds.", - "nullable": true + "description": "Last modified time of the user in milliseconds." }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the user.", - "nullable": true + "description": "Unique identifier of modifier of the user." }, "notify_on_share": { "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard.", - "nullable": true + "description": "User preference for receiving email notifications on shared Answers or Liveboard." }, "onboarding_experience_completed": { "type": "boolean", - "description": "The user preference for turning off the onboarding experience.", - "nullable": true + "description": "The user preference for turning off the onboarding experience." }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/Org" }, - "description": "Orgs to which the user belongs.", - "nullable": true + "description": "Orgs to which the user belongs." }, "owner_id": { "type": "string", - "description": "Unique identifier of owner of the user.", - "nullable": true + "description": "Unique identifier of owner of the user." }, "parent_type": { "type": "string", @@ -11814,95 +11177,75 @@ "USER", "GROUP" ], - "description": "Parent type of the user.", - "nullable": true + "description": "Parent type of the user." }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the user.", - "nullable": true + "description": "Privileges which are assigned to the user." }, "show_onboarding_experience": { "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience.", - "nullable": true + "description": "User's preference to revisit the new user onboarding experience." }, "super_user": { "type": "boolean", - "description": "Indicates whether the user is a super user.", - "nullable": true + "description": "Indicates whether the user is a super user." }, "system_user": { "type": "boolean", - "description": "Indicates whether the user is a system user.", - "nullable": true + "description": "Indicates whether the user is a system user." }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Tags associated with the user.", - "nullable": true + "description": "Tags associated with the user." }, "tenant_id": { "type": "string", - "description": "Unique identifier of tenant of the user.", - "nullable": true + "description": "Unique identifier of tenant of the user." }, "user_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Groups to which the user is assigned.", - "nullable": true + "description": "Groups to which the user is assigned." }, "user_inherited_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Inherited User Groups which the user is part of.", - "nullable": true + "description": "Inherited User Groups which the user is part of." }, "welcome_email_sent": { "type": "boolean", - "description": "Indicates whether welcome email is sent for the user.", - "nullable": true + "description": "Indicates whether welcome email is sent for the user." }, "org_privileges": { "type": "object", - "description": "Privileges which are assigned to the user with org.", - "nullable": true + "description": "Privileges which are assigned to the user with org." }, "preferred_locale": { "type": "string", - "description": "Locale for the user.", - "nullable": true + "description": "Locale for the user." }, "extended_properties": { "type": "object", - "description": "Properties for the user", - "nullable": true + "description": "Properties for the user" }, "extended_preferences": { "type": "object", - "description": "Preferences for the user", - "nullable": true + "description": "Preferences for the user" }, "user_parameters": { "type": "object", - "description": "User Parameters which are specified for the user via JWToken", - "nullable": true - }, - "access_control_properties": { - "type": "object", - "description": "Access Control Properties which are specified for the user via JWToken", - "nullable": true + "description": "User Parameters which are specified for the user via JWToken" } } }, @@ -11954,7 +11297,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." + "description": "Type of metadata object." } } }, @@ -11963,13 +11306,11 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object.", - "nullable": true + "description": "The unique identifier of the object." }, "name": { "type": "string", - "description": "Name of the object.", - "nullable": true + "description": "Name of the object." } }, "description": "The object representation with ID and Name." @@ -11979,8 +11320,7 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata object.", - "nullable": true + "description": "Unique ID or name of the metadata object." }, "type": { "type": "string", @@ -11988,8 +11328,7 @@ "LIVEBOARD", "ANSWER" ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata object." } } }, @@ -12005,8 +11344,7 @@ "CREATED", "MODIFIED" ], - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", @@ -12014,8 +11352,7 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, "description": "Sort options." @@ -12025,120 +11362,97 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "name": { "type": "string", - "description": "Name of the cluster.", - "nullable": true + "description": "Name of the cluster." }, "release_version": { "type": "string", - "description": "The release version of the cluster.", - "nullable": true + "description": "The release version of the cluster." }, "time_zone": { "type": "string", - "description": "The timezone of the cluster.", - "nullable": true + "description": "The timezone of the cluster." }, "locale": { "type": "string", - "description": "The default locale of the cluster.", - "nullable": true + "description": "The default locale of the cluster." }, "date_format": { "type": "string", - "description": "The default date format representation of the cluster.", - "nullable": true + "description": "The default date format representation of the cluster." }, "api_version": { "type": "string", - "description": "The API version of the cluster.", - "nullable": true + "description": "The API version of the cluster." }, "type": { "type": "string", - "description": "The deployment type of the cluster.", - "nullable": true + "description": "The deployment type of the cluster." }, "environment": { "type": "string", - "description": "The deployed environment of the cluster.", - "nullable": true + "description": "The deployed environment of the cluster." }, "license": { "type": "string", - "description": "The license applied to the cluster.", - "nullable": true + "description": "The license applied to the cluster." }, "date_time_format": { "type": "string", - "description": "The default date time format representation of the cluster.", - "nullable": true + "description": "The default date time format representation of the cluster." }, "time_format": { "type": "string", - "description": "The default time format representation of the cluster.", - "nullable": true + "description": "The default time format representation of the cluster." }, "system_user_id": { "type": "string", - "description": "The unique identifier of system user.", - "nullable": true + "description": "The unique identifier of system user." }, "super_user_id": { "type": "string", - "description": "The unique identifier of super user.", - "nullable": true + "description": "The unique identifier of super user." }, "hidden_object_id": { "type": "string", - "description": "The unique identifier of hidden object.", - "nullable": true + "description": "The unique identifier of hidden object." }, "system_group_id": { "type": "string", - "description": "The unique identifier of system group.", - "nullable": true + "description": "The unique identifier of system group." }, "tsadmin_user_id": { "type": "string", - "description": "The unique identifier of tsadmin user.", - "nullable": true + "description": "The unique identifier of tsadmin user." }, "admin_group_id": { "type": "string", - "description": "The unique identifier of admin group.", - "nullable": true + "description": "The unique identifier of admin group." }, "all_tables_connection_id": { "type": "string", - "description": "The unique identifier of all tables connection.", - "nullable": true + "description": "The unique identifier of all tables connection." }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL group.", - "nullable": true + "description": "The unique identifier of ALL group." }, "accept_language": { "type": "string", - "description": "The supported accept language by the cluster.", - "nullable": true + "description": "The supported accept language by the cluster." }, "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL group.", - "nullable": true + "description": "The count of users of ALL group." }, "logical_model_version": { "type": "integer", "format": "int32", - "description": "The version number of logical model of the cluster.", - "nullable": true + "description": "The version number of logical model of the cluster." } } }, @@ -12146,8 +11460,7 @@ "type": "object", "properties": { "onboarding_content_url": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -12157,13 +11470,11 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the Org.", - "nullable": true + "description": "Unique identifier of the Org." }, "name": { "type": "string", - "description": "Name of the Org.", - "nullable": true + "description": "Name of the Org." }, "status": { "type": "string", @@ -12171,13 +11482,11 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the Org.", - "nullable": true + "description": "Status of the Org." }, "description": { "type": "string", - "description": "Description of the Org.", - "nullable": true + "description": "Description of the Org." }, "visibility": { "type": "string", @@ -12185,8 +11494,7 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the Org.", - "nullable": true + "description": "Visibility of the Org." } } }, @@ -12204,46 +11512,36 @@ "type": "string" }, "color": { - "type": "string", - "nullable": true + "type": "string" }, "deleted": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "hidden": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "external": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "deprecated": { - "type": "boolean", - "nullable": true + "type": "boolean" }, "creation_time_in_millis": { "type": "number", - "format": "float", - "nullable": true + "format": "float" }, "modification_time_in_millis": { "type": "number", - "format": "float", - "nullable": true + "format": "float" }, "author_id": { - "type": "string", - "nullable": true + "type": "string" }, "modifier_id": { - "type": "string", - "nullable": true + "type": "string" }, "owner_id": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -12258,47 +11556,39 @@ "properties": { "author_id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the group.", - "nullable": true + "description": "Indicates whether the response has complete detail of the group." }, "content": { "type": "object", - "description": "Content details of the group", - "nullable": true + "description": "Content details of the group" }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the group in milliseconds", - "nullable": true + "description": "Creation time of the group in milliseconds" }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards that are assigned as default Liveboards to the group.", - "nullable": true + "description": "Liveboards that are assigned as default Liveboards to the group." }, "deleted": { "type": "boolean", - "description": "Indicates whether the group is deleted", - "nullable": true + "description": "Indicates whether the group is deleted" }, "deprecated": { "type": "boolean", - "description": "Indicates whether the group is deprecated", - "nullable": true + "description": "Indicates whether the group is deprecated" }, "description": { "type": "string", - "description": "Description of the group", - "nullable": true + "description": "Description of the group" }, "display_name": { "type": "string", @@ -12306,19 +11596,16 @@ }, "external": { "type": "boolean", - "description": "Indicates whether the group is external", - "nullable": true + "description": "Indicates whether the group is external" }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the group", - "nullable": true + "description": "Generation number of the group" }, "hidden": { "type": "boolean", - "description": "Indicates whether the group is hidden", - "nullable": true + "description": "Indicates whether the group is hidden" }, "id": { "type": "string", @@ -12327,31 +11614,26 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the group", - "nullable": true + "description": "Index number of the group" }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the group", - "nullable": true + "description": "Index version number of the group" }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the group", - "nullable": true + "description": "Metadata version number of the group" }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the group in milliseconds.", - "nullable": true + "description": "Last modified time of the group in milliseconds." }, "modifier_id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "name": { "type": "string", @@ -12362,13 +11644,11 @@ "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which group exists.", - "nullable": true + "description": "Orgs in which group exists." }, "owner_id": { "type": "string", - "description": "The unique identifier of the object", - "nullable": true + "description": "The unique identifier of the object" }, "parent_type": { "type": "string", @@ -12376,37 +11656,32 @@ "USER", "GROUP" ], - "description": "Parent type of the group.", - "nullable": true + "description": "Parent type of the group." }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the group", - "nullable": true + "description": "Privileges which are assigned to the group" }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Groups who are part of the group", - "nullable": true + "description": "Groups who are part of the group" }, "system_group": { "type": "boolean", - "description": "Indicates whether the group is a system group.", - "nullable": true + "description": "Indicates whether the group is a system group." }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the group.", - "nullable": true + "description": "Tags associated with the group." }, "type": { "type": "string", @@ -12414,16 +11689,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group.", - "nullable": true + "description": "Type of the group." }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the group.", - "nullable": true + "description": "Users who are part of the group." }, "visibility": { "type": "string", @@ -12438,8 +11711,7 @@ "items": { "$ref": "#/components/schemas/Role" }, - "description": "List of roles assgined to the user", - "nullable": true + "description": "List of roles assgined to the user" } } }, @@ -12448,13 +11720,11 @@ "properties": { "id": { "type": "string", - "description": "id of the role", - "nullable": true + "description": "id of the role" }, "name": { "type": "string", - "description": "name of the role", - "nullable": true + "description": "name of the role" } } }, @@ -12463,13 +11733,11 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "description": "Unique ID or name of the metadata." }, "name_pattern": { "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", - "nullable": true + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." }, "type": { "type": "string", @@ -12482,11 +11750,9 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" + "LOGICAL_RELATIONSHIP" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", - "nullable": true + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" } } }, @@ -12535,10 +11801,9 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP", - "INSIGHT_SPEC" + "LOGICAL_RELATIONSHIP" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." } } }, @@ -12548,16 +11813,14 @@ "include": { "type": "boolean", "default": false, - "description": "Includes objects marked as favorite for the specified users.", - "nullable": true + "description": "Includes objects marked as favorite for the specified users." }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", - "nullable": true + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." } }, "description": "Favorite object options." @@ -12577,8 +11840,7 @@ "FAVORITES", "LAST_ACCESSED" ], - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", @@ -12586,8 +11848,7 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, "description": "Sort options." @@ -12600,13 +11861,11 @@ "properties": { "metadata_id": { "type": "string", - "description": "Unique identifier of the metadata.", - "nullable": true + "description": "Unique identifier of the metadata." }, "metadata_name": { "type": "string", - "description": "Name of the metadata.", - "nullable": true + "description": "Name of the metadata." }, "metadata_type": { "type": "string", @@ -12625,154 +11884,36 @@ }, "dependent_objects": { "type": "object", - "description": "Details of dependent objects of the metadata objects.", - "nullable": true + "description": "Details of dependent objects of the metadata objects." }, "incomplete_objects": { "type": "array", "items": { "type": "object" }, - "description": "Details of incomplete information of the metadata objects if any.", - "nullable": true + "description": "Details of incomplete information of the metadata objects if any." }, "metadata_detail": { "type": "object", - "description": "Complete details of the metadata objects.", - "nullable": true + "description": "Complete details of the metadata objects." }, "metadata_header": { - "type": "object", - "description": "Header information of the metadata objects.", - "nullable": true - }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects.", - "nullable": true - }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", - "nullable": true - } - }, - "description": "Metadata Search Response Object." - }, - "GetAsyncImportStatusResponse": { - "type": "object", - "properties": { - "status_list": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - }, - "description": "List of task statuses.", - "nullable": true - }, - "last_batch": { - "type": "boolean", - "description": "Indicates whether there are more task statuses to fetch.", - "nullable": true - } - } - }, - "ImportEPackAsyncTaskStatus": { - "type": "object", - "properties": { - "tenant_id": { - "type": "string", - "description": "GUID of tenant from which the task is initiated.", - "nullable": true - }, - "org_id": { - "type": "integer", - "format": "int32", - "description": "Organisation ID of the user who initiated the task.", - "nullable": true - }, - "task_id": { - "type": "string", - "description": "Unique identifier for the task.", - "nullable": true - }, - "task_name": { - "type": "string", - "description": "Name of the task.", - "nullable": true - }, - "import_response": { - "type": "object", - "description": "Response of imported objects so far.", - "nullable": true - }, - "task_status": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ], - "description": "Current status of the task.", - "nullable": true - }, - "author_id": { - "type": "string", - "description": "ID of the user who initiated the task.", - "nullable": true - }, - "import_policy": { - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" - ], - "description": "Policy used for the import task.", - "nullable": true - }, - "created_at": { - "type": "number", - "format": "float", - "description": "Time when the task was created (in ms since epoch).", - "nullable": true - }, - "in_progress_at": { - "type": "number", - "format": "float", - "description": "Time when the task started (in ms since epoch).", - "nullable": true - }, - "completed_at": { - "type": "number", - "format": "float", - "description": "Time when the task was completed (in ms since epoch).", - "nullable": true - }, - "total_object_count": { - "type": "integer", - "format": "int32", - "description": "Total number of objects to process.", - "nullable": true + "type": "object", + "description": "Header information of the metadata objects." }, - "object_processed_count": { - "type": "integer", - "format": "int32", - "description": "Number of objects processed so far.", - "nullable": true + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects." }, - "modified_at": { - "type": "number", - "format": "float", - "description": "Last time the task status was updated (in ms since epoch).", - "nullable": true + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed." } - } + }, + "description": "Metadata Search Response Object." }, "SqlQueryResponse": { "type": "object", @@ -12844,26 +11985,22 @@ "include_cover_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include the cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true + "description": "Indicates whether to include customized wide logo in the footer if available." }, "include_filter_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." }, "include_page_number": { "type": "boolean", "default": true, - "description": "Indicates whether to include page number in the footer of each page.", - "nullable": true + "description": "Indicates whether to include page number in the footer of each page." }, "page_orientation": { "type": "string", @@ -12872,19 +12009,16 @@ "LANDSCAPE" ], "default": "PORTRAIT", - "description": "Page orientation of the PDF.", - "nullable": true + "description": "Page orientation of the PDF." }, "truncate_table": { "type": "boolean", "default": false, - "description": "Indicates whether to include only the first page of the tables.", - "nullable": true + "description": "Indicates whether to include only the first page of the tables." }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "description": "Text to include in the footer of each page." } } }, @@ -12894,14 +12028,12 @@ "include_cover_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include the cover page with the Liveboard title." }, "include_filter_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." } } }, @@ -12909,8 +12041,7 @@ "type": "object", "properties": { "principal_permission_details": { - "type": "object", - "nullable": true + "type": "object" } } }, @@ -12918,8 +12049,7 @@ "type": "object", "properties": { "metadata_permission_details": { - "type": "object", - "nullable": true + "type": "object" } } }, @@ -12939,8 +12069,7 @@ "USER", "USER_GROUP" ], - "description": "Principal type.", - "nullable": true + "description": "Principal type." } } }, @@ -12959,8 +12088,7 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata object." }, "identifier": { "type": "string", @@ -13116,13 +12244,11 @@ }, "visualization_id": { "type": "string", - "description": "Unique ID of the visualization.", - "nullable": true + "description": "Unique ID of the visualization." }, "visualization_name": { "type": "string", - "description": "Name of the visualization.", - "nullable": true + "description": "Name of the visualization." } } }, @@ -13174,41 +12300,34 @@ "properties": { "repository_url": { "type": "string", - "description": "Remote repository URL configured", - "nullable": true + "description": "Remote repository URL configured" }, "username": { "type": "string", - "description": "Username to authenticate connection to the version control system", - "nullable": true + "description": "Username to authenticate connection to the version control system" }, "commit_branch_name": { "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", - "nullable": true + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." }, "branches": { "type": "array", "items": { "type": "string" }, - "description": "Branches that have been pulled in local repository", - "nullable": true + "description": "Branches that have been pulled in local repository" }, "enable_guid_mapping": { "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance", - "nullable": true + "description": "Maintain mapping of guid for the deployment to an instance" }, "configuration_branch_name": { "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", - "nullable": true + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the Org", - "nullable": true + "description": "Details of the Org" } } }, @@ -13254,13 +12373,11 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer", - "nullable": true + "description": "Email id of the committer" }, "username": { "type": "string", - "description": "Username of the committer", - "nullable": true + "description": "Username of the committer" } } }, @@ -13269,13 +12386,11 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer", - "nullable": true + "description": "Email id of the committer" }, "username": { "type": "string", - "description": "Username of the committer", - "nullable": true + "description": "Username of the committer" } } }, @@ -13284,21 +12399,18 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the connection.", - "nullable": true + "description": "Unique ID or name of the connection." }, "name_pattern": { "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", - "nullable": true + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." }, "data_warehouse_objects": { "type": "array", "items": { "$ref": "#/components/schemas/DataWarehouseObjectInput" }, - "description": "Filter options for databases, schemas, tables and columns.", - "nullable": true + "description": "Filter options for databases, schemas, tables and columns." } } }, @@ -13307,23 +12419,19 @@ "properties": { "database": { "type": "string", - "description": "Name of the database.", - "nullable": true + "description": "Name of the database." }, "schema": { "type": "string", - "description": "Name of the schema within the database.", - "nullable": true + "description": "Name of the schema within the database." }, "table": { "type": "string", - "description": "Name of the table within the schema.", - "nullable": true + "description": "Name of the table within the schema." }, "column": { "type": "string", - "description": "Name of the column within the table.", - "nullable": true + "description": "Name of the column within the table." } } }, @@ -13344,8 +12452,7 @@ "USER_STATE", "ROW_COUNT" ], - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", @@ -13353,8 +12460,7 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } } }, @@ -13376,8 +12482,7 @@ }, "description": { "type": "string", - "description": "Description of the connection.", - "nullable": true + "description": "Description of the connection." }, "data_warehouse_type": { "type": "string", @@ -13417,13 +12522,11 @@ }, "data_warehouse_objects": { "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects", - "nullable": true + "description": "List of Data warehouse objects" }, "details": { "type": "object", - "description": "Details of the connection.", - "nullable": true + "description": "Details of the connection." } } }, @@ -13457,13 +12560,11 @@ "items": { "$ref": "#/components/schemas/SchemaObject" }, - "description": "Schemas of the database.", - "nullable": true + "description": "Schemas of the database." }, "auto_created": { "type": "boolean", - "description": "Determines if the object is auto created.", - "nullable": true + "description": "Determines if the object is auto created." } } }, @@ -13482,8 +12583,7 @@ "items": { "$ref": "#/components/schemas/Table" }, - "description": "Tables in the schema.", - "nullable": true + "description": "Tables in the schema." } } }, @@ -13502,36 +12602,30 @@ "items": { "$ref": "#/components/schemas/Column" }, - "description": "Columns of the table.", - "nullable": true + "description": "Columns of the table." }, "type": { "type": "string", - "description": "Type of table. Either view or table", - "nullable": true + "description": "Type of table. Either view or table" }, "description": { "type": "string", - "description": "Description of the table", - "nullable": true + "description": "Description of the table" }, "selected": { "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true + "description": "Determines if the table is selected" }, "linked": { "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true + "description": "Determines if the table is linked" }, "relationships": { "type": "array", "items": { "type": "object" }, - "description": "List of relationships for the table", - "nullable": true + "description": "List of relationships for the table" } } }, @@ -13552,23 +12646,19 @@ }, "is_aggregate": { "type": "string", - "description": "Determines if the column schema is an aggregate", - "nullable": true + "description": "Determines if the column schema is an aggregate" }, "can_import": { "type": "boolean", - "description": "Determines if the column schema can be imported", - "nullable": true + "description": "Determines if the column schema can be imported" }, "selected": { "type": "boolean", - "description": "Determines if the table is selected", - "nullable": true + "description": "Determines if the table is selected" }, "is_linked_active": { "type": "boolean", - "description": "Determines if the table is linked", - "nullable": true + "description": "Determines if the table is linked" } } }, @@ -13596,24 +12686,21 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true + "description": "number of groups assigned with this role" }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists.", - "nullable": true + "description": "Orgs in which role exists." }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role", - "nullable": true + "description": "Details of groups assigned with this role" }, "privileges": { "type": "array", @@ -13660,11 +12747,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, "description": "Privileges granted to the role." @@ -13676,53 +12759,43 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role", - "nullable": true + "description": "Permission details of the Role" }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true + "description": "Unique identifier of author of the role." }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true + "description": "Unique identifier of modifier of the role." }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true + "description": "Creation time of the role in milliseconds." }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true + "description": "Last modified time of the role in milliseconds." }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true + "description": "Indicates whether the role is deleted." }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true + "description": "Indicates whether the role is deprecated." }, "external": { "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true + "description": "Indicates whether the role is external." }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true + "description": "Indicates whether the role is hidden." }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true + "description": "Indicates whether the role is shared via connection" } }, "description": "Response for search role api should handle hidden privileges as well." @@ -13732,8 +12805,7 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, "description": "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." @@ -13764,8 +12836,7 @@ "items": { "$ref": "#/components/schemas/Metadata_Association_Item" }, - "description": "Metadata objects to assign the the custom action to.", - "nullable": true + "description": "Metadata objects to assign the the custom action to." }, "name": { "type": "string", @@ -13776,8 +12847,7 @@ "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Unique ID or name of the User groups which are associated with the custom action.", - "nullable": true + "description": "Unique ID or name of the User groups which are associated with the custom action." } }, "description": "Custom action details" @@ -13787,13 +12857,11 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type", - "nullable": true + "description": "CALLBACK Custom Action Type" }, "URL": { "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type", - "nullable": true + "description": "URL Custom Action Type" } }, "description": "Type and Configuration for Custom Actions" @@ -13803,8 +12871,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name of the SDK. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -13817,16 +12884,14 @@ "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action.", - "nullable": true + "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItem" }, - "description": "Query parameters for url.", - "nullable": true + "description": "Query parameters for url." }, "url": { "type": "string", @@ -13834,8 +12899,7 @@ }, "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name of the SDK. By default, the value will be set to action name." } }, "description": "URL Custom Action Type" @@ -13845,23 +12909,19 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true + "description": "Bearer tokens enable requests to authenticate using an access key." }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true + "description": "No authorization. If your request doesn't require authorization." } }, "description": "Authorization type for the custom action." @@ -13871,13 +12931,11 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name", - "nullable": true + "description": "Enter your key name" }, "value": { "type": "string", - "description": "Enter you key value", - "nullable": true + "description": "Enter you key value" } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -13887,13 +12945,11 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication", - "nullable": true + "description": "Password for the basic authentication" }, "username": { "type": "string", - "description": "Username for the basic authentication", - "nullable": true + "description": "Username for the basic authentication" } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -13903,13 +12959,11 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter", - "nullable": true + "description": "Key for the url query parameter" }, "value": { "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "description": "Value for the url query parameter" } } }, @@ -13918,8 +12972,7 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, "description": "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." @@ -13942,7 +12995,7 @@ }, "type": { "type": "string", - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." + "description": "Type of metadata." } } }, @@ -13951,13 +13004,11 @@ "properties": { "position": { "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, "description": "Specify that the association is enabled for the metadata object" @@ -13975,8 +13026,7 @@ "ANSWER", "WORKSHEET" ], - "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata object." }, "identifier": { "type": "string", @@ -13989,12 +13039,10 @@ "type": "object", "properties": { "id": { - "type": "string", - "nullable": true + "type": "string" }, "name": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -14002,12 +13050,10 @@ "type": "object", "properties": { "id": { - "type": "string", - "nullable": true + "type": "string" }, "name": { - "type": "string", - "nullable": true + "type": "string" } } }, @@ -14033,29 +13079,25 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Metadata_Object" - }, - "nullable": true + } } }, - "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" + "description": "JWT user options to create a JWT token given the payload." }, "JWT_Parameter": { "type": "object", "properties": { "runtime_filter": { "type": "object", - "description": "Runtime filter parameter type in JWT.", - "nullable": true + "description": "Runtime filter parameter type in JWT." }, "runtime_sort": { "type": "object", - "description": "Runtime sort parameter type in JWT.", - "nullable": true + "description": "Runtime sort parameter type in JWT." }, "runtime_param_override": { "type": "object", - "description": "Runtime param override type in JWT.", - "nullable": true + "description": "Runtime param override type in JWT." } }, "description": "List of runtime parameters need to set during the session." @@ -14064,16 +13106,14 @@ "type": "object", "properties": { "identifier": { - "type": "string", - "nullable": true + "type": "string" }, "type": { "type": "string", "enum": [ "LIVEBOARD", "ANSWER" - ], - "nullable": true + ] } }, "description": "Metadata objects." @@ -14085,35 +13125,33 @@ "type": "array", "items": { "$ref": "#/components/schemas/User_Object" - }, - "nullable": true + } }, "runtime_filters": { "type": "array", "items": { - "$ref": "#/components/schemas/Runtime_Filters" - }, - "description": "Objects to apply the User_Runtime_Filters.\n\nExamples to set the `runtime_filters` :\n```json\n{ \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false }\n```", - "nullable": true + "$ref": "#/components/schemas/User_Runtime_Filters" + } }, "runtime_sorts": { "type": "array", "items": { - "$ref": "#/components/schemas/Runtime_Sorts" - }, - "description": "Objects to apply the User_Runtime_Sorts.\n\nExamples to set the `runtime_sorts` :\n```json\n{ \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false }\n```", - "nullable": true + "$ref": "#/components/schemas/User_Runtime_Sorts" + } }, "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/Runtime_Parameters" - }, - "description": "Objects to apply the Runtime_Parameters.\n\nExamples to set the `parameters` :\n```json\n{ \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false }\n```", - "nullable": true + "$ref": "#/components/schemas/User_Parameters" + } + }, + "compress": { + "type": "boolean", + "default": false, + "description": " Version: 9.12.0.cl or later" } }, - "description": "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).\n" + "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" }, "User_Object": { "type": "object", @@ -14128,8 +13166,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of object." }, "identifier": { "type": "string", @@ -14138,7 +13175,7 @@ }, "description": "Objects to apply the User_Object." }, - "Runtime_Filters": { + "User_Runtime_Filters": { "type": "object", "required": [ "column_name", @@ -14161,48 +13198,43 @@ "type": "string", "enum": [ "EQ", - "NE", - "LT", - "LE", - "GT", "GE", + "GT", "IN", - "BW", - "CONTAINS", + "LE", + "LT", + "NE", "BEGINS_WITH", - "ENDS_WITH", + "BW", "BW_INC", - "BW_INC_MIN", "BW_INC_MAX", - "LIKE", - "NOT_IN" + "BW_INC_MIN", + "CONTAINS", + "ENDS_WITH" ], "description": "Operator value. Example: EQ" }, "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", - "nullable": true + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime filter.", - "nullable": true + "description": "Object to apply the runtime filter." } }, - "description": "Objects to apply the Runtime_Filters." + "description": "Objects to apply the User_Runtime_Filters." }, - "Runtime_Sorts": { + "User_Runtime_Sorts": { "type": "object", "properties": { "column_name": { "type": "string", - "description": "The column name to apply filter.", - "nullable": true + "description": "The column name to apply filter." }, "order": { "type": "string", @@ -14210,27 +13242,24 @@ "ASC", "DESC" ], - "description": "Order for the sort.", - "nullable": true + "description": "Order for the sort." }, "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", - "nullable": true + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime sort.", - "nullable": true + "description": "Object to apply the runtime sort." } }, - "description": "Objects to apply the Runtime_Sorts." + "description": "Objects to apply the User_Runtime_Sorts." }, - "Runtime_Parameters": { + "User_Parameters": { "type": "object", "required": [ "name", @@ -14251,16 +13280,14 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", - "nullable": true + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later" }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime parameter.", - "nullable": true + "description": "Object to apply the runtime parameter." } }, "description": "Objects to apply the Runtime_Parameters." @@ -14317,13 +13344,11 @@ "org_id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the metadata.", - "nullable": true + "description": "Unique identifier of the metadata." }, "metadata_id": { "type": "string", - "description": "Unique identifier of the Org.", - "nullable": true + "description": "Unique identifier of the Org." } } }, @@ -14334,11 +13359,10 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Parameter" - }, - "nullable": true + } } }, - "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" + "description": "JWT user options to create a JWT token given the payload." }, "TokenValidationResponse": { "type": "object", @@ -14374,185 +13398,12 @@ } } }, - "FilterRules": { - "type": "object", - "required": [ - "column_name", - "operator", - "values" - ], - "properties": { - "column_name": { - "type": "string", - "description": "The name of the column to apply the filter on." - }, - "operator": { - "type": "string", - "enum": [ - "EQ", - "NE", - "LT", - "LE", - "GT", - "GE", - "IN", - "BW", - "CONTAINS", - "BEGINS_WITH", - "ENDS_WITH", - "BW_INC", - "BW_INC_MIN", - "BW_INC_MAX", - "LIKE", - "NOT_IN" - ], - "description": "The operator to use for filtering. Example: EQ (equals), GT(greater than), etc." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The values to filter on. To get all records, use TS_WILDCARD_ALL as values." - } - }, - "description": "Filter Rules to be applied on Objects." - }, - "ParameterValues": { - "type": "object", - "required": [ - "name", - "values" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the column to apply the filter on." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The values to filter on. Only single value is supported currently." - } - }, - "description": "Filter Rules to be applied on Objects." - }, - "TokenAccessScopeObject": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE" - ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique name/id of the object." - } - }, - "description": "Objects on which the filter rules and parameters values should be applied to" - }, - "Group_Object": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "nullable": true - } - }, - "description": "Groups objects." - }, - "AccessToken": { - "type": "object", - "required": [ - "token", - "org", - "user", - "creation_time_in_millis", - "expiration_time_in_millis" - ], - "properties": { - "id": { - "type": "string", - "description": "GUID of the auth token.", - "nullable": true - }, - "token": { - "type": "string", - "description": "Bearer auth token." - }, - "org": { - "$ref": "#/components/schemas/OrgInfo", - "description": "Org information for which the token is generated." - }, - "user": { - "$ref": "#/components/schemas/UserInfo", - "description": "User information for which the token is generated." - }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token creation time in milliseconds." - }, - "expiration_time_in_millis": { - "type": "number", - "format": "float", - "description": "Token expiration time in milliseconds." - } - } - }, - "OrgInfo": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Id." - }, - "name": { - "type": "string", - "description": "Name.", - "nullable": true - } - } - }, - "UserInfo": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "type": "string", - "description": "Id." - }, - "name": { - "type": "string", - "description": "Name.", - "nullable": true - } - } - }, "ResponseActivationURL": { "type": "object", "properties": { "activation_link": { "type": "string", - "description": "Activation link to activate the user.", - "nullable": true + "description": "Activation link to activate the user." } }, "description": "The object representation with activation link." @@ -14574,8 +13425,7 @@ }, "password": { "type": "string", - "description": "Password of the user.", - "nullable": true + "description": "Password of the user." }, "account_type": { "type": "string", @@ -14587,8 +13437,7 @@ "REMOTE_USER" ], "default": "LOCAL_USER", - "description": "Type of the user account.", - "nullable": true + "description": "Type of the user account." }, "account_status": { "type": "string", @@ -14600,29 +13449,25 @@ "PENDING" ], "default": "ACTIVE", - "description": "Status of the user account.", - "nullable": true + "description": "Status of the user account." }, "email": { "type": "string", - "description": "Email address of the user.", - "nullable": true + "description": "Email address of the user." }, "org_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the Orgs to which the user belongs.", - "nullable": true + "description": "ID or name of the Orgs to which the user belongs." }, "group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the groups to which the user belongs.", - "nullable": true + "description": "ID or name of the groups to which the user belongs." }, "visibility": { "type": "string", @@ -14630,37 +13475,31 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", - "nullable": true + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." }, "notify_on_share": { "type": "boolean", "default": true, - "description": "Notify user when other users or groups share metadata objects", - "nullable": true + "description": "Notify user when other users or groups share metadata objects" }, "show_onboarding_experience": { "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs", - "nullable": true + "description": "Show or hide the new user onboarding walkthroughs" }, "onboarding_experience_completed": { "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs", - "nullable": true + "description": "Revisit the new user onboarding walkthroughs" }, "home_liveboard_identifier": { "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user.", - "nullable": true + "description": "Unique ID or name of the default Liveboard assigned to the user." }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" }, - "description": "Metadata objects to add to the user's favorites list.", - "nullable": true + "description": "Metadata objects to add to the user's favorites list." } } }, @@ -14671,22 +13510,19 @@ "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true + } }, "users_updated": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true + } }, "users_deleted": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - }, - "nullable": true + } } } }, @@ -14698,8 +13534,7 @@ "properties": { "id": { "type": "string", - "description": "Unique identifier of the user.", - "nullable": true + "description": "Unique identifier of the user." }, "name": { "type": "string", @@ -14722,8 +13557,7 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n 1. LIVEBOARD\n 2. ANSWERS\n 3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n 4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." }, "identifier": { "type": "string", @@ -14751,13 +13585,11 @@ "items": { "type": "string" }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", - "nullable": true + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." }, "description": { "type": "string", - "description": "Description of the group.", - "nullable": true + "description": "Description of the group." }, "privileges": { "type": "array", @@ -14786,23 +13618,17 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, - "description": "Privileges that will be assigned to the group.", - "nullable": true + "description": "Privileges that will be assigned to the group." }, "sub_group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the sub-groups to add to the group.", - "nullable": true + "description": "Unique ID or name of the sub-groups to add to the group." }, "type": { "type": "string", @@ -14810,16 +13636,14 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group.", - "nullable": true + "description": "Type of the group." }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users to assign to the group.", - "nullable": true + "description": "Unique ID or name of the users to assign to the group." }, "visibility": { "type": "string", @@ -14827,8 +13651,7 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", - "nullable": true + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." } } }, @@ -14863,16 +13686,6 @@ } } }, - "ResponseCopyObject": { - "type": "object", - "properties": { - "metadata_id": { - "type": "string", - "description": "The unique identifier of the object.", - "nullable": true - } - } - }, "ExportMetadataTypeInput": { "type": "object", "required": [ @@ -14891,8 +13704,7 @@ "USER_GROUP", "ROLE" ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -14916,8 +13728,7 @@ "LOGICAL_COLUMN", "LOGICAL_RELATIONSHIP" ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -14939,8 +13750,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata." }, "identifier": { "type": "string", @@ -14962,8 +13772,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": " Type of metadata.\n \n\nType 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.", - "nullable": true + "description": "Type of metadata (Optional when given identifier is ID)." }, "identifier": { "type": "string", @@ -15011,8 +13820,7 @@ "LOGICAL_TABLE", "CUSTOM_ACTION" ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata." } } }, @@ -15021,41 +13829,34 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true + "description": "Repository user using which changes were committed" }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true + "description": "Thoughtspot user who commits the changes" }, "comment": { "type": "string", - "description": "Comments associated with the commit", - "nullable": true + "description": "Comments associated with the commit" }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true + "description": "Time at which the changes were committed." }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit", - "nullable": true + "description": "SHA id associated with the commit" }, "branch": { "type": "string", - "description": "Branch where changes were committed", - "nullable": true + "description": "Branch where changes were committed" }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit", - "nullable": true + "description": "Files that were pushed as part of this commit" } } }, @@ -15076,8 +13877,7 @@ }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true + "description": "Any error or warning with the deployment" } } }, @@ -15086,49 +13886,41 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed", - "nullable": true + "description": "Repository user using which changes were committed" }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes", - "nullable": true + "description": "Thoughtspot user who commits the changes" }, "comment": { "type": "string", - "description": "Comments associated with the commit", - "nullable": true + "description": "Comments associated with the commit" }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed.", - "nullable": true + "description": "Time at which the changes were committed." }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit", - "nullable": true + "description": "SHA id associated with the commit" }, "branch": { "type": "string", - "description": "Branch where changes were committed", - "nullable": true + "description": "Branch where changes were committed" }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit", - "nullable": true + "description": "Files that were pushed as part of this commit" }, "reverted_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/RevertedMetadata" }, - "description": "Metadata of reverted file of this commit", - "nullable": true + "description": "Metadata of reverted file of this commit" } } }, @@ -15169,28 +13961,23 @@ "properties": { "file_name": { "type": "string", - "description": "Name of the file deployed", - "nullable": true + "description": "Name of the file deployed" }, "metadata_name": { "type": "string", - "description": "Name of the metadata object", - "nullable": true + "description": "Name of the metadata object" }, "metadata_type": { "type": "string", - "description": "Type of the metadata object", - "nullable": true + "description": "Type of the metadata object" }, "status_code": { "type": "string", - "description": "Indicates the status of deployment for the file", - "nullable": true + "description": "Indicates the status of deployment for the file" }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment", - "nullable": true + "description": "Any error or warning with the deployment" } } }, @@ -15248,8 +14035,7 @@ }, "details": { "type": "object", - "description": "Details of the connection.", - "nullable": true + "description": "Details of the connection." } } }, @@ -15258,8 +14044,7 @@ "properties": { "status": { "type": "boolean", - "description": "Status of the connection diff.", - "nullable": true + "description": "Status of the connection diff." } } }, @@ -15287,24 +14072,21 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role", - "nullable": true + "description": "number of groups assigned with this role" }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists.", - "nullable": true + "description": "Orgs in which role exists." }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role", - "nullable": true + "description": "Details of groups assigned with this role" }, "privileges": { "type": "array", @@ -15339,11 +14121,7 @@ "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" + "BLOCK_NON_EMBED_FULL_APP_ACCESS" ] }, "description": "Privileges granted to the role." @@ -15355,53 +14133,43 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role", - "nullable": true + "description": "Permission details of the Role" }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role.", - "nullable": true + "description": "Unique identifier of author of the role." }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role.", - "nullable": true + "description": "Unique identifier of modifier of the role." }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds.", - "nullable": true + "description": "Creation time of the role in milliseconds." }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds.", - "nullable": true + "description": "Last modified time of the role in milliseconds." }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted.", - "nullable": true + "description": "Indicates whether the role is deleted." }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated.", - "nullable": true + "description": "Indicates whether the role is deprecated." }, "external": { "type": "boolean", - "description": "Indicates whether the role is external.", - "nullable": true + "description": "Indicates whether the role is external." }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden.", - "nullable": true + "description": "Indicates whether the role is hidden." }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection", - "nullable": true + "description": "Indicates whether the role is shared via connection" } } }, @@ -15426,51 +14194,42 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true + "description": "Indicates whether to include complete Liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true + "description": "Indicates whether to include customized wide logo in the footer if available." }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "description": "Indicates whether to include page number in the footer of each page" }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "description": "Text to include in the footer of each page." }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "description": "Page orientation of the PDF." }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size.", - "nullable": true + "description": "Page size." }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true + "description": "Indicates whether to include only first page of the tables." } }, "description": "Options for PDF export." @@ -15534,16 +14293,14 @@ "items": { "type": "string" }, - "description": "Emails of the recipients.", - "nullable": true + "description": "Emails of the recipients." }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItemInput" }, - "description": "User or groups to be set as recipients of the schedule notifications.", - "nullable": true + "description": "User or groups to be set as recipients of the schedule notifications." } }, "description": "Recipients of the scheduled job notification." @@ -15589,8 +14346,7 @@ }, "description": { "type": "string", - "description": "Description of the job.", - "nullable": true + "description": "Description of the job." }, "file_format": { "type": "string", @@ -15606,8 +14362,7 @@ }, "liveboard_options": { "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard.", - "nullable": true + "description": "Options to specify details of Liveboard." }, "metadata": { "$ref": "#/components/schemas/MetadataResponse", @@ -15619,8 +14374,7 @@ }, "pdf_options": { "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export.", - "nullable": true + "description": "Options for PDF export." }, "recipient_details": { "$ref": "#/components/schemas/RecipientDetails", @@ -15628,8 +14382,7 @@ }, "status": { "type": "string", - "description": "Status of the job", - "nullable": true + "description": "Status of the job" }, "time_zone": { "type": "string", @@ -15640,8 +14393,7 @@ "items": { "$ref": "#/components/schemas/ResponseScheduleRun" }, - "description": "Schedule runs history records.", - "nullable": true + "description": "Schedule runs history records." } } }, @@ -15738,8 +14490,7 @@ ], "properties": { "name": { - "type": "string", - "nullable": true + "type": "string" }, "id": { "type": "string" @@ -15757,51 +14508,42 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard.", - "nullable": true + "description": "Indicates whether to include complete Liveboard." }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title.", - "nullable": true + "description": "Indicates whether to include cover page with the Liveboard title." }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available.", - "nullable": true + "description": "Indicates whether to include customized wide logo in the footer if available." }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters.", - "nullable": true + "description": "Indicates whether to include a page with all applied filters." }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page", - "nullable": true + "description": "Indicates whether to include page number in the footer of each page" }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page.", - "nullable": true + "description": "Text to include in the footer of each page." }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF.", - "nullable": true + "description": "Page orientation of the PDF." }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size.", - "nullable": true + "description": "Page size." }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables.", - "nullable": true + "description": "Indicates whether to include only first page of the tables." } }, "description": "Options for PDF export." @@ -15814,16 +14556,14 @@ "items": { "type": "string" }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", - "nullable": true + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItem" }, - "description": "List of user or groups to subscribe for the scheduled job notifications.", - "nullable": true + "description": "List of user or groups to subscribe for the scheduled job notifications." } }, "description": "Recipient configuration which includes email address, ID or name of the users and groups." @@ -15874,8 +14614,7 @@ }, "detail": { "type": "string", - "description": "Message details related to the schedule run.", - "nullable": true + "description": "Message details related to the schedule run." } }, "description": "Schedule run response object" @@ -15884,15 +14623,13 @@ "type": "object", "properties": { "identifier": { - "type": "string", - "nullable": true + "type": "string" }, "type": { "type": "string", "enum": [ "LIVEBOARD" - ], - "nullable": true + ] } } }, @@ -15901,13 +14638,11 @@ "properties": { "field_name": { "type": "string", - "description": "Name of the field to apply the sort on.", - "nullable": true + "description": "Name of the field to apply the sort on." }, "order": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending).", - "nullable": true + "description": "Sort order : ASC(Ascending) or DESC(Descending)." } }, "description": "Sort options." @@ -15918,22 +14653,19 @@ "include_history_runs": { "type": "boolean", "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification.", - "nullable": true + "description": "Indicates whether to fetch history runs for the scheduled notification." }, "record_size": { "type": "integer", "format": "int32", "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", - "nullable": true + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." }, "record_offset": { "type": "integer", "format": "int32", "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched.", - "nullable": true + "description": "Indicates the starting record number from where history runs records should be fetched." } } }, @@ -15942,13 +14674,11 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type", - "nullable": true + "description": "CALLBACK Custom Action Type" }, "URL": { "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type", - "nullable": true + "description": "URL Custom Action Type" } }, "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" @@ -15958,8 +14688,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -15972,16 +14701,14 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url.", - "nullable": true + "description": "Query parameters for url." }, "url": { "type": "string", @@ -15989,8 +14716,7 @@ }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true + "description": "Reference name. By default the value will be set to action name" } }, "description": "URL Custom Action Type" @@ -16000,23 +14726,19 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", - "nullable": true + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", - "nullable": true + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key.", - "nullable": true + "description": "Bearer tokens enable requests to authenticate using an access key." }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization.", - "nullable": true + "description": "No authorization. If your request doesn't require authorization." } }, "description": "Authorization type for the custom action." @@ -16026,13 +14748,11 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name", - "nullable": true + "description": "Enter your key name" }, "value": { "type": "string", - "description": "Enter you key value", - "nullable": true + "description": "Enter you key value" } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -16042,13 +14762,11 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication", - "nullable": true + "description": "Password for the basic authentication" }, "username": { "type": "string", - "description": "Username for the basic authentication", - "nullable": true + "description": "Username for the basic authentication" } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -16058,13 +14776,11 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter", - "nullable": true + "description": "Key for the url query parameter" }, "value": { "type": "string", - "description": "Value for the url query parameter", - "nullable": true + "description": "Value for the url query parameter" } } }, @@ -16076,8 +14792,7 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "description": "Specify that the association is enabled for the metadata object" }, "identifier": { "type": "string", @@ -16090,8 +14805,7 @@ "ANSWER", "WORKSHEET" ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata." } } }, @@ -16106,14 +14820,12 @@ "CONTEXT_MENU" ], "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -16124,8 +14836,7 @@ "visibility": { "type": "boolean", "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" } }, "description": "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." @@ -16135,13 +14846,11 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type", - "nullable": true + "description": "CALLBACK Custom Action Type" }, "URL": { "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type", - "nullable": true + "description": "URL Custom Action Type" } }, "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." @@ -16151,8 +14860,7 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name.", - "nullable": true + "description": "Reference name. By default, the value will be set to action name." } }, "description": "CALLBACK Custom Action Type" @@ -16162,26 +14870,22 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action.", - "nullable": true + "description": "Authorization type for the custom action." }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url.", - "nullable": true + "description": "Query parameters for url." }, "url": { "type": "string", - "description": "Request Url for the Custom action.", - "nullable": true + "description": "Request Url for the Custom action." }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name", - "nullable": true + "description": "Reference name. By default the value will be set to action name" } }, "description": "URL Custom Action Type" @@ -16191,13 +14895,11 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object", - "nullable": true + "description": "Specify that the association is enabled for the metadata object" }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata.", - "nullable": true + "description": "Unique ID or name of the metadata." }, "type": { "type": "string", @@ -16206,8 +14908,7 @@ "ANSWER", "WORKSHEET" ], - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true + "description": "Type of metadata." } } }, @@ -16221,13 +14922,11 @@ "PRIMARY", "CONTEXT_MENU" ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", - "nullable": true + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", - "nullable": true + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -16237,8 +14936,7 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", - "nullable": true + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." } }, "description": "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." @@ -16256,8 +14954,7 @@ }, "model_path": { "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", - "nullable": true + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." }, "tables": { "type": "array", @@ -16272,32 +14969,25 @@ "type": "object", "properties": { "dbt_connection_identifier": { - "type": "string", - "nullable": true + "type": "string" }, "project_name": { - "type": "string", - "nullable": true + "type": "string" }, "connection_id": { - "type": "string", - "nullable": true + "type": "string" }, "connection_name": { - "type": "string", - "nullable": true + "type": "string" }, "cdw_database": { - "type": "string", - "nullable": true + "type": "string" }, "import_type": { - "type": "string", - "nullable": true + "type": "string" }, "author_name": { - "type": "string", - "nullable": true + "type": "string" } } }, From 1d2d4cfa254a0a9bb7a871b2db8dcb77805d09f9 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 19 Sep 2024 09:02:49 +0000 Subject: [PATCH 187/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2466 +++++++++++++++++++++++-------- 1 file changed, 1888 insertions(+), 578 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 07b564609..a1eaff8f6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -21,6 +21,14 @@ ], "description": "Roles for version 9.12.0.cl" }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, { "name": "9.7.0.cl", "id": "9.7.0.cl", @@ -45,6 +53,14 @@ ], "description": "Roles for version 10.1.0.cl" }, + { + "name": "10.3.0.cl", + "id": "10.3.0.cl", + "tags": [ + "10.3.0.cl" + ], + "description": "Roles for version 10.3.0.cl" + }, { "name": "10.0.0.cl", "id": "10.0.0.cl", @@ -296,7 +312,11 @@ "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -369,7 +389,11 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] }, "role_identifiers": { "description": "Filters by the role assigned to the user.", @@ -1007,7 +1031,11 @@ "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -1062,7 +1090,11 @@ }, "sort_options": { "description": "Sort options to filter group details.", - "$ref": "#/components/schemas/SortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } + ] } } } @@ -1181,7 +1213,11 @@ }, "favorite_object_options": { "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + } + ] }, "include_auto_created_objects": { "description": "Includes system-generated metadata objects.", @@ -1257,7 +1293,11 @@ }, "sort_options": { "description": "Sort options to filter metadata details.", - "$ref": "#/components/schemas/MetadataSearchSortOptions" + "allOf": [ + { + "$ref": "#/components/schemas/MetadataSearchSortOptions" + } + ] }, "tag_identifiers": { "description": "Tags to filter metadata objects by", @@ -1336,6 +1376,123 @@ } } }, + "/api/rest/2.0/metadata/tml/async/status": { + "post": { + "operationId": "fetchAsyncImportTaskStatus", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "task_ids": { + "description": "List of task IDs to fetch status for.", + "type": "array", + "items": { + "type": "string" + } + }, + "task_status": { + "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ] + } + }, + "author_identifier": { + "description": "Author GUID or name of async import tasks to filter on.", + "type": "string" + }, + "record_offset": { + "description": "The offset point, starting from where the task status should be included in the response.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of task statuses that should be included in the response starting from offset position.", + "default": 5, + "type": "integer", + "format": "int32" + }, + "include_import_response": { + "description": "Boolean flag to specify whether to include import response in the task status objects.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task statuses fetched successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAsyncImportStatusResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", @@ -1557,11 +1714,19 @@ }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/PdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/PdfOptionsInput" + } + ] }, "png_options": { "description": "Options for PNG export.", - "$ref": "#/components/schemas/PngOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/PngOptionsInput" + } + ] }, "runtime_param_override": { "description": "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).", @@ -1927,8 +2092,7 @@ "format": "int32" }, "permission_type": { - "description": "Permission type if it is DEFINED then fetch the defined permission\nof principals else fetch the effective permission of principals.", - "default": "EFFECTIVE", + "description": "
Version: 10.3.0.cl or later
\n\nSpecifies the type of permission. Valid values are:\n EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong.\n DEFINED - If a user or user group received access to metadata objects via object sharing by another user.", "type": "string" } }, @@ -2074,7 +2238,7 @@ "type": "string" }, "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", "default": "COMPACT", "type": "string", "enum": [ @@ -2201,7 +2365,7 @@ "type": "string" }, "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", "default": "COMPACT", "type": "string", "enum": [ @@ -2316,7 +2480,7 @@ "type": "string" }, "data_format": { - "description": "JSON output format. By default, the API returns full data in the JSON.", + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", "default": "COMPACT", "type": "string", "enum": [ @@ -2415,7 +2579,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/logs-api#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -2801,7 +2965,11 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortOptionInput" + "allOf": [ + { + "$ref": "#/components/schemas/SortOptionInput" + } + ] }, "include_details": { "description": "Indicates whether to include complete details of the connection objects.", @@ -2968,7 +3136,11 @@ "THIRDPARTY_ANALYSIS", "CONTROL_TRUSTED_AUTH", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -3091,7 +3263,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + } + ] }, "include_group_associations": { "description": "When set to true, returns the associated groups for a custom action.", @@ -3352,14 +3528,13 @@ "type": "string" } }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options", - "deprecated": true - }, "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" + "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": [ @@ -3486,14 +3661,13 @@ "type": "string" } }, - "jwt_user_options": { - "description": " JWT user options to create a JWT token given the payload.\n \n\n*Deprecated from 9.10.5.cl : Replaced by user_parameters* ", - "$ref": "#/components/schemas/JWT_User_Options_Full", - "deprecated": true - }, "user_parameters": { - "description": "User Parameters to be set via JWT Token.
Version: 9.10.5.cl or later", - "$ref": "#/components/schemas/User_Parameter_Options" + "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": [ @@ -3771,13 +3945,13 @@ } } }, - "/api/rest/2.0/users/create": { + "/api/rest/2.0/auth/token/custom": { "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getCustomAccessToken", + "description": " Version: 10.4.0.cl or later", "tags": [ - "Users", - "9.0.0.cl" + "Authentication", + "10.4.0.cl" ], "requestBody": { "content": { @@ -3785,120 +3959,269 @@ "schema": { "type": "object", "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", + "username": { + "description": "Username for which the token needs to be created.", "type": "string" }, "password": { - "description": "Password for the user account.", + "description": "Password of the user account", + "default": "", "type": "string" }, - "email": { - "description": "Email of the user account", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", "type": "string" }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" }, - "account_status": { - "description": "Current status of the user account.", - "default": "ACTIVE", + "org_identifier": { + "description": "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.", + "type": "string" + }, + "persist_option": { + "description": "Indicates whether the specified attributes should be persisted or not.", + "default": "ADD", "type": "string", "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING" + "ADD", + "NONE", + "RESET" ] }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", + "filter_rules": { + "description": "Filter rules.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/FilterRules" } }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", + "parameter_values": { + "description": "Parameter values.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/ParameterValues" } }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, - "type": "boolean", - "nullable": true + "objects": { + "description": "Objects on which the filter rules and parameters values should be applied to", + "type": "array", + "items": { + "$ref": "#/components/schemas/TokenAccessScopeObject" + } }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", - "default": false, - "type": "boolean", - "nullable": true + "email": { + "description": "(just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user.", + "type": "string" }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "display_name": { + "description": "(just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user.", "type": "string" }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", + "groups": { + "description": "(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.", "type": "array", "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" + "$ref": "#/components/schemas/Group_Object" } - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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", + } + }, + "required": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "ABAC token creation was successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessToken" + } + } + } + }, + "400": { + "description": "Invalid request. This could be due to missing or incorrect parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access. The request could not be authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access. The user does not have permission to access this resource.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "An unexpected error occurred on the server.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + }, + "security": [] + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING" + ] + }, + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" ] @@ -3912,12 +4235,12 @@ "type": "object" }, "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user", + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", "type": "boolean", "nullable": true }, "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user", + "description": "Flag to indicate whether activation email should be sent to user.", "type": "boolean", "nullable": true } @@ -5128,7 +5451,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5232,7 +5555,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5318,7 +5641,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5614,7 +5937,11 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -5783,7 +6110,11 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -6086,7 +6417,8 @@ "enum": [ "PARTIAL", "ALL_OR_NONE", - "VALIDATE_ONLY" + "VALIDATE_ONLY", + "PARTIAL_OBJECT" ] }, "create_new": { @@ -6100,6 +6432,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "if we should skip CDW validation for table imports.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -6168,6 +6506,109 @@ } } }, + "/api/rest/2.0/metadata/tml/async/import": { + "post": { + "operationId": "importMetadataTMLAsync", + "description": " Version: 10.4.0.cl or later", + "tags": [ + "Metadata", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "if we should skip CDW validation for table imports.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "metadata_tmls" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Async TML Import Task submitted successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", @@ -6509,6 +6950,114 @@ } } }, + "/api/rest/2.0/metadata/copyobject": { + "post": { + "operationId": "copyObject", + "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of the metadata object specified in the API request.\n\nRequires create access to metadata objects\n\nUpon successful execution, the API returns the id of the new object which is copied from the given object.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "10.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "description": "Description of the new object", + "type": "string" + }, + "identifier": { + "description": "GUID of metadata object to be copied (answer id or liveboard id)", + "type": "string" + }, + "type": { + "description": "Type of metadata object", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ] + }, + "title": { + "description": "Title of the new object", + "type": "string" + } + }, + "required": [ + "identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully created a copy of the object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseCopyObject" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Object not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", @@ -7035,7 +7584,7 @@ "/api/rest/2.0/vcs/git/branches/commit": { "post": { "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires `DATAMANAGEMENT` privilege.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7135,7 +7684,7 @@ "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIn 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.\n\nBy 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7330,7 +7879,7 @@ "/api/rest/2.0/vcs/git/commits/deploy": { "post": { "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -8097,7 +8646,11 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] } } @@ -8221,7 +8774,9 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH" ] } } @@ -8410,11 +8965,19 @@ }, "liveboard_options": { "description": "Options to specify details of Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] }, "pdf_options": { "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] }, "time_zone": { "description": "Time zone", @@ -9055,11 +9618,19 @@ }, "frequency": { "description": "Frequency settings for the scheduled job.", - "$ref": "#/components/schemas/FrequencyInput" + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] }, "recipient_details": { "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] } }, "required": [ @@ -9229,11 +9800,19 @@ }, "sort_options": { "description": "Sort options.", - "$ref": "#/components/schemas/SortingOptions" + "allOf": [ + { + "$ref": "#/components/schemas/SortingOptions" + } + ] }, "history_runs_options": { "description": "Options while fetching history runs for the schedule.", - "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/ScheduleHistoryRunsOptionsInput" + } + ] }, "schedule_identifiers": { "description": "unique ID or name of the Schedule", @@ -9350,11 +9929,19 @@ }, "liveboard_options": { "description": "Options to specify the details of a Liveboard.", - "$ref": "#/components/schemas/LiveboardOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } + ] }, "pdf_options": { "description": "Options for PDF export.", - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + "allOf": [ + { + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" + } + ] }, "time_zone": { "description": "Time zone", @@ -9994,11 +10581,19 @@ }, "frequency": { "description": "Frequency of the scheduled job run.", - "$ref": "#/components/schemas/FrequencyInput" + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] }, "recipient_details": { "description": "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.", - "$ref": "#/components/schemas/RecipientDetailsInput" + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] }, "status": { "description": "Status of the schedule", @@ -10092,7 +10687,11 @@ }, "action_details": { "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input_Create" + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input_Create" + } + ] }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10103,7 +10702,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + } + ] }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -10211,7 +10814,11 @@ "properties": { "action_details": { "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "$ref": "#/components/schemas/Action_Details_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input" + } + ] }, "associate_metadata": { "description": "Metadata objects to which the custom action needs to be associated.", @@ -10222,7 +10829,11 @@ }, "default_action_config": { "description": "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.", - "$ref": "#/components/schemas/Default_Action_Config_Input" + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input" + } + ] }, "group_identifiers": { "description": "Unique ID or name of the groups that can view and access the custom action.", @@ -10964,7 +11575,8 @@ "type": "object", "properties": { "error": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -11048,32 +11660,39 @@ }, "author_id": { "type": "string", - "description": "Unique identifier of author of the user." + "description": "Unique identifier of author of the user.", + "nullable": true }, "can_change_password": { "type": "boolean", - "description": "Defines whether the user can change their password." + "description": "Defines whether the user can change their password.", + "nullable": true }, "complete_detail": { "type": "boolean", - "description": "Defines whether the response has complete detail of the user." + "description": "Defines whether the response has complete detail of the user.", + "nullable": true }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the user in milliseconds." + "description": "Creation time of the user in milliseconds.", + "nullable": true }, "current_org": { "$ref": "#/components/schemas/Org", - "description": "Current logged-in Org of the user." + "description": "Current logged-in Org of the user.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the user is deleted." + "description": "Indicates whether the user is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the user is deprecated." + "description": "Indicates whether the user is deprecated.", + "nullable": true }, "account_type": { "type": "string", @@ -11084,7 +11703,8 @@ "OIDC_USER", "REMOTE_USER" ], - "description": "Type of the user account." + "description": "Type of the user account.", + "nullable": true }, "account_status": { "type": "string", @@ -11095,81 +11715,98 @@ "LOCKED", "PENDING" ], - "description": "Status of the user account." + "description": "Status of the user account.", + "nullable": true }, "email": { "type": "string", - "description": "Email of the user." + "description": "Email of the user.", + "nullable": true }, "expiration_time_in_millis": { "type": "number", "format": "float", - "description": "Expiration time of the user in milliseconds." + "description": "Expiration time of the user in milliseconds.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the user is external." + "description": "Indicates whether the user is external.", + "nullable": true }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataItem" }, - "description": "Metadata objects to add to the users' favorites list." + "description": "Metadata objects to add to the users' favorites list.", + "nullable": true }, "first_login_time_in_millis": { "type": "number", "format": "float", - "description": "Timestamp of the first login session of the user in milliseconds." + "description": "Timestamp of the first login session of the user in milliseconds.", + "nullable": true }, "group_mask": { "type": "integer", "format": "int32", - "description": "Group mask of the user." + "description": "Group mask of the user.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the user is hidden." + "description": "Indicates whether the user is hidden.", + "nullable": true }, "home_liveboard": { "$ref": "#/components/schemas/Object_ID_And_Name", - "description": "Unique ID or name of the default Liveboard assigned to the user." + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true }, "incomplete_details": { "type": "object", - "description": "Incomplete details of user if any present." + "description": "Incomplete details of user if any present.", + "nullable": true }, "is_first_login": { "type": "boolean", - "description": "Indicates whether it is first login of the user." + "description": "Indicates whether it is first login of the user.", + "nullable": true }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the user in milliseconds." + "description": "Last modified time of the user in milliseconds.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the user." + "description": "Unique identifier of modifier of the user.", + "nullable": true }, "notify_on_share": { "type": "boolean", - "description": "User preference for receiving email notifications on shared Answers or Liveboard." + "description": "User preference for receiving email notifications on shared Answers or Liveboard.", + "nullable": true }, "onboarding_experience_completed": { "type": "boolean", - "description": "The user preference for turning off the onboarding experience." + "description": "The user preference for turning off the onboarding experience.", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/Org" }, - "description": "Orgs to which the user belongs." + "description": "Orgs to which the user belongs.", + "nullable": true }, "owner_id": { "type": "string", - "description": "Unique identifier of owner of the user." + "description": "Unique identifier of owner of the user.", + "nullable": true }, "parent_type": { "type": "string", @@ -11177,75 +11814,95 @@ "USER", "GROUP" ], - "description": "Parent type of the user." + "description": "Parent type of the user.", + "nullable": true }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the user." + "description": "Privileges which are assigned to the user.", + "nullable": true }, "show_onboarding_experience": { "type": "boolean", - "description": "User's preference to revisit the new user onboarding experience." + "description": "User's preference to revisit the new user onboarding experience.", + "nullable": true }, "super_user": { "type": "boolean", - "description": "Indicates whether the user is a super user." + "description": "Indicates whether the user is a super user.", + "nullable": true }, "system_user": { "type": "boolean", - "description": "Indicates whether the user is a system user." + "description": "Indicates whether the user is a system user.", + "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Tags associated with the user." + "description": "Tags associated with the user.", + "nullable": true }, "tenant_id": { "type": "string", - "description": "Unique identifier of tenant of the user." + "description": "Unique identifier of tenant of the user.", + "nullable": true }, "user_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Groups to which the user is assigned." + "description": "Groups to which the user is assigned.", + "nullable": true }, "user_inherited_groups": { "type": "array", "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Inherited User Groups which the user is part of." + "description": "Inherited User Groups which the user is part of.", + "nullable": true }, "welcome_email_sent": { "type": "boolean", - "description": "Indicates whether welcome email is sent for the user." + "description": "Indicates whether welcome email is sent for the user.", + "nullable": true }, "org_privileges": { "type": "object", - "description": "Privileges which are assigned to the user with org." + "description": "Privileges which are assigned to the user with org.", + "nullable": true }, "preferred_locale": { "type": "string", - "description": "Locale for the user." + "description": "Locale for the user.", + "nullable": true }, "extended_properties": { "type": "object", - "description": "Properties for the user" + "description": "Properties for the user", + "nullable": true }, "extended_preferences": { "type": "object", - "description": "Preferences for the user" + "description": "Preferences for the user", + "nullable": true }, "user_parameters": { "type": "object", - "description": "User Parameters which are specified for the user via JWToken" + "description": "User Parameters which are specified for the user via JWToken", + "nullable": true + }, + "access_control_properties": { + "type": "object", + "description": "Access Control Properties which are specified for the user via JWToken", + "nullable": true } } }, @@ -11297,7 +11954,7 @@ "USER_GROUP", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata object." + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." } } }, @@ -11306,11 +11963,13 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object." + "description": "The unique identifier of the object.", + "nullable": true }, "name": { "type": "string", - "description": "Name of the object." + "description": "Name of the object.", + "nullable": true } }, "description": "The object representation with ID and Name." @@ -11320,7 +11979,8 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata object." + "description": "Unique ID or name of the metadata object.", + "nullable": true }, "type": { "type": "string", @@ -11328,7 +11988,8 @@ "LIVEBOARD", "ANSWER" ], - "description": "Type of metadata object." + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true } } }, @@ -11344,7 +12005,8 @@ "CREATED", "MODIFIED" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -11352,7 +12014,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -11362,97 +12025,120 @@ "properties": { "id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "name": { "type": "string", - "description": "Name of the cluster." + "description": "Name of the cluster.", + "nullable": true }, "release_version": { "type": "string", - "description": "The release version of the cluster." + "description": "The release version of the cluster.", + "nullable": true }, "time_zone": { "type": "string", - "description": "The timezone of the cluster." + "description": "The timezone of the cluster.", + "nullable": true }, "locale": { "type": "string", - "description": "The default locale of the cluster." + "description": "The default locale of the cluster.", + "nullable": true }, "date_format": { "type": "string", - "description": "The default date format representation of the cluster." + "description": "The default date format representation of the cluster.", + "nullable": true }, "api_version": { "type": "string", - "description": "The API version of the cluster." + "description": "The API version of the cluster.", + "nullable": true }, "type": { "type": "string", - "description": "The deployment type of the cluster." + "description": "The deployment type of the cluster.", + "nullable": true }, "environment": { "type": "string", - "description": "The deployed environment of the cluster." + "description": "The deployed environment of the cluster.", + "nullable": true }, "license": { "type": "string", - "description": "The license applied to the cluster." + "description": "The license applied to the cluster.", + "nullable": true }, "date_time_format": { "type": "string", - "description": "The default date time format representation of the cluster." + "description": "The default date time format representation of the cluster.", + "nullable": true }, "time_format": { "type": "string", - "description": "The default time format representation of the cluster." + "description": "The default time format representation of the cluster.", + "nullable": true }, "system_user_id": { "type": "string", - "description": "The unique identifier of system user." + "description": "The unique identifier of system user.", + "nullable": true }, "super_user_id": { "type": "string", - "description": "The unique identifier of super user." + "description": "The unique identifier of super user.", + "nullable": true }, "hidden_object_id": { "type": "string", - "description": "The unique identifier of hidden object." + "description": "The unique identifier of hidden object.", + "nullable": true }, "system_group_id": { "type": "string", - "description": "The unique identifier of system group." + "description": "The unique identifier of system group.", + "nullable": true }, "tsadmin_user_id": { "type": "string", - "description": "The unique identifier of tsadmin user." + "description": "The unique identifier of tsadmin user.", + "nullable": true }, "admin_group_id": { "type": "string", - "description": "The unique identifier of admin group." + "description": "The unique identifier of admin group.", + "nullable": true }, "all_tables_connection_id": { "type": "string", - "description": "The unique identifier of all tables connection." + "description": "The unique identifier of all tables connection.", + "nullable": true }, "all_user_group_id": { "type": "string", - "description": "The unique identifier of ALL group." + "description": "The unique identifier of ALL group.", + "nullable": true }, "accept_language": { "type": "string", - "description": "The supported accept language by the cluster." + "description": "The supported accept language by the cluster.", + "nullable": true }, "all_user_group_member_user_count": { "type": "integer", "format": "int32", - "description": "The count of users of ALL group." + "description": "The count of users of ALL group.", + "nullable": true }, "logical_model_version": { "type": "integer", "format": "int32", - "description": "The version number of logical model of the cluster." + "description": "The version number of logical model of the cluster.", + "nullable": true } } }, @@ -11460,7 +12146,8 @@ "type": "object", "properties": { "onboarding_content_url": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -11470,11 +12157,13 @@ "id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the Org." + "description": "Unique identifier of the Org.", + "nullable": true }, "name": { "type": "string", - "description": "Name of the Org." + "description": "Name of the Org.", + "nullable": true }, "status": { "type": "string", @@ -11482,11 +12171,13 @@ "ACTIVE", "IN_ACTIVE" ], - "description": "Status of the Org." + "description": "Status of the Org.", + "nullable": true }, "description": { "type": "string", - "description": "Description of the Org." + "description": "Description of the Org.", + "nullable": true }, "visibility": { "type": "string", @@ -11494,7 +12185,8 @@ "SHOW", "HIDDEN" ], - "description": "Visibility of the Org." + "description": "Visibility of the Org.", + "nullable": true } } }, @@ -11512,36 +12204,46 @@ "type": "string" }, "color": { - "type": "string" + "type": "string", + "nullable": true }, "deleted": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "hidden": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "external": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "deprecated": { - "type": "boolean" + "type": "boolean", + "nullable": true }, "creation_time_in_millis": { "type": "number", - "format": "float" + "format": "float", + "nullable": true }, "modification_time_in_millis": { "type": "number", - "format": "float" + "format": "float", + "nullable": true }, "author_id": { - "type": "string" + "type": "string", + "nullable": true }, "modifier_id": { - "type": "string" + "type": "string", + "nullable": true }, "owner_id": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -11556,39 +12258,47 @@ "properties": { "author_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "complete_detail": { "type": "boolean", - "description": "Indicates whether the response has complete detail of the group." + "description": "Indicates whether the response has complete detail of the group.", + "nullable": true }, "content": { "type": "object", - "description": "Content details of the group" + "description": "Content details of the group", + "nullable": true }, "creation_time_in_millis": { "type": "number", "format": "float", - "description": "Creation time of the group in milliseconds" + "description": "Creation time of the group in milliseconds", + "nullable": true }, "default_liveboards": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Liveboards that are assigned as default Liveboards to the group." + "description": "Liveboards that are assigned as default Liveboards to the group.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the group is deleted" + "description": "Indicates whether the group is deleted", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the group is deprecated" + "description": "Indicates whether the group is deprecated", + "nullable": true }, "description": { "type": "string", - "description": "Description of the group" + "description": "Description of the group", + "nullable": true }, "display_name": { "type": "string", @@ -11596,16 +12306,19 @@ }, "external": { "type": "boolean", - "description": "Indicates whether the group is external" + "description": "Indicates whether the group is external", + "nullable": true }, "generation_number": { "type": "integer", "format": "int32", - "description": "Generation number of the group" + "description": "Generation number of the group", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the group is hidden" + "description": "Indicates whether the group is hidden", + "nullable": true }, "id": { "type": "string", @@ -11614,26 +12327,31 @@ "index": { "type": "integer", "format": "int32", - "description": "Index number of the group" + "description": "Index number of the group", + "nullable": true }, "index_version": { "type": "integer", "format": "int32", - "description": "Index version number of the group" + "description": "Index version number of the group", + "nullable": true }, "metadata_version": { "type": "integer", "format": "int32", - "description": "Metadata version number of the group" + "description": "Metadata version number of the group", + "nullable": true }, "modification_time_in_millis": { "type": "number", "format": "float", - "description": "Last modified time of the group in milliseconds." + "description": "Last modified time of the group in milliseconds.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "name": { "type": "string", @@ -11644,11 +12362,13 @@ "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Orgs in which group exists." + "description": "Orgs in which group exists.", + "nullable": true }, "owner_id": { "type": "string", - "description": "The unique identifier of the object" + "description": "The unique identifier of the object", + "nullable": true }, "parent_type": { "type": "string", @@ -11656,32 +12376,37 @@ "USER", "GROUP" ], - "description": "Parent type of the group." + "description": "Parent type of the group.", + "nullable": true }, "privileges": { "type": "array", "items": { "type": "string" }, - "description": "Privileges which are assigned to the group" + "description": "Privileges which are assigned to the group", + "nullable": true }, "sub_groups": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Groups who are part of the group" + "description": "Groups who are part of the group", + "nullable": true }, "system_group": { "type": "boolean", - "description": "Indicates whether the group is a system group." + "description": "Indicates whether the group is a system group.", + "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Tags associated with the group." + "description": "Tags associated with the group.", + "nullable": true }, "type": { "type": "string", @@ -11689,14 +12414,16 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group." + "description": "Type of the group.", + "nullable": true }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroup" }, - "description": "Users who are part of the group." + "description": "Users who are part of the group.", + "nullable": true }, "visibility": { "type": "string", @@ -11711,7 +12438,8 @@ "items": { "$ref": "#/components/schemas/Role" }, - "description": "List of roles assgined to the user" + "description": "List of roles assgined to the user", + "nullable": true } } }, @@ -11720,11 +12448,13 @@ "properties": { "id": { "type": "string", - "description": "id of the role" + "description": "id of the role", + "nullable": true }, "name": { "type": "string", - "description": "name of the role" + "description": "name of the role", + "nullable": true } } }, @@ -11733,11 +12463,13 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata.", + "nullable": true }, "name_pattern": { "type": "string", - "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match." + "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", + "nullable": true }, "type": { "type": "string", @@ -11750,9 +12482,11 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values" + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", + "nullable": true } } }, @@ -11801,9 +12535,10 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" ], - "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values." + "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view\n5. CONNECTION for connection objects\n6. TAG for tag objects\n7. USER for user objects\n8. USER_GROUP for group objects\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values.\n10. INSIGHT_SPEC for SpotIQ objects" } } }, @@ -11813,14 +12548,16 @@ "include": { "type": "boolean", "default": false, - "description": "Includes objects marked as favorite for the specified users." + "description": "Includes objects marked as favorite for the specified users.", + "nullable": true }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned." + "description": "Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned.", + "nullable": true } }, "description": "Favorite object options." @@ -11840,7 +12577,8 @@ "FAVORITES", "LAST_ACCESSED" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -11848,7 +12586,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -11861,11 +12600,13 @@ "properties": { "metadata_id": { "type": "string", - "description": "Unique identifier of the metadata." + "description": "Unique identifier of the metadata.", + "nullable": true }, "metadata_name": { "type": "string", - "description": "Name of the metadata." + "description": "Name of the metadata.", + "nullable": true }, "metadata_type": { "type": "string", @@ -11884,36 +12625,154 @@ }, "dependent_objects": { "type": "object", - "description": "Details of dependent objects of the metadata objects." + "description": "Details of dependent objects of the metadata objects.", + "nullable": true }, "incomplete_objects": { "type": "array", "items": { "type": "object" }, - "description": "Details of incomplete information of the metadata objects if any." + "description": "Details of incomplete information of the metadata objects if any.", + "nullable": true }, "metadata_detail": { "type": "object", - "description": "Complete details of the metadata objects." + "description": "Complete details of the metadata objects.", + "nullable": true }, "metadata_header": { "type": "object", - "description": "Header information of the metadata objects." + "description": "Header information of the metadata objects.", + "nullable": true + }, + "visualization_headers": { + "type": "array", + "items": { + "type": "object" + }, + "description": "Visualization header information of the metadata objects.", + "nullable": true + }, + "stats": { + "type": "object", + "description": "Stats of the metadata object. Includes views, favorites, last_accessed.", + "nullable": true + } + }, + "description": "Metadata Search Response Object." + }, + "GetAsyncImportStatusResponse": { + "type": "object", + "properties": { + "status_list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" + }, + "description": "List of task statuses.", + "nullable": true + }, + "last_batch": { + "type": "boolean", + "description": "Indicates whether there are more task statuses to fetch.", + "nullable": true + } + } + }, + "ImportEPackAsyncTaskStatus": { + "type": "object", + "properties": { + "tenant_id": { + "type": "string", + "description": "GUID of tenant from which the task is initiated.", + "nullable": true + }, + "org_id": { + "type": "integer", + "format": "int32", + "description": "Organisation ID of the user who initiated the task.", + "nullable": true + }, + "task_id": { + "type": "string", + "description": "Unique identifier for the task.", + "nullable": true + }, + "task_name": { + "type": "string", + "description": "Name of the task.", + "nullable": true + }, + "import_response": { + "type": "object", + "description": "Response of imported objects so far.", + "nullable": true + }, + "task_status": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ], + "description": "Current status of the task.", + "nullable": true + }, + "author_id": { + "type": "string", + "description": "ID of the user who initiated the task.", + "nullable": true + }, + "import_policy": { + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ], + "description": "Policy used for the import task.", + "nullable": true + }, + "created_at": { + "type": "number", + "format": "float", + "description": "Time when the task was created (in ms since epoch).", + "nullable": true + }, + "in_progress_at": { + "type": "number", + "format": "float", + "description": "Time when the task started (in ms since epoch).", + "nullable": true + }, + "completed_at": { + "type": "number", + "format": "float", + "description": "Time when the task was completed (in ms since epoch).", + "nullable": true + }, + "total_object_count": { + "type": "integer", + "format": "int32", + "description": "Total number of objects to process.", + "nullable": true }, - "visualization_headers": { - "type": "array", - "items": { - "type": "object" - }, - "description": "Visualization header information of the metadata objects." + "object_processed_count": { + "type": "integer", + "format": "int32", + "description": "Number of objects processed so far.", + "nullable": true }, - "stats": { - "type": "object", - "description": "Stats of the metadata object. Includes views, favorites, last_accessed." + "modified_at": { + "type": "number", + "format": "float", + "description": "Last time the task status was updated (in ms since epoch).", + "nullable": true } - }, - "description": "Metadata Search Response Object." + } }, "SqlQueryResponse": { "type": "object", @@ -11985,22 +12844,26 @@ "include_cover_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include the cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", "default": true, - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", "default": true, - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", "default": true, - "description": "Indicates whether to include page number in the footer of each page." + "description": "Indicates whether to include page number in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", @@ -12009,16 +12872,19 @@ "LANDSCAPE" ], "default": "PORTRAIT", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "truncate_table": { "type": "boolean", "default": false, - "description": "Indicates whether to include only the first page of the tables." + "description": "Indicates whether to include only the first page of the tables.", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true } } }, @@ -12028,12 +12894,14 @@ "include_cover_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include the cover page with the Liveboard title." + "description": "Indicates whether to include the cover page with the Liveboard title.", + "nullable": true }, "include_filter_page": { "type": "boolean", "default": false, - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true } } }, @@ -12041,7 +12909,8 @@ "type": "object", "properties": { "principal_permission_details": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -12049,7 +12918,8 @@ "type": "object", "properties": { "metadata_permission_details": { - "type": "object" + "type": "object", + "nullable": true } } }, @@ -12069,7 +12939,8 @@ "USER", "USER_GROUP" ], - "description": "Principal type." + "description": "Principal type.", + "nullable": true } } }, @@ -12088,7 +12959,8 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata object." + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true }, "identifier": { "type": "string", @@ -12244,11 +13116,13 @@ }, "visualization_id": { "type": "string", - "description": "Unique ID of the visualization." + "description": "Unique ID of the visualization.", + "nullable": true }, "visualization_name": { "type": "string", - "description": "Name of the visualization." + "description": "Name of the visualization.", + "nullable": true } } }, @@ -12300,34 +13174,41 @@ "properties": { "repository_url": { "type": "string", - "description": "Remote repository URL configured" + "description": "Remote repository URL configured", + "nullable": true }, "username": { "type": "string", - "description": "Username to authenticate connection to the version control system" + "description": "Username to authenticate connection to the version control system", + "nullable": true }, "commit_branch_name": { "type": "string", - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned." + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.", + "nullable": true }, "branches": { "type": "array", "items": { "type": "string" }, - "description": "Branches that have been pulled in local repository" + "description": "Branches that have been pulled in local repository", + "nullable": true }, "enable_guid_mapping": { "type": "boolean", - "description": "Maintain mapping of guid for the deployment to an instance" + "description": "Maintain mapping of guid for the deployment to an instance", + "nullable": true }, "configuration_branch_name": { "type": "string", - "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained." + "description": "Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.", + "nullable": true }, "org": { "$ref": "#/components/schemas/Org", - "description": "Details of the Org" + "description": "Details of the Org", + "nullable": true } } }, @@ -12373,11 +13254,13 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer" + "description": "Email id of the committer", + "nullable": true }, "username": { "type": "string", - "description": "Username of the committer" + "description": "Username of the committer", + "nullable": true } } }, @@ -12386,11 +13269,13 @@ "properties": { "email": { "type": "string", - "description": "Email id of the committer" + "description": "Email id of the committer", + "nullable": true }, "username": { "type": "string", - "description": "Username of the committer" + "description": "Username of the committer", + "nullable": true } } }, @@ -12399,18 +13284,21 @@ "properties": { "identifier": { "type": "string", - "description": "Unique ID or name of the connection." + "description": "Unique ID or name of the connection.", + "nullable": true }, "name_pattern": { "type": "string", - "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match." + "description": "A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match.", + "nullable": true }, "data_warehouse_objects": { "type": "array", "items": { "$ref": "#/components/schemas/DataWarehouseObjectInput" }, - "description": "Filter options for databases, schemas, tables and columns." + "description": "Filter options for databases, schemas, tables and columns.", + "nullable": true } } }, @@ -12419,19 +13307,23 @@ "properties": { "database": { "type": "string", - "description": "Name of the database." + "description": "Name of the database.", + "nullable": true }, "schema": { "type": "string", - "description": "Name of the schema within the database." + "description": "Name of the schema within the database.", + "nullable": true }, "table": { "type": "string", - "description": "Name of the table within the schema." + "description": "Name of the table within the schema.", + "nullable": true }, "column": { "type": "string", - "description": "Name of the column within the table." + "description": "Name of the column within the table.", + "nullable": true } } }, @@ -12452,7 +13344,8 @@ "USER_STATE", "ROW_COUNT" ], - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", @@ -12460,7 +13353,8 @@ "ASC", "DESC" ], - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } } }, @@ -12482,7 +13376,8 @@ }, "description": { "type": "string", - "description": "Description of the connection." + "description": "Description of the connection.", + "nullable": true }, "data_warehouse_type": { "type": "string", @@ -12522,11 +13417,13 @@ }, "data_warehouse_objects": { "$ref": "#/components/schemas/DataWarehouseObjects", - "description": "List of Data warehouse objects" + "description": "List of Data warehouse objects", + "nullable": true }, "details": { "type": "object", - "description": "Details of the connection." + "description": "Details of the connection.", + "nullable": true } } }, @@ -12560,11 +13457,13 @@ "items": { "$ref": "#/components/schemas/SchemaObject" }, - "description": "Schemas of the database." + "description": "Schemas of the database.", + "nullable": true }, "auto_created": { "type": "boolean", - "description": "Determines if the object is auto created." + "description": "Determines if the object is auto created.", + "nullable": true } } }, @@ -12583,7 +13482,8 @@ "items": { "$ref": "#/components/schemas/Table" }, - "description": "Tables in the schema." + "description": "Tables in the schema.", + "nullable": true } } }, @@ -12602,30 +13502,36 @@ "items": { "$ref": "#/components/schemas/Column" }, - "description": "Columns of the table." + "description": "Columns of the table.", + "nullable": true }, "type": { "type": "string", - "description": "Type of table. Either view or table" + "description": "Type of table. Either view or table", + "nullable": true }, "description": { "type": "string", - "description": "Description of the table" + "description": "Description of the table", + "nullable": true }, "selected": { "type": "boolean", - "description": "Determines if the table is selected" + "description": "Determines if the table is selected", + "nullable": true }, "linked": { "type": "boolean", - "description": "Determines if the table is linked" + "description": "Determines if the table is linked", + "nullable": true }, "relationships": { "type": "array", "items": { "type": "object" }, - "description": "List of relationships for the table" + "description": "List of relationships for the table", + "nullable": true } } }, @@ -12646,19 +13552,23 @@ }, "is_aggregate": { "type": "string", - "description": "Determines if the column schema is an aggregate" + "description": "Determines if the column schema is an aggregate", + "nullable": true }, "can_import": { "type": "boolean", - "description": "Determines if the column schema can be imported" + "description": "Determines if the column schema can be imported", + "nullable": true }, "selected": { "type": "boolean", - "description": "Determines if the table is selected" + "description": "Determines if the table is selected", + "nullable": true }, "is_linked_active": { "type": "boolean", - "description": "Determines if the table is linked" + "description": "Determines if the table is linked", + "nullable": true } } }, @@ -12686,21 +13596,24 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role" + "description": "number of groups assigned with this role", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists." + "description": "Orgs in which role exists.", + "nullable": true }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role" + "description": "Details of groups assigned with this role", + "nullable": true }, "privileges": { "type": "array", @@ -12747,7 +13660,11 @@ "THIRDPARTY_ANALYSIS", "CONTROL_TRUSTED_AUTH", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] }, "description": "Privileges granted to the role." @@ -12759,43 +13676,53 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role" + "description": "Permission details of the Role", + "nullable": true }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role." + "description": "Unique identifier of author of the role.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role." + "description": "Unique identifier of modifier of the role.", + "nullable": true }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds." + "description": "Creation time of the role in milliseconds.", + "nullable": true }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds." + "description": "Last modified time of the role in milliseconds.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted." + "description": "Indicates whether the role is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated." + "description": "Indicates whether the role is deprecated.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the role is external." + "description": "Indicates whether the role is external.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden." + "description": "Indicates whether the role is hidden.", + "nullable": true }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "description": "Indicates whether the role is shared via connection", + "nullable": true } }, "description": "Response for search role api should handle hidden privileges as well." @@ -12805,7 +13732,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -12836,7 +13764,8 @@ "items": { "$ref": "#/components/schemas/Metadata_Association_Item" }, - "description": "Metadata objects to assign the the custom action to." + "description": "Metadata objects to assign the the custom action to.", + "nullable": true }, "name": { "type": "string", @@ -12847,7 +13776,8 @@ "items": { "$ref": "#/components/schemas/Object_ID_And_Name" }, - "description": "Unique ID or name of the User groups which are associated with the custom action." + "description": "Unique ID or name of the User groups which are associated with the custom action.", + "nullable": true } }, "description": "Custom action details" @@ -12857,11 +13787,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACK", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URL", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Type and Configuration for Custom Actions" @@ -12871,7 +13803,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -12884,14 +13817,16 @@ "properties": { "authentication": { "$ref": "#/components/schemas/Authentication", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItem" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", @@ -12899,7 +13834,8 @@ }, "reference": { "type": "string", - "description": "Reference name of the SDK. By default, the value will be set to action name." + "description": "Reference name of the SDK. By default, the value will be set to action name.", + "nullable": true } }, "description": "URL Custom Action Type" @@ -12909,19 +13845,23 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_Key", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_Auth", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true } }, "description": "Authorization type for the custom action." @@ -12931,11 +13871,13 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name" + "description": "Enter your key name", + "nullable": true }, "value": { "type": "string", - "description": "Enter you key value" + "description": "Enter you key value", + "nullable": true } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -12945,11 +13887,13 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication" + "description": "Password for the basic authentication", + "nullable": true }, "username": { "type": "string", - "description": "Username for the basic authentication" + "description": "Username for the basic authentication", + "nullable": true } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -12959,11 +13903,13 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter" + "description": "Key for the url query parameter", + "nullable": true }, "value": { "type": "string", - "description": "Value for the url query parameter" + "description": "Value for the url query parameter", + "nullable": true } } }, @@ -12972,7 +13918,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -12995,7 +13942,7 @@ }, "type": { "type": "string", - "description": "Type of metadata." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." } } }, @@ -13004,11 +13951,13 @@ "properties": { "position": { "type": "string", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object" @@ -13026,7 +13975,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata object." + "description": " Type of metadata object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true }, "identifier": { "type": "string", @@ -13039,10 +13989,12 @@ "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "nullable": true }, "name": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -13050,10 +14002,12 @@ "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "nullable": true }, "name": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -13079,25 +14033,29 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Metadata_Object" - } + }, + "nullable": true } }, - "description": "JWT user options to create a JWT token given the payload." + "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" }, "JWT_Parameter": { "type": "object", "properties": { "runtime_filter": { "type": "object", - "description": "Runtime filter parameter type in JWT." + "description": "Runtime filter parameter type in JWT.", + "nullable": true }, "runtime_sort": { "type": "object", - "description": "Runtime sort parameter type in JWT." + "description": "Runtime sort parameter type in JWT.", + "nullable": true }, "runtime_param_override": { "type": "object", - "description": "Runtime param override type in JWT." + "description": "Runtime param override type in JWT.", + "nullable": true } }, "description": "List of runtime parameters need to set during the session." @@ -13106,14 +14064,16 @@ "type": "object", "properties": { "identifier": { - "type": "string" + "type": "string", + "nullable": true }, "type": { "type": "string", "enum": [ "LIVEBOARD", "ANSWER" - ] + ], + "nullable": true } }, "description": "Metadata objects." @@ -13125,33 +14085,35 @@ "type": "array", "items": { "$ref": "#/components/schemas/User_Object" - } + }, + "nullable": true }, "runtime_filters": { "type": "array", "items": { - "$ref": "#/components/schemas/User_Runtime_Filters" - } + "$ref": "#/components/schemas/Runtime_Filters" + }, + "description": "Objects to apply the User_Runtime_Filters.\n\nExamples to set the `runtime_filters` :\n```json\n{ \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false }\n```", + "nullable": true }, "runtime_sorts": { "type": "array", "items": { - "$ref": "#/components/schemas/User_Runtime_Sorts" - } + "$ref": "#/components/schemas/Runtime_Sorts" + }, + "description": "Objects to apply the User_Runtime_Sorts.\n\nExamples to set the `runtime_sorts` :\n```json\n{ \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false }\n```", + "nullable": true }, "parameters": { "type": "array", "items": { - "$ref": "#/components/schemas/User_Parameters" - } - }, - "compress": { - "type": "boolean", - "default": false, - "description": " Version: 9.12.0.cl or later" + "$ref": "#/components/schemas/Runtime_Parameters" + }, + "description": "Objects to apply the Runtime_Parameters.\n\nExamples to set the `parameters` :\n```json\n{ \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false }\n```", + "nullable": true } }, - "description": "User properties runtime_filters,runtime_sorts,parameters applicable to LOGICAL_TABLE(Worksheet)" + "description": "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).\n" }, "User_Object": { "type": "object", @@ -13166,7 +14128,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of object." + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true }, "identifier": { "type": "string", @@ -13175,7 +14138,7 @@ }, "description": "Objects to apply the User_Object." }, - "User_Runtime_Filters": { + "Runtime_Filters": { "type": "object", "required": [ "column_name", @@ -13198,43 +14161,48 @@ "type": "string", "enum": [ "EQ", - "GE", + "NE", + "LT", + "LE", "GT", + "GE", "IN", - "LE", - "LT", - "NE", - "BEGINS_WITH", "BW", + "CONTAINS", + "BEGINS_WITH", + "ENDS_WITH", "BW_INC", - "BW_INC_MAX", "BW_INC_MIN", - "CONTAINS", - "ENDS_WITH" + "BW_INC_MAX", + "LIKE", + "NOT_IN" ], "description": "Operator value. Example: EQ" }, "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later" + "description": "Flag to persist the runtime filters.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime filter." + "description": "Object to apply the runtime filter.", + "nullable": true } }, - "description": "Objects to apply the User_Runtime_Filters." + "description": "Objects to apply the Runtime_Filters." }, - "User_Runtime_Sorts": { + "Runtime_Sorts": { "type": "object", "properties": { "column_name": { "type": "string", - "description": "The column name to apply filter." + "description": "The column name to apply filter.", + "nullable": true }, "order": { "type": "string", @@ -13242,24 +14210,27 @@ "ASC", "DESC" ], - "description": "Order for the sort." + "description": "Order for the sort.", + "nullable": true }, "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later" + "description": "Flag to persist the runtime sorts.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime sort." + "description": "Object to apply the runtime sort.", + "nullable": true } }, - "description": "Objects to apply the User_Runtime_Sorts." + "description": "Objects to apply the Runtime_Sorts." }, - "User_Parameters": { + "Runtime_Parameters": { "type": "object", "required": [ "name", @@ -13280,14 +14251,16 @@ "persist": { "type": "boolean", "default": false, - "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later" + "description": "Flag to persist the parameters.
Version: 9.12.0.cl or later", + "nullable": true }, "objects": { "type": "array", "items": { "$ref": "#/components/schemas/User_Object" }, - "description": "Object to apply the runtime parameter." + "description": "Object to apply the runtime parameter.", + "nullable": true } }, "description": "Objects to apply the Runtime_Parameters." @@ -13344,11 +14317,13 @@ "org_id": { "type": "integer", "format": "int32", - "description": "Unique identifier of the metadata." + "description": "Unique identifier of the metadata.", + "nullable": true }, "metadata_id": { "type": "string", - "description": "Unique identifier of the Org." + "description": "Unique identifier of the Org.", + "nullable": true } } }, @@ -13359,10 +14334,11 @@ "type": "array", "items": { "$ref": "#/components/schemas/JWT_Parameter" - } + }, + "nullable": true } }, - "description": "JWT user options to create a JWT token given the payload." + "description": "JWT user options to create a JWT token given the payload.\n\n\n*Deprecated in 9.12.0.cl. Use user_parameters instead.*" }, "TokenValidationResponse": { "type": "object", @@ -13398,12 +14374,185 @@ } } }, + "FilterRules": { + "type": "object", + "required": [ + "column_name", + "operator", + "values" + ], + "properties": { + "column_name": { + "type": "string", + "description": "The name of the column to apply the filter on." + }, + "operator": { + "type": "string", + "enum": [ + "EQ", + "NE", + "LT", + "LE", + "GT", + "GE", + "IN", + "BW", + "CONTAINS", + "BEGINS_WITH", + "ENDS_WITH", + "BW_INC", + "BW_INC_MIN", + "BW_INC_MAX", + "LIKE", + "NOT_IN" + ], + "description": "The operator to use for filtering. Example: EQ (equals), GT(greater than), etc." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The values to filter on. To get all records, use TS_WILDCARD_ALL as values." + } + }, + "description": "Filter Rules to be applied on Objects." + }, + "ParameterValues": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the column to apply the filter on." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The values to filter on. Only single value is supported currently." + } + }, + "description": "Filter Rules to be applied on Objects." + }, + "TokenAccessScopeObject": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique name/id of the object." + } + }, + "description": "Objects on which the filter rules and parameters values should be applied to" + }, + "Group_Object": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "nullable": true + } + }, + "description": "Groups objects." + }, + "AccessToken": { + "type": "object", + "required": [ + "token", + "org", + "user", + "creation_time_in_millis", + "expiration_time_in_millis" + ], + "properties": { + "id": { + "type": "string", + "description": "GUID of the auth token.", + "nullable": true + }, + "token": { + "type": "string", + "description": "Bearer auth token." + }, + "org": { + "$ref": "#/components/schemas/OrgInfo", + "description": "Org information for which the token is generated." + }, + "user": { + "$ref": "#/components/schemas/UserInfo", + "description": "User information for which the token is generated." + }, + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token creation time in milliseconds." + }, + "expiration_time_in_millis": { + "type": "number", + "format": "float", + "description": "Token expiration time in milliseconds." + } + } + }, + "OrgInfo": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Id." + }, + "name": { + "type": "string", + "description": "Name.", + "nullable": true + } + } + }, + "UserInfo": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "Id." + }, + "name": { + "type": "string", + "description": "Name.", + "nullable": true + } + } + }, "ResponseActivationURL": { "type": "object", "properties": { "activation_link": { "type": "string", - "description": "Activation link to activate the user." + "description": "Activation link to activate the user.", + "nullable": true } }, "description": "The object representation with activation link." @@ -13425,7 +14574,8 @@ }, "password": { "type": "string", - "description": "Password of the user." + "description": "Password of the user.", + "nullable": true }, "account_type": { "type": "string", @@ -13437,7 +14587,8 @@ "REMOTE_USER" ], "default": "LOCAL_USER", - "description": "Type of the user account." + "description": "Type of the user account.", + "nullable": true }, "account_status": { "type": "string", @@ -13449,25 +14600,29 @@ "PENDING" ], "default": "ACTIVE", - "description": "Status of the user account." + "description": "Status of the user account.", + "nullable": true }, "email": { "type": "string", - "description": "Email address of the user." + "description": "Email address of the user.", + "nullable": true }, "org_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the Orgs to which the user belongs." + "description": "ID or name of the Orgs to which the user belongs.", + "nullable": true }, "group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "ID or name of the groups to which the user belongs." + "description": "ID or name of the groups to which the user belongs.", + "nullable": true }, "visibility": { "type": "string", @@ -13475,31 +14630,37 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user." + "description": "Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user.", + "nullable": true }, "notify_on_share": { "type": "boolean", "default": true, - "description": "Notify user when other users or groups share metadata objects" + "description": "Notify user when other users or groups share metadata objects", + "nullable": true }, "show_onboarding_experience": { "type": "boolean", - "description": "Show or hide the new user onboarding walkthroughs" + "description": "Show or hide the new user onboarding walkthroughs", + "nullable": true }, "onboarding_experience_completed": { "type": "boolean", - "description": "Revisit the new user onboarding walkthroughs" + "description": "Revisit the new user onboarding walkthroughs", + "nullable": true }, "home_liveboard_identifier": { "type": "string", - "description": "Unique ID or name of the default Liveboard assigned to the user." + "description": "Unique ID or name of the default Liveboard assigned to the user.", + "nullable": true }, "favorite_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/FavoriteMetadataInput" }, - "description": "Metadata objects to add to the user's favorites list." + "description": "Metadata objects to add to the user's favorites list.", + "nullable": true } } }, @@ -13510,19 +14671,22 @@ "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true }, "users_updated": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true }, "users_deleted": { "type": "array", "items": { "$ref": "#/components/schemas/ImportUserType" - } + }, + "nullable": true } } }, @@ -13534,7 +14698,8 @@ "properties": { "id": { "type": "string", - "description": "Unique identifier of the user." + "description": "Unique identifier of the user.", + "nullable": true }, "name": { "type": "string", @@ -13557,7 +14722,8 @@ "LOGICAL_COLUMN", "CONNECTION" ], - "description": "Type of metadata (Optional when given identifier is ID).\n1. LIVEBOARD\n2. ANSWERS\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n 1. LIVEBOARD\n 2. ANSWERS\n 3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n 4. LOGICAL_COLUMN for a column of any data object such as tables, worksheets or views.", + "nullable": true }, "identifier": { "type": "string", @@ -13585,11 +14751,13 @@ "items": { "type": "string" }, - "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group." + "description": "Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group.", + "nullable": true }, "description": { "type": "string", - "description": "Description of the group." + "description": "Description of the group.", + "nullable": true }, "privileges": { "type": "array", @@ -13618,17 +14786,23 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] }, - "description": "Privileges that will be assigned to the group." + "description": "Privileges that will be assigned to the group.", + "nullable": true }, "sub_group_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the sub-groups to add to the group." + "description": "Unique ID or name of the sub-groups to add to the group.", + "nullable": true }, "type": { "type": "string", @@ -13636,14 +14810,16 @@ "LOCAL_GROUP", "LDAP_GROUP" ], - "description": "Type of the group." + "description": "Type of the group.", + "nullable": true }, "user_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "Unique ID or name of the users to assign to the group." + "description": "Unique ID or name of the users to assign to the group.", + "nullable": true }, "visibility": { "type": "string", @@ -13651,7 +14827,8 @@ "SHARABLE", "NON_SHARABLE" ], - "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects." + "description": "Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects.", + "nullable": true } } }, @@ -13686,6 +14863,16 @@ } } }, + "ResponseCopyObject": { + "type": "object", + "properties": { + "metadata_id": { + "type": "string", + "description": "The unique identifier of the object.", + "nullable": true + } + } + }, "ExportMetadataTypeInput": { "type": "object", "required": [ @@ -13704,7 +14891,8 @@ "USER_GROUP", "ROLE" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true }, "identifier": { "type": "string", @@ -13728,7 +14916,8 @@ "LOGICAL_COLUMN", "LOGICAL_RELATIONSHIP" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true }, "identifier": { "type": "string", @@ -13750,7 +14939,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true }, "identifier": { "type": "string", @@ -13772,7 +14962,8 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": "Type of metadata (Optional when given identifier is ID)." + "description": " Type of metadata.\n \n\nType 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.", + "nullable": true }, "identifier": { "type": "string", @@ -13820,7 +15011,8 @@ "LOGICAL_TABLE", "CUSTOM_ACTION" ], - "description": "Type of metadata." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true } } }, @@ -13829,34 +15021,41 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" + "description": "Repository user using which changes were committed", + "nullable": true }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" + "description": "Thoughtspot user who commits the changes", + "nullable": true }, "comment": { "type": "string", - "description": "Comments associated with the commit" + "description": "Comments associated with the commit", + "nullable": true }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed." + "description": "Time at which the changes were committed.", + "nullable": true }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit" + "description": "SHA id associated with the commit", + "nullable": true }, "branch": { "type": "string", - "description": "Branch where changes were committed" + "description": "Branch where changes were committed", + "nullable": true }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit" + "description": "Files that were pushed as part of this commit", + "nullable": true } } }, @@ -13877,7 +15076,8 @@ }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Any error or warning with the deployment", + "nullable": true } } }, @@ -13886,41 +15086,49 @@ "properties": { "committer": { "$ref": "#/components/schemas/CommiterType", - "description": "Repository user using which changes were committed" + "description": "Repository user using which changes were committed", + "nullable": true }, "author": { "$ref": "#/components/schemas/AuthorType", - "description": "Thoughtspot user who commits the changes" + "description": "Thoughtspot user who commits the changes", + "nullable": true }, "comment": { "type": "string", - "description": "Comments associated with the commit" + "description": "Comments associated with the commit", + "nullable": true }, "commit_time": { "type": "string", - "description": "Time at which the changes were committed." + "description": "Time at which the changes were committed.", + "nullable": true }, "commit_id": { "type": "string", - "description": "SHA id associated with the commit" + "description": "SHA id associated with the commit", + "nullable": true }, "branch": { "type": "string", - "description": "Branch where changes were committed" + "description": "Branch where changes were committed", + "nullable": true }, "committed_files": { "type": "array", "items": { "$ref": "#/components/schemas/CommitFileType" }, - "description": "Files that were pushed as part of this commit" + "description": "Files that were pushed as part of this commit", + "nullable": true }, "reverted_metadata": { "type": "array", "items": { "$ref": "#/components/schemas/RevertedMetadata" }, - "description": "Metadata of reverted file of this commit" + "description": "Metadata of reverted file of this commit", + "nullable": true } } }, @@ -13961,23 +15169,28 @@ "properties": { "file_name": { "type": "string", - "description": "Name of the file deployed" + "description": "Name of the file deployed", + "nullable": true }, "metadata_name": { "type": "string", - "description": "Name of the metadata object" + "description": "Name of the metadata object", + "nullable": true }, "metadata_type": { "type": "string", - "description": "Type of the metadata object" + "description": "Type of the metadata object", + "nullable": true }, "status_code": { "type": "string", - "description": "Indicates the status of deployment for the file" + "description": "Indicates the status of deployment for the file", + "nullable": true }, "status_message": { "type": "string", - "description": "Any error or warning with the deployment" + "description": "Any error or warning with the deployment", + "nullable": true } } }, @@ -14035,7 +15248,8 @@ }, "details": { "type": "object", - "description": "Details of the connection." + "description": "Details of the connection.", + "nullable": true } } }, @@ -14044,7 +15258,8 @@ "properties": { "status": { "type": "boolean", - "description": "Status of the connection diff." + "description": "Status of the connection diff.", + "nullable": true } } }, @@ -14072,21 +15287,24 @@ "groups_assigned_count": { "type": "integer", "format": "int32", - "description": "number of groups assigned with this role" + "description": "number of groups assigned with this role", + "nullable": true }, "orgs": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Orgs in which role exists." + "description": "Orgs in which role exists.", + "nullable": true }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GenericInfo" }, - "description": "Details of groups assigned with this role" + "description": "Details of groups assigned with this role", + "nullable": true }, "privileges": { "type": "array", @@ -14121,7 +15339,11 @@ "CAN_MANAGE_VERSION_CONTROL", "THIRDPARTY_ANALYSIS", "CAN_CREATE_CATALOG", - "BLOCK_NON_EMBED_FULL_APP_ACCESS" + "ALLOW_NON_EMBED_FULL_APP_ACCESS", + "CAN_ACCESS_ANALYST_STUDIO", + "CAN_MANAGE_ANALYST_STUDIO", + "PREVIEW_DOCUMENT_SEARCH", + "CAN_SETUP_VERSION_CONTROL" ] }, "description": "Privileges granted to the role." @@ -14133,43 +15355,53 @@ "MODIFY", "NO_ACCESS" ], - "description": "Permission details of the Role" + "description": "Permission details of the Role", + "nullable": true }, "author_id": { "type": "string", - "description": "Unique identifier of author of the role." + "description": "Unique identifier of author of the role.", + "nullable": true }, "modifier_id": { "type": "string", - "description": "Unique identifier of modifier of the role." + "description": "Unique identifier of modifier of the role.", + "nullable": true }, "creation_time_in_millis": { "type": "object", - "description": "Creation time of the role in milliseconds." + "description": "Creation time of the role in milliseconds.", + "nullable": true }, "modification_time_in_millis": { "type": "object", - "description": "Last modified time of the role in milliseconds." + "description": "Last modified time of the role in milliseconds.", + "nullable": true }, "deleted": { "type": "boolean", - "description": "Indicates whether the role is deleted." + "description": "Indicates whether the role is deleted.", + "nullable": true }, "deprecated": { "type": "boolean", - "description": "Indicates whether the role is deprecated." + "description": "Indicates whether the role is deprecated.", + "nullable": true }, "external": { "type": "boolean", - "description": "Indicates whether the role is external." + "description": "Indicates whether the role is external.", + "nullable": true }, "hidden": { "type": "boolean", - "description": "Indicates whether the role is hidden." + "description": "Indicates whether the role is hidden.", + "nullable": true }, "shared_via_connection": { "type": "boolean", - "description": "Indicates whether the role is shared via connection" + "description": "Indicates whether the role is shared via connection", + "nullable": true } } }, @@ -14194,42 +15426,51 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard." + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size." + "description": "Page size.", + "nullable": true }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "description": "Indicates whether to include only first page of the tables.", + "nullable": true } }, "description": "Options for PDF export." @@ -14293,14 +15534,16 @@ "items": { "type": "string" }, - "description": "Emails of the recipients." + "description": "Emails of the recipients.", + "nullable": true }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItemInput" }, - "description": "User or groups to be set as recipients of the schedule notifications." + "description": "User or groups to be set as recipients of the schedule notifications.", + "nullable": true } }, "description": "Recipients of the scheduled job notification." @@ -14346,7 +15589,8 @@ }, "description": { "type": "string", - "description": "Description of the job." + "description": "Description of the job.", + "nullable": true }, "file_format": { "type": "string", @@ -14362,7 +15606,8 @@ }, "liveboard_options": { "$ref": "#/components/schemas/LiveboardOptions", - "description": "Options to specify details of Liveboard." + "description": "Options to specify details of Liveboard.", + "nullable": true }, "metadata": { "$ref": "#/components/schemas/MetadataResponse", @@ -14374,7 +15619,8 @@ }, "pdf_options": { "$ref": "#/components/schemas/PdfOptions", - "description": "Options for PDF export." + "description": "Options for PDF export.", + "nullable": true }, "recipient_details": { "$ref": "#/components/schemas/RecipientDetails", @@ -14382,7 +15628,8 @@ }, "status": { "type": "string", - "description": "Status of the job" + "description": "Status of the job", + "nullable": true }, "time_zone": { "type": "string", @@ -14393,7 +15640,8 @@ "items": { "$ref": "#/components/schemas/ResponseScheduleRun" }, - "description": "Schedule runs history records." + "description": "Schedule runs history records.", + "nullable": true } } }, @@ -14490,7 +15738,8 @@ ], "properties": { "name": { - "type": "string" + "type": "string", + "nullable": true }, "id": { "type": "string" @@ -14508,42 +15757,51 @@ "properties": { "complete_liveboard": { "type": "boolean", - "description": "Indicates whether to include complete Liveboard." + "description": "Indicates whether to include complete Liveboard.", + "nullable": true }, "include_cover_page": { "type": "boolean", - "description": "Indicates whether to include cover page with the Liveboard title." + "description": "Indicates whether to include cover page with the Liveboard title.", + "nullable": true }, "include_custom_logo": { "type": "boolean", - "description": "Indicates whether to include customized wide logo in the footer if available." + "description": "Indicates whether to include customized wide logo in the footer if available.", + "nullable": true }, "include_filter_page": { "type": "boolean", - "description": "Indicates whether to include a page with all applied filters." + "description": "Indicates whether to include a page with all applied filters.", + "nullable": true }, "include_page_number": { "type": "boolean", - "description": "Indicates whether to include page number in the footer of each page" + "description": "Indicates whether to include page number in the footer of each page", + "nullable": true }, "page_footer_text": { "type": "string", - "description": "Text to include in the footer of each page." + "description": "Text to include in the footer of each page.", + "nullable": true }, "page_orientation": { "type": "string", - "description": "Page orientation of the PDF." + "description": "Page orientation of the PDF.", + "nullable": true }, "page_size": { "type": "string", "enum": [ "A4" ], - "description": "Page size." + "description": "Page size.", + "nullable": true }, "truncate_table": { "type": "boolean", - "description": "Indicates whether to include only first page of the tables." + "description": "Indicates whether to include only first page of the tables.", + "nullable": true } }, "description": "Options for PDF export." @@ -14556,14 +15814,16 @@ "items": { "type": "string" }, - "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user." + "description": "Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user.", + "nullable": true }, "principals": { "type": "array", "items": { "$ref": "#/components/schemas/PrincipalsListItem" }, - "description": "List of user or groups to subscribe for the scheduled job notifications." + "description": "List of user or groups to subscribe for the scheduled job notifications.", + "nullable": true } }, "description": "Recipient configuration which includes email address, ID or name of the users and groups." @@ -14614,7 +15874,8 @@ }, "detail": { "type": "string", - "description": "Message details related to the schedule run." + "description": "Message details related to the schedule run.", + "nullable": true } }, "description": "Schedule run response object" @@ -14623,13 +15884,15 @@ "type": "object", "properties": { "identifier": { - "type": "string" + "type": "string", + "nullable": true }, "type": { "type": "string", "enum": [ "LIVEBOARD" - ] + ], + "nullable": true } } }, @@ -14638,11 +15901,13 @@ "properties": { "field_name": { "type": "string", - "description": "Name of the field to apply the sort on." + "description": "Name of the field to apply the sort on.", + "nullable": true }, "order": { "type": "string", - "description": "Sort order : ASC(Ascending) or DESC(Descending)." + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true } }, "description": "Sort options." @@ -14653,19 +15918,22 @@ "include_history_runs": { "type": "boolean", "default": false, - "description": "Indicates whether to fetch history runs for the scheduled notification." + "description": "Indicates whether to fetch history runs for the scheduled notification.", + "nullable": true }, "record_size": { "type": "integer", "format": "int32", "default": 10, - "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job." + "description": "Indicates the max number of records that can be fetched as past runs of any scheduled job.", + "nullable": true }, "record_offset": { "type": "integer", "format": "int32", "default": 0, - "description": "Indicates the starting record number from where history runs records should be fetched." + "description": "Indicates the starting record number from where history runs records should be fetched.", + "nullable": true } } }, @@ -14674,11 +15942,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInputMandatory", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URLInputMandatory", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Action details includes Type and Configuration for Custom Actions, either Callback or URL is required.\nWhen both callback and url are provided, callback would be considered" @@ -14688,7 +15958,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -14701,14 +15972,16 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", @@ -14716,7 +15989,8 @@ }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name", + "nullable": true } }, "description": "URL Custom Action Type" @@ -14726,19 +16000,23 @@ "properties": { "API_Key": { "$ref": "#/components/schemas/API_KeyInput", - "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." + "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters.", + "nullable": true }, "Basic_Auth": { "$ref": "#/components/schemas/Basic_AuthInput", - "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." + "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request.", + "nullable": true }, "Bearer_Token": { "type": "string", - "description": "Bearer tokens enable requests to authenticate using an access key." + "description": "Bearer tokens enable requests to authenticate using an access key.", + "nullable": true }, "No_Auth": { "type": "string", - "description": "No authorization. If your request doesn't require authorization." + "description": "No authorization. If your request doesn't require authorization.", + "nullable": true } }, "description": "Authorization type for the custom action." @@ -14748,11 +16026,13 @@ "properties": { "key": { "type": "string", - "description": "Enter your key name" + "description": "Enter your key name", + "nullable": true }, "value": { "type": "string", - "description": "Enter you key value" + "description": "Enter you key value", + "nullable": true } }, "description": "With API key auth, you send a key-value pair to the API either in the request headers or query parameters." @@ -14762,11 +16042,13 @@ "properties": { "password": { "type": "string", - "description": "Password for the basic authentication" + "description": "Password for the basic authentication", + "nullable": true }, "username": { "type": "string", - "description": "Username for the basic authentication" + "description": "Username for the basic authentication", + "nullable": true } }, "description": "Basic Auth: Basic authentication involves sending a verified username and password with your request." @@ -14776,11 +16058,13 @@ "properties": { "key": { "type": "string", - "description": "Key for the url query parameter" + "description": "Key for the url query parameter", + "nullable": true }, "value": { "type": "string", - "description": "Value for the url query parameter" + "description": "Value for the url query parameter", + "nullable": true } } }, @@ -14792,7 +16076,8 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInputCreate", - "description": "Specify that the association is enabled for the metadata object" + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, "identifier": { "type": "string", @@ -14805,7 +16090,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true } } }, @@ -14820,12 +16106,14 @@ "CONTEXT_MENU" ], "default": "MENU", - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", "default": true, - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -14836,7 +16124,8 @@ "visibility": { "type": "boolean", "default": true, - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true" + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.\nDefault: true", + "nullable": true } }, "description": "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." @@ -14846,11 +16135,13 @@ "properties": { "CALLBACK": { "$ref": "#/components/schemas/CALLBACKInput", - "description": "CALLBACK Custom Action Type" + "description": "CALLBACK Custom Action Type", + "nullable": true }, "URL": { "$ref": "#/components/schemas/URLInput", - "description": "URL Custom Action Type" + "description": "URL Custom Action Type", + "nullable": true } }, "description": "Action details includes `Type` and configuration details of Custom Actions. Either Callback or URL is required." @@ -14860,7 +16151,8 @@ "properties": { "reference": { "type": "string", - "description": "Reference name. By default, the value will be set to action name." + "description": "Reference name. By default, the value will be set to action name.", + "nullable": true } }, "description": "CALLBACK Custom Action Type" @@ -14870,22 +16162,26 @@ "properties": { "authentication": { "$ref": "#/components/schemas/AuthenticationInput", - "description": "Authorization type for the custom action." + "description": "Authorization type for the custom action.", + "nullable": true }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ParametersListItemInput" }, - "description": "Query parameters for url." + "description": "Query parameters for url.", + "nullable": true }, "url": { "type": "string", - "description": "Request Url for the Custom action." + "description": "Request Url for the Custom action.", + "nullable": true }, "reference": { "type": "string", - "description": "Reference name. By default the value will be set to action name" + "description": "Reference name. By default the value will be set to action name", + "nullable": true } }, "description": "URL Custom Action Type" @@ -14895,11 +16191,13 @@ "properties": { "action_config": { "$ref": "#/components/schemas/ActionConfigInput", - "description": "Specify that the association is enabled for the metadata object" + "description": "Specify that the association is enabled for the metadata object", + "nullable": true }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata." + "description": "Unique ID or name of the metadata.", + "nullable": true }, "type": { "type": "string", @@ -14908,7 +16206,8 @@ "ANSWER", "WORKSHEET" ], - "description": "Type of metadata." + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true } } }, @@ -14922,11 +16221,13 @@ "PRIMARY", "CONTEXT_MENU" ], - "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context." + "description": "Position of the Custom action on the Metadata object. Earlier naming convention: context.", + "nullable": true }, "visibility": { "type": "boolean", - "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled" + "description": "Visibility of the metadata association with custom action. Earlier naming convention: enabled", + "nullable": true } }, "description": "Specify that the association is enabled for the metadata object Default" @@ -14936,7 +16237,8 @@ "properties": { "visibility": { "type": "boolean", - "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility." + "description": "Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility.", + "nullable": true } }, "description": "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." @@ -14954,7 +16256,8 @@ }, "model_path": { "type": "string", - "description": "Model directory path, this is optional param and required if there are duplicate models with the same name." + "description": "Model directory path, this is optional param and required if there are duplicate models with the same name.", + "nullable": true }, "tables": { "type": "array", @@ -14969,25 +16272,32 @@ "type": "object", "properties": { "dbt_connection_identifier": { - "type": "string" + "type": "string", + "nullable": true }, "project_name": { - "type": "string" + "type": "string", + "nullable": true }, "connection_id": { - "type": "string" + "type": "string", + "nullable": true }, "connection_name": { - "type": "string" + "type": "string", + "nullable": true }, "cdw_database": { - "type": "string" + "type": "string", + "nullable": true }, "import_type": { - "type": "string" + "type": "string", + "nullable": true }, "author_name": { - "type": "string" + "type": "string", + "nullable": true } } }, @@ -15044,4 +16354,4 @@ } } ] -} \ No newline at end of file +} From ba88e2170a918d3e82a29ec820d5a721823a987b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 19 Sep 2024 09:27:19 +0000 Subject: [PATCH 188/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a1eaff8f6..20796ac39 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16354,4 +16354,4 @@ } } ] -} +} \ No newline at end of file From 5ccd60cc362f9361fd8e04e8deea5e235ffffa9e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 21 Sep 2024 14:34:29 +0000 Subject: [PATCH 189/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 20796ac39..c4c54af60 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -61,14 +61,6 @@ ], "description": "Roles for version 10.3.0.cl" }, - { - "name": "10.0.0.cl", - "id": "10.0.0.cl", - "tags": [ - "10.0.0.cl" - ], - "description": "Roles for version 10.0.0.cl" - }, { "name": "9.9.0.cl", "id": "9.9.0.cl", @@ -8122,6 +8114,7 @@ "post": { "operationId": "deleteConnection", "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "Connections", "9.2.0.cl" @@ -8193,13 +8186,13 @@ } } }, - "/api/rest/2.0/connections/delete/{connection_identifier}": { + "/api/rest/2.0/connections/{connection_identifier}/delete": { "post": { "operationId": "deleteConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", - "10.0.0.cl" + "10.4.0.cl" ], "parameters": [ { @@ -8263,6 +8256,7 @@ "post": { "operationId": "updateConnection", "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "Connections", "9.2.0.cl" @@ -8352,13 +8346,13 @@ } } }, - "/api/rest/2.0/connections/update/{connection_identifier}": { + "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.0.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", - "10.0.0.cl" + "10.4.0.cl" ], "requestBody": { "content": { From be601c1cfeb69c849aeb4857ae012c069e7869a5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 24 Sep 2024 14:28:35 +0000 Subject: [PATCH 190/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c4c54af60..01497795a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -331,7 +331,8 @@ "INACTIVE", "EXPIRED", "LOCKED", - "PENDING" + "PENDING", + "SUSPENDED" ] }, "notify_on_share": { @@ -4137,7 +4138,8 @@ "INACTIVE", "EXPIRED", "LOCKED", - "PENDING" + "PENDING", + "SUSPENDED" ] }, "org_identifiers": { @@ -4344,7 +4346,8 @@ "INACTIVE", "EXPIRED", "LOCKED", - "PENDING" + "PENDING", + "SUSPENDED" ] }, "notify_on_share": { @@ -11707,7 +11710,8 @@ "INACTIVE", "EXPIRED", "LOCKED", - "PENDING" + "PENDING", + "SUSPENDED" ], "description": "Status of the user account.", "nullable": true @@ -14591,7 +14595,8 @@ "INACTIVE", "EXPIRED", "LOCKED", - "PENDING" + "PENDING", + "SUSPENDED" ], "default": "ACTIVE", "description": "Status of the user account.", From d9dbf48cf04bd4490e376e3cc6ad2bfca9017ca2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 27 Sep 2024 07:15:30 +0000 Subject: [PATCH 191/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 01497795a..0ba8785b8 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6429,7 +6429,7 @@ "nullable": true }, "skip_cdw_validation_for_tables": { - "description": "if we should skip CDW validation for table imports.", + "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", "default": false, "type": "boolean", "nullable": true @@ -6535,7 +6535,7 @@ "nullable": true }, "skip_cdw_validation_for_tables": { - "description": "if we should skip CDW validation for table imports.", + "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", "default": false, "type": "boolean", "nullable": true From e22aba17ab4f0f78aed91dbb00e7a1c48a101612 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 28 Sep 2024 02:09:40 +0000 Subject: [PATCH 192/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0ba8785b8..abd733039 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3978,10 +3978,9 @@ }, "persist_option": { "description": "Indicates whether the specified attributes should be persisted or not.", - "default": "ADD", "type": "string", "enum": [ - "ADD", + "APPEND", "NONE", "RESET" ] @@ -4024,7 +4023,8 @@ } }, "required": [ - "username" + "username", + "persist_option" ] } } From 3a81b2dd2adcc6ed3f251e8736036e9d193c6ab6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 7 Oct 2024 11:43:48 +0000 Subject: [PATCH 193/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 48 ++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index abd733039..286ce47ba 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2923,7 +2923,9 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "GOOGLE_SHEETS" + "GOOGLE_SHEETS", + "FALCON", + "FALCON_ONPREM" ] } }, @@ -6673,6 +6675,14 @@ "default": false, "type": "boolean", "nullable": true + }, + "export_options": { + "description": "Flags to specify additional options for export.
Version: 10.5.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/Export_Options" + } + ] } }, "required": [ @@ -8034,7 +8044,9 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "GOOGLE_SHEETS" + "GOOGLE_SHEETS", + "FALCON", + "FALCON_ONPREM" ] }, "data_warehouse_config": { @@ -13409,7 +13421,9 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "GOOGLE_SHEETS" + "GOOGLE_SHEETS", + "FALCON", + "FALCON_ONPREM" ], "description": "Type of data warehouse." }, @@ -14862,6 +14876,30 @@ } } }, + "Export_Options": { + "type": "object", + "properties": { + "export_with_reference_object_id": { + "type": "boolean", + "default": false, + "description": "Boolean Flag to whether to export user_defined_id of referenced object. This will only be respected when UserDefinedId in TML is enabled.", + "nullable": true + }, + "include_guid": { + "type": "boolean", + "default": true, + "description": "Boolean flag to whether to export guid of the object. This will only be respected when UserDefinedId in TML is enabled.", + "nullable": true + }, + "include_object_id": { + "type": "boolean", + "default": false, + "description": "Boolean flag to whether to export user_defined_id of the object. This will only be respected when UserDefinedId in TML is enabled.", + "nullable": true + } + }, + "description": "Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled." + }, "ResponseCopyObject": { "type": "object", "properties": { @@ -15241,7 +15279,9 @@ "GCP_POSTGRESQL", "GCP_MYSQL", "MODE", - "GOOGLE_SHEETS" + "GOOGLE_SHEETS", + "FALCON", + "FALCON_ONPREM" ], "description": "Type of data warehouse." }, From d82134331c70f97bdaa2157c6eaefcefee1d894c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 8 Oct 2024 04:21:05 +0000 Subject: [PATCH 194/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1 + 1 file changed, 1 insertion(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 286ce47ba..4ee25a101 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3984,6 +3984,7 @@ "enum": [ "APPEND", "NONE", + "REPLACE", "RESET" ] }, From 12751d3d8eea9d0043aa86d954f866cb885822fd Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 8 Oct 2024 11:57:10 +0000 Subject: [PATCH 195/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4ee25a101..3ca7df0a0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7166,12 +7166,13 @@ "type": "object", "properties": { "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.", + "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN", "type": "string", "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE" + "LOGICAL_TABLE", + "LOGICAL_COLUMN" ] }, "metadata_identifiers": { @@ -14998,7 +14999,8 @@ "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE" + "LOGICAL_TABLE", + "LOGICAL_COLUMN" ], "description": " Type of metadata.\n \n\nType 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.", "nullable": true From 4329e592fd209c6e087ad6cdf166686a44861b7e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 18 Oct 2024 08:54:18 +0000 Subject: [PATCH 196/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3ca7df0a0..95346db85 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7205,6 +7205,7 @@ }, "emails": { "description": "Email IDs to which notifications will be sent.", + "default": [], "type": "array", "items": { "type": "string" @@ -7235,7 +7236,6 @@ }, "required": [ "permissions", - "emails", "message" ] } From 32c3014d5fc0ee1128778f3a565cccf0d059122a Mon Sep 17 00:00:00 2001 From: Prashant Patil <141843298+yinstardev@users.noreply.github.com> Date: Mon, 21 Oct 2024 22:44:20 +0530 Subject: [PATCH 197/410] SCAL-227480-docs for intro and setup pages (#174) * SCAL-227480-docs for intro and setup pages * Update introduction.md * Update setup-and-usage.md --- api-playground/content/introduction.md | 21 ++++--- api-playground/content/setup-and-usage.md | 74 +++++++++++++++++++++++ api-playground/content/toc.yml | 4 +- 3 files changed, 87 insertions(+), 12 deletions(-) create mode 100644 api-playground/content/setup-and-usage.md diff --git a/api-playground/content/introduction.md b/api-playground/content/introduction.md index cad71d6f8..1e1fbd01b 100644 --- a/api-playground/content/introduction.md +++ b/api-playground/content/introduction.md @@ -1,27 +1,28 @@ # Introduction -Welcome to the Thoughtspot REST API playground! We recommend that you browse through the following details before you start constructing your API requests to interact with the ThoughtSpot system. +Welcome to the Thoughtspot REST API v2.0 playground! +Browse through the following details before you begin and learn how to interact with the ThoughtSpot system through APIs. ## Playground layout -The REST API Playground offers an interactive portal with comprehensive information about the API endpoints, request and response workflows. +The REST API Playground offers an interactive portal with comprehensive information about each API endpoint, request format, and responses. + - On the left pane, you can find a catalog of API endpoints, grouped based on the objects they operate on. You can also view the data structure of the request and response and enumerations. - The middle section of the portal provides a detailed description of the endpoint, its input fields, and the allowed and default values for attributes. -- On the right side of Playground, you can find an interactive code explorer that shows the API request details and allows you to try out an API and view the response. +- On the right side of Playground, you can find an interactive code explorer that shows the API request details and allows you to try out an API and view the response. ## Resources -All the resources that can be used are listed under the **API Endpoints** section on the left pane. On clicking an endpoint, you can view its resource URL, input fields, request and response formats. +All the resources that can be used are listed under the **API Endpoints** section on the left pane. On clicking an endpoint, you can view its resource URL, input fields, and request and response formats. ## Sample request and response Based on the input provided for the fields, you can see the request generated in the API code explorer on the right side of the portal. You can click **Try it out** to explore an API and also copy the request using the copy icon in the code explorer. -On clicking the **Try it out** button, you can view the API response. If the request succeeds, the API returns the 200 response code. You can copy or download the API response using the buttons at the bottom of the code explorer. You can also copy the individual field values using the button that appears next to the field. You can click the **Back** button to go back to the previous page and try out another API. +On clicking the **Try it out** button, you can view the API response. If the request succeeds, the API returns the 200 response code. You can copy or download the API response using the buttons at the bottom of the code explorer. You can also copy the individual field values using the button next to the field. You can click the **Back** button to go back to the previous page and try out another API. ## Errors The portal uses the standard HTTP response codes to indicate the success or failure of a request. The 200 response code indicates a successful request, whereas 500 and 4xx response codes indicate an error. -If the API response indicates an error, you can view the error details by navigating to `root` > `error` > `message` > `debug` in the error response body. - -## Authentication +If the API response indicates an error, you can view the error details by navigating to `root` > `error` > `message` > `debug` in the error response body. -All API requests generated from Playground are authenticated using the Bearer token included with the `Authorization` header passed along with the request. This token is generated and set each time you open the REST API Playground and navigate to an endpoint. The token is generated for the logged-in user and is valid for 24 hours. +## Getting started +For information about setting up and using the REST API v2.0 endpoints, please refer to the **Setup and usage** guide, which describes the initial setup process and authentication options and examples to help you effectively use the APIs. -If you want to use a new token, you can generate a token using the `/api/rest/2.0/auth/token/object` endpoint. To update the token, click **Configure** in the code explorer and edit the `AccessToken` field in the pop-up that appears. +If you need further assistance, contact ThoughtSpot support team or connect with ThoughtSpot Developer Community on [Discord](https://discord.com/invite/JHPGwCkvjQ). diff --git a/api-playground/content/setup-and-usage.md b/api-playground/content/setup-and-usage.md new file mode 100644 index 000000000..ba6059e86 --- /dev/null +++ b/api-playground/content/setup-and-usage.md @@ -0,0 +1,74 @@ + +Welcome to the Thoughtspot REST API v2.0 Setup and usage guide! This document provides a comprehensive overview of ThoughtSpot REST APIs and describes how to access and manage ThoughtSpot resources and objects programmatically. + +## Base URL and suffix +**Base URL**: For REST APIs, the base URL is the foundational URL that serves as the starting point for all API requests. +It usually represents the root endpoint for accessing the API's resources. The base URL includes the protocol (HTTP or HTTPS), the domain name (or IP address), and +often a version number. + +**Suffix (or endpoint)**: The suffix (or endpoint) is appended to the base URL to specify a particular resource or action within the API. +It usually represents specific data or functions provided by the API. + +**ThoughtSpot base URL** + +`https:///api/rest/2.0/` + +**Example of complete API request URL for "Getting Current User Info"** + +`GET https:///api/rest/2.0/auth/session/user` + +## Types of authentication +Authentication is crucial to protect the API endpoints and allow only authorized users to access or modify the resources. +To ensure secure communication between the client and server, the API supports various authentication options. Below are the supported +authentication types for ThoughtSpot REST API: + +> **Note:** All API requests generated from Playground are authenticated using the Bearer token included with the `Authorization` header passed along with the request. +This token is generated and set each time you open the REST API Playground and navigate to an API endpoint. The token is generated for the logged-in user and is valid for 24 hours. +However, for programming needs, developers can use one of the following authentication methods to authenticate users and invoke APIs. + +### Cookie-based authentication +In this method, the REST client sends an API request to the `api/rest/2.0/auth/session/login` endpoint with the `username` and `password`. The client session is assigned a cookie `JSESSIONID` upon successful login. This `JSESSIONID` cookie is then used to authenticate the client in subsequent API calls. + +For more details: [Cookie-based authentication](https://developers.thoughtspot.com/docs/api-authv2#loginTS). + +### Token-based authentication +In this method, the REST clients obtain a Bearer token or Trusted authentication token from ThoughtSpot and use it in their subsequent API calls to authorize their requests. + +Once obtained, the authentication token needs to be passed in the `Authorization` header as: +`Authorization: Bearer {AUTH_TOKEN}` + +> **Note:** By default, the token obtained from ThoughtSpot is valid for 5 minutes (300 seconds). If a REST client tries to make an API call with an expired token, the server returns an error. In such cases, get a new token and use it in your subsequent API calls. If you want to use the token for more than 5 minutes, set the token expiry duration to a higher value. + +Based on your client setup, you can use one of the following methods to obtain an authentication token. For more details, see [Token-based authentication](https://developers.thoughtspot.com/docs/api-authv2#bearerToken). + +#### Using username and password +In this method, you must have the `username` and `password` of the user to authenticate to ThoughtSpot and obtain a token. The following API endpoints can be used to obtain the token: + +- Get a token for full access: `POST /api/rest/2.0/auth/token/full` +For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_for_full_access). + +- Get a token for object access: `POST /api/rest/2.0/auth/token/object` +For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_to_access_a_specific_object). + +#### Using username and secret key +In this method, you must pass the `secret_key` and the `username` to authenticate to ThoughtSpot and obtain a token. To request a token on behalf of another user, you need administrator privileges and a `secret_key` that allows you to securely pass the authentication details of an embedded application user. + +The `secret_key` is generated and available if [Trusted Authentication is enabled on your ThoughtSpot Instance](https://developers.thoughtspot.com/docs/trusted-auth#trusted-auth-enable). + +- Get a token for full access: `POST /api/rest/2.0/auth/token/full` +For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_for_full_access_2). + +- Get a token for object access: `POST /api/rest/2.0/auth/token/object` +For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_to_access_a_specific_object_2). + +By using the guidelines listed on this page, you can successfully set up and configure authentication for your REST APIs. Select the authentication method that best aligns with your application's setup and ensure secure access to your resources. For more information, refer to the documentation listed in the **Additional resources** section. + +# Additional resources +* [Get started with REST API v2.0](https://developers.thoughtspot.com/docs/rest-apiv2-getstarted) +* [REST API v2.0 authentication](https://developers.thoughtspot.com/docs/api-authv2) +* [REST API v2.0 Reference](https://developers.thoughtspot.com/docs/rest-apiv2-reference) +* [REST API v2.0 SDKs](https://developers.thoughtspot.com/docs/rest-api-sdk) + +If you need further assistance, contact ThoughtSpot support or connect with the ThoughtSpot Developer Community on [Discord](https://discord.com/invite/JHPGwCkvjQ). + +Happy coding! diff --git a/api-playground/content/toc.yml b/api-playground/content/toc.yml index 501481f28..e405ea38d 100644 --- a/api-playground/content/toc.yml +++ b/api-playground/content/toc.yml @@ -3,8 +3,8 @@ toc: items: - page: Introduction file: Introduction.md - - generate: Setup and Usage - from: getting-started + - page: Setup and Usage + file: setup-and-usage.md - generate: Resources from: endpoints - generate: Models From 931064e3cfb2946bba826b0351c1e3295e500ba6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 22 Oct 2024 04:44:05 +0000 Subject: [PATCH 198/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 95346db85..ea0457a40 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1788,7 +1788,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, either provide the GUID or name of the answer, or provide the answer session id.\nAlso provide the `file_format` for the report. The default file format is CSV. In case of session id, only PNG & CSV file format are allowed.\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.\nThis is only supported when answer is exported by the GUID or name. \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1803,6 +1803,10 @@ "description": "Unique ID or name of the metadata object.", "type": "string" }, + "session_identifier": { + "description": "Unique ID of the answer session.", + "type": "string" + }, "file_format": { "description": "Export file format.", "default": "CSV", @@ -1826,10 +1830,7 @@ "description": "JSON object for setting values of parameters in runtime.", "type": "object" } - }, - "required": [ - "metadata_identifier" - ] + } } } }, @@ -3462,7 +3463,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, send the `Org ID` in the API request.\n\n**Note**: This feature is available only if Trusted authentication is enabled on your cluster.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3599,7 +3600,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou can generate the token for a user by providing a `username` and `password` (for [Bearer token authentication](https://developers.thoughtspot.com/docs/?pageid=api-authv2#bearerToken)), or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, use the following attributes.\n\n* `auto_create`\n* `username`\n\nTo assign privileges to the new user, specify the group name or GUID in `group_identifiers`.\n\nTo add the user to an Org, specify the Org ID in the `org_id` attribute.\n\n**Note**: This feature is available only on clusters with trusted authentication enabled.\n\nTo provision a new user and assign privileges, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -6402,7 +6403,7 @@ "type": "object", "properties": { "metadata_tmls": { - "description": "Details of TML objects.", + "description": "Details of TML objects.\n\n**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)**", "type": "array", "items": { "type": "string" @@ -6641,7 +6642,7 @@ "nullable": true }, "edoc_format": { - "description": "TML EDOC content format.", + "description": "TML EDOC content format.\n\n**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)**", "default": "JSON", "type": "string", "enum": [ @@ -7166,7 +7167,7 @@ "type": "object", "properties": { "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name\".\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN", + "description": "Type of metadata. Required if identifier in metadata_identifies is a name.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN", "type": "string", "enum": [ "LIVEBOARD", From 2d1cc97179954dbe098c3b4a28b640b806174e8d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 22 Oct 2024 09:41:36 +0000 Subject: [PATCH 199/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 142 ++++++++++++++++---------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ea0457a40..187aa35fc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -225,7 +225,7 @@ "/api/rest/2.0/users/search": { "post": { "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable 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.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -468,7 +468,7 @@ "/api/rest/2.0/system": { "get": { "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -560,7 +560,7 @@ "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\nIf [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.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.0.0.cl" @@ -630,7 +630,7 @@ "/api/rest/2.0/system/config-overrides": { "get": { "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -693,7 +693,7 @@ "/api/rest/2.0/orgs/search": { "post": { "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -946,7 +946,7 @@ "/api/rest/2.0/groups/search": { "post": { "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -1156,7 +1156,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n`tag_identifiers`\n`type`\n`created_by_user_identifiers`\n`modified_by_user_identifiers`\n`owned_by_user_identifiers`\n`exclude_objects`\n`include_auto_created_objects`\n`favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -1660,7 +1660,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\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 file format, 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\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\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\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\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1788,7 +1788,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege.\n\n#### Usage guidelines\n\nIn the request body, either provide the GUID or name of the answer, or provide the answer session id.\nAlso provide the `file_format` for the report. The default file format is CSV. In case of session id, only PNG & CSV file format are allowed.\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.\nThis is only supported when answer is exported by the GUID or name. \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1890,7 +1890,7 @@ "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object. \n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -2212,7 +2212,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View).\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2458,7 +2458,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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](For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). \n). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2573,7 +2573,7 @@ "/api/rest/2.0/logs/fetch": { "post": { "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information about security events returned in the API response, see [Security events](https://developers.thoughtspot.com/docs/audit-logs#_security_events).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required.\n\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Log", "9.0.0.cl" @@ -2677,7 +2677,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2762,7 +2762,7 @@ "/api/rest/2.0/vcs/git/commits/search": { "post": { "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -2871,7 +2871,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -3054,7 +3054,7 @@ "/api/rest/2.0/roles/search": { "post": { "operationId": "searchRoles", - "description": "Gets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later", + "description": "\nGets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later\n\nGets a list of Role objects from the ThoughtSpot system.\n\nAvailable if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required.\n\nTo get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -3238,7 +3238,7 @@ "/api/rest/2.0/customization/custom-actions/search": { "post": { "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -3463,7 +3463,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3600,7 +3600,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3789,7 +3789,7 @@ "/api/rest/2.0/auth/token/revoke": { "post": { "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Object Access Token](#/http/api-endpoints/authentication/get-object-access-token)\nand [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -3863,7 +3863,7 @@ "/api/rest/2.0/auth/token/validate": { "post": { "operationId": "validateToken", - "description": " Version: 9.12.0.cl or later", + "description": "\n Version: 9.12.0.cl or later\n\n\nValidates the authentication token specified in the API request.\n\nIf your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.12.0.cl" @@ -4094,7 +4094,7 @@ "/api/rest/2.0/users/create": { "post": { "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4311,7 +4311,7 @@ "/api/rest/2.0/users/{user_identifier}/update": { "post": { "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4516,7 +4516,7 @@ "/api/rest/2.0/users/{user_identifier}/delete": { "post": { "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4582,7 +4582,7 @@ "/api/rest/2.0/users/import": { "post": { "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4683,7 +4683,7 @@ "/api/rest/2.0/users/change-password": { "post": { "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4768,7 +4768,7 @@ "/api/rest/2.0/users/reset-password": { "post": { "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4848,7 +4848,7 @@ "/api/rest/2.0/users/force-logout": { "post": { "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.0.0.cl" @@ -4923,7 +4923,7 @@ "/api/rest/2.0/users/activate": { "post": { "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.7.0.cl" @@ -5015,7 +5015,7 @@ "/api/rest/2.0/users/deactivate": { "post": { "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `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.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Users", "9.7.0.cl" @@ -5102,7 +5102,7 @@ "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration settings in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration data in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "9.2.0.cl" @@ -5177,7 +5177,7 @@ "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -5274,7 +5274,7 @@ "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -5384,7 +5384,7 @@ "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\nIf [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.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Orgs", "9.0.0.cl" @@ -5450,7 +5450,7 @@ "/api/rest/2.0/tags/create": { "post": { "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5554,7 +5554,7 @@ "/api/rest/2.0/tags/{tag_identifier}/update": { "post": { "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5640,7 +5640,7 @@ "/api/rest/2.0/tags/{tag_identifier}/delete": { "post": { "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Tags", "9.0.0.cl" @@ -5878,7 +5878,7 @@ "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign privileges\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -6231,7 +6231,7 @@ "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -6297,7 +6297,7 @@ "/api/rest/2.0/groups/import": { "post": { "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -6391,7 +6391,7 @@ "/api/rest/2.0/metadata/tml/import": { "post": { "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -6611,7 +6611,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -6756,7 +6756,7 @@ "/api/rest/2.0/metadata/tml/export/batch": { "post": { "operationId": "exportMetadataTMLBatched", - "description": " Version: 10.1.0.cl or later", + "description": "\n Version: 10.1.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.1.0.cl" @@ -6876,7 +6876,7 @@ "/api/rest/2.0/metadata/delete": { "post": { "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object. \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -6960,7 +6960,7 @@ "/api/rest/2.0/metadata/copyobject": { "post": { "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of the metadata object specified in the API request.\n\nRequires create access to metadata objects\n\nUpon successful execution, the API returns the id of the new object which is copied from the given object.\n\n\n\n#### Endpoint URL\n", + "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.3.0.cl" @@ -7068,7 +7068,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -7295,7 +7295,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7412,7 +7412,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7519,7 +7519,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7797,7 +7797,7 @@ "/api/rest/2.0/vcs/git/branches/validate": { "post": { "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -7995,7 +7995,7 @@ "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -8131,7 +8131,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "deprecated": true, "tags": [ "Connections", @@ -8207,7 +8207,7 @@ "/api/rest/2.0/connections/{connection_identifier}/delete": { "post": { "operationId": "deleteConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -8273,7 +8273,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "deprecated": true, "tags": [ "Connections", @@ -8367,7 +8367,7 @@ "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -8463,7 +8463,7 @@ "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { "post": { "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.9.0.cl" @@ -8536,7 +8536,7 @@ "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { "post": { "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: \n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.9.0.cl" @@ -8605,7 +8605,7 @@ "/api/rest/2.0/roles/create": { "post": { "operationId": "createRole", - "description": "Creates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "description": "\nCreates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later\n\nCreates a Role object in ThoughtSpot.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -8733,7 +8733,7 @@ "/api/rest/2.0/roles/{role_identifier}/update": { "post": { "operationId": "updateRole", - "description": "Updates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "description": "\nUpdates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later\n\nUpdates the properties of a Role object.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -8869,7 +8869,7 @@ "/api/rest/2.0/roles/{role_identifier}/delete": { "post": { "operationId": "deleteRole", - "description": "Deletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later", + "description": "\nDeletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later\n\nDeletes a Role object from the ThoughtSpot system.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -8935,7 +8935,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\nIf [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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -9716,7 +9716,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/delete": { "post": { "operationId": "deleteSchedule", - "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \n\n\n\n\n#### Endpoint URL\n", + "description": "\nDeletes a scheduled job.
Version: 9.4.0.cl or later\n\nDeletes a scheduled Liveboard job.\n\nRequires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. \nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -9900,7 +9900,7 @@ "/api/rest/2.0/schedules/{schedule_identifier}/update": { "post": { "operationId": "updateSchedule", - "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate schedule.
Version: 9.4.0.cl or later\n\nUpdates a scheduled Liveboard job.\n\nRequires 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.\nIf [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.\n\nThe 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -10682,7 +10682,7 @@ "/api/rest/2.0/customization/custom-actions": { "post": { "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\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#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -10813,7 +10813,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/?pageid=custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\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#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -10934,7 +10934,7 @@ "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Action", "9.6.0.cl" @@ -11000,7 +11000,7 @@ "/api/rest/2.0/dbt/dbt-connection": { "post": { "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.9.0.cl" @@ -11323,7 +11323,7 @@ "/api/rest/2.0/dbt/search": { "post": { "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.9.0.cl" @@ -11389,7 +11389,7 @@ "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { "post": { "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.9.0.cl" @@ -11455,7 +11455,7 @@ "/api/rest/2.0/dbt/update-dbt-connection": { "post": { "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.9.0.cl" From ae662f76879d4a513e3bd212b8d0a7d1febe4ab3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 22 Oct 2024 16:36:40 +0000 Subject: [PATCH 200/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 187aa35fc..763120a7c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12479,6 +12479,11 @@ "description": "Unique ID or name of the metadata.", "nullable": true }, + "custom_identifier": { + "type": "string", + "description": "CustomObjectId of the metadata.", + "nullable": true + }, "name_pattern": { "type": "string", "description": "A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match.", From 1b5f8993d872dcd75ba62102d9439f7f5f3603cd Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 23 Oct 2024 02:14:24 +0000 Subject: [PATCH 201/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 763120a7c..6e91c88c5 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6437,6 +6437,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "skip_diff_check": { + "description": "Boolean Flag to skip TML diff check before processing object TMLs.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -6543,6 +6549,23 @@ "default": false, "type": "boolean", "nullable": true + }, + "import_policy": { + "description": "Policy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE]", + "default": "PARTIAL_OBJECT", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ] + }, + "skip_diff_check": { + "description": "Boolean Flag to skip TML diff check before processing object TMLs.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ From bc233783aa661400053549f41cc7aacb6e06d281 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 23 Oct 2024 03:12:21 +0000 Subject: [PATCH 202/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6e91c88c5..223ea9f4a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1788,7 +1788,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\n\nIn the request body, either provide the GUID or name of the answer, or provide the answer session id.\nBy default, answer is exported from latest generation number of answer session. Optionally, you can also provide the generation number of the session.\nAlso provide the `file_format` for the report. The default file format is CSV. In case of session id, only PNG & CSV file format are allowed.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1807,6 +1807,11 @@ "description": "Unique ID of the answer session.", "type": "string" }, + "generation_number": { + "description": "Generation number of the answer session.", + "type": "integer", + "format": "int32" + }, "file_format": { "description": "Export file format.", "default": "CSV", From 5186127f1cd69afc7421523b25834cffecab5da4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 24 Oct 2024 19:58:03 +0000 Subject: [PATCH 203/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 299 ++++++++++++++++++++++++++++++++ 1 file changed, 299 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 223ea9f4a..c62f42682 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -11607,6 +11607,252 @@ } } } + }, + "/api/rest/2.0/ai/conversation/create": { + "post": { + "operationId": "createConversation", + "description": "\n Version: 10.4.0.cl or later\n\nCreates a Conversation identifier to start an AI-driven conversation based on a specific data model.\n\nThis API requires the metadata_identifier parameter to define the context for the conversation.\n\nOptionally, tokens can be provided to directly initiate the conversation.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Data model id to start the conversation on.", + "type": "string" + }, + "tokens": { + "description": "Tokens to start the conversation with.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Conversation" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Conversation" + } + } + } + }, + "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/conversation/{conversation_identifier}/converse": { + "post": { + "operationId": "sendMessage", + "description": "\n Version: 10.4.0.cl or later\n\nSends a follow-up message to an ongoing conversation within the context of a specific data model and the conversation identifier.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "Data model id to converse on.", + "type": "string" + }, + "message": { + "description": "User follow up question.", + "type": "string" + } + }, + "required": [ + "metadata_identifier", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "conversation_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique identifier of the conversation." + } + ], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + } + }, + "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", + "description": "\n Version: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "User natural language query.", + "type": "string" + }, + "metadata_identifier": { + "description": "Data model id to answer the query on.", + "type": "string" + } + }, + "required": [ + "query", + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + }, + "400": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } } }, "components": { @@ -16377,6 +16623,59 @@ } } }, + "Conversation": { + "type": "object", + "required": [ + "conversation_identifier" + ], + "properties": { + "conversation_identifier": { + "type": "string", + "description": "Unique identifier of the conversation." + } + } + }, + "ResponseMessage": { + "type": "object", + "required": [ + "message_type" + ], + "properties": { + "session_identifier": { + "type": "string", + "description": "Unique identifier of the generated response.", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generate number of the response.", + "nullable": true + }, + "message_type": { + "type": "string", + "enum": [ + "TSAnswer" + ], + "description": "Type of the generated response." + }, + "visualization_type": { + "type": "string", + "enum": [ + "Chart", + "Table", + "Undefined" + ], + "description": "Generated visualization type.", + "nullable": true + }, + "tokens": { + "type": "string", + "description": "Tokens for the response.", + "nullable": true + } + } + }, "Runtime_Filter": { "type": "object", "properties": { From 8d1750a0ad2afdb90b1684c017a723ca7337ee5d Mon Sep 17 00:00:00 2001 From: Prashant Patil <141843298+yinstardev@users.noreply.github.com> Date: Fri, 25 Oct 2024 22:20:17 +0530 Subject: [PATCH 204/410] setup and usage page update (#177) --- api-playground/content/setup-and-usage.md | 100 ++++++++++++++++------ 1 file changed, 73 insertions(+), 27 deletions(-) diff --git a/api-playground/content/setup-and-usage.md b/api-playground/content/setup-and-usage.md index ba6059e86..3cb1e8442 100644 --- a/api-playground/content/setup-and-usage.md +++ b/api-playground/content/setup-and-usage.md @@ -1,5 +1,6 @@ -Welcome to the Thoughtspot REST API v2.0 Setup and usage guide! This document provides a comprehensive overview of ThoughtSpot REST APIs and describes how to access and manage ThoughtSpot resources and objects programmatically. +Welcome to the Thoughtspot REST API v2.0 Setup and usage guide! +This document provides an overview of ThoughtSpot REST APIs and describes how to set up authentication, access, and manage ThoughtSpot resources and objects programmatically. ## Base URL and suffix **Base URL**: For REST APIs, the base URL is the foundational URL that serves as the starting point for all API requests. @@ -19,56 +20,101 @@ It usually represents specific data or functions provided by the API. ## Types of authentication Authentication is crucial to protect the API endpoints and allow only authorized users to access or modify the resources. -To ensure secure communication between the client and server, the API supports various authentication options. Below are the supported -authentication types for ThoughtSpot REST API: +To ensure secure communication between the client and server, the API supports various authentication options. Select the authentication method that best suits your application's setup and ensure secure access to your resources: > **Note:** All API requests generated from Playground are authenticated using the Bearer token included with the `Authorization` header passed along with the request. This token is generated and set each time you open the REST API Playground and navigate to an API endpoint. The token is generated for the logged-in user and is valid for 24 hours. However, for programming needs, developers can use one of the following authentication methods to authenticate users and invoke APIs. ### Cookie-based authentication -In this method, the REST client sends an API request to the `api/rest/2.0/auth/session/login` endpoint with the `username` and `password`. The client session is assigned a cookie `JSESSIONID` upon successful login. This `JSESSIONID` cookie is then used to authenticate the client in subsequent API calls. +In this method, when a REST client sends an API request to the `api/rest/2.0/auth/session/login` endpoint with the `username` and `password`, upon successful login, a cookie `JSESSIONID` is assigned to the client session. This `JSESSIONID` cookie is then used to authenticate the client in subsequent API calls. -For more details: [Cookie-based authentication](https://developers.thoughtspot.com/docs/api-authv2#loginTS). +The cookie-based authentication method is useful when REST clients use the browser for API calls. For more information, see [Cookie-based authentication](https://developers.thoughtspot.com/docs/api-authv2#loginTS). -### Token-based authentication -In this method, the REST clients obtain a Bearer token or Trusted authentication token from ThoughtSpot and use it in their subsequent API calls to authorize their requests. +> **Note:** Applications embedding ThoughtSpot can also use this method in conjunction with the Visual Embed SDK and reuse the cookie that is already set. -Once obtained, the authentication token needs to be passed in the `Authorization` header as: -`Authorization: Bearer {AUTH_TOKEN}` +### Token-based authentication +In this method, the REST clients obtain a Bearer token or Trusted authentication token from ThoughtSpot and use it in their subsequent API calls to authorize their requests. The authentication token needs to be passed in the `Authorization` header as: +`Authorization: Bearer {AUTH_TOKEN}`. > **Note:** By default, the token obtained from ThoughtSpot is valid for 5 minutes (300 seconds). If a REST client tries to make an API call with an expired token, the server returns an error. In such cases, get a new token and use it in your subsequent API calls. If you want to use the token for more than 5 minutes, set the token expiry duration to a higher value. -Based on your client setup, you can use one of the following methods to obtain an authentication token. For more details, see [Token-based authentication](https://developers.thoughtspot.com/docs/api-authv2#bearerToken). - -#### Using username and password -In this method, you must have the `username` and `password` of the user to authenticate to ThoughtSpot and obtain a token. The following API endpoints can be used to obtain the token: +Based on your client setup, use one of the following methods to get an authentication token: -- Get a token for full access: `POST /api/rest/2.0/auth/token/full` -For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_for_full_access). - -- Get a token for object access: `POST /api/rest/2.0/auth/token/object` -For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_to_access_a_specific_object). - -#### Using username and secret key +#### Using username and secret key (Recommended) In this method, you must pass the `secret_key` and the `username` to authenticate to ThoughtSpot and obtain a token. To request a token on behalf of another user, you need administrator privileges and a `secret_key` that allows you to securely pass the authentication details of an embedded application user. The `secret_key` is generated and available if [Trusted Authentication is enabled on your ThoughtSpot Instance](https://developers.thoughtspot.com/docs/trusted-auth#trusted-auth-enable). - Get a token for full access: `POST /api/rest/2.0/auth/token/full` -For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_for_full_access_2). - - Get a token for object access: `POST /api/rest/2.0/auth/token/object` -For additional details, see [ThoughtSpot Developer Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_a_token_to_access_a_specific_object_2). -By using the guidelines listed on this page, you can successfully set up and configure authentication for your REST APIs. Select the authentication method that best aligns with your application's setup and ensure secure access to your resources. For more information, refer to the documentation listed in the **Additional resources** section. +For more information about the API parameters, request format, and response, see [REST API v2 Authentication](https://developers.thoughtspot.com/docs/api-authv2#trusted-auth-v2). + +#### Using username and password +In this method, you must have the `username` and `password` of the user to authenticate to ThoughtSpot and obtain a token. The following API endpoints can be used to obtain the token: + +- Get a token for full access: `POST /api/rest/2.0/auth/token/full` +- Get a token for object access: `POST /api/rest/2.0/auth/token/object` + +For more information about the API parameters, request format, and response, see [REST API v2 Authentication](https://developers.thoughtspot.com/docs/api-authv2#_basic_authentication). + +#### Request and response examples +The following example sends `username` and `secret_key` in the `POST` request body to the `/api/rest/2.0/auth/token/full` API endpoint to obtain an authentication token: + +``` +curl -X POST \ + --url 'https://{ThoughtSpot-Host}/api/rest/2.0/auth/token/full' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + --data-raw '{ + "username": "tsUserA", + "validity_time_in_sec": 300, + "auto_create": false, + "secret_key": "2657f6f9-6aa9-4432-99f2-bf0d70f240ac" +}' +``` +If the request is successful, the API returns the authentication token assigned to the user specified in the request. + +``` +{ + "token":"{AUTH_TOKEN}", + "creation_time_in_millis": 1729835030710, + "expiration_time_in_millis": 1729835330494, + "scope":{ + "access_type":"FULL", + "org_id":0, + "metadata_id":null + }, + "valid_for_user_id":"fd873d1e-11cc-4246-8ee2-78e78d2b5840", + "valid_for_username":"tsUserA" +} +``` + +Include the authentication token obtained from ThoughtSpot in the `Authorization` header of your subsequent API requests as shown in this example: + +``` +curl -X POST \ + --url 'https://{ThoughtSpot-host}/api/rest/2.0/metadata/search' \ + -H 'Authorization: Bearer {AUTH_TOKEN}' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + --data-raw '{ + "metadata": [ + { + "type": "LIVEBOARD" + } + ] +}' +``` # Additional resources -* [Get started with REST API v2.0](https://developers.thoughtspot.com/docs/rest-apiv2-getstarted) -* [REST API v2.0 authentication](https://developers.thoughtspot.com/docs/api-authv2) +Refer to the following resources for additional information on REST APIs and SDK: * [REST API v2.0 Reference](https://developers.thoughtspot.com/docs/rest-apiv2-reference) * [REST API v2.0 SDKs](https://developers.thoughtspot.com/docs/rest-api-sdk) +* [Get started with REST API v2.0](https://developers.thoughtspot.com/docs/rest-apiv2-getstarted) +* [REST API v2.0 authentication](https://developers.thoughtspot.com/docs/api-authv2) -If you need further assistance, contact ThoughtSpot support or connect with the ThoughtSpot Developer Community on [Discord](https://discord.com/invite/JHPGwCkvjQ). +To get help and assistance, contact ThoughtSpot support or connect with the ThoughtSpot Developer Community on [Discord](https://discord.com/invite/JHPGwCkvjQ). Happy coding! From 8214ed2668869037f810c34c9919146417f6e5fa Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 26 Oct 2024 06:14:25 +0000 Subject: [PATCH 205/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c62f42682..a74b5ee69 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12911,7 +12911,8 @@ "TAG", "USER", "USER_GROUP", - "LOGICAL_RELATIONSHIP" + "LOGICAL_RELATIONSHIP", + "INSIGHT_SPEC" ], "description": "Type of the metadata." }, From fcbd6fb5ab57e991513266c49330c1301cc8a8b2 Mon Sep 17 00:00:00 2001 From: Prashant Patil <141843298+yinstardev@users.noreply.github.com> Date: Mon, 28 Oct 2024 20:23:43 +0530 Subject: [PATCH 206/410] Update setup-and-usage.md (#179) --- api-playground/content/setup-and-usage.md | 121 +++++++++++++++++----- 1 file changed, 94 insertions(+), 27 deletions(-) diff --git a/api-playground/content/setup-and-usage.md b/api-playground/content/setup-and-usage.md index 3cb1e8442..6845e2d4d 100644 --- a/api-playground/content/setup-and-usage.md +++ b/api-playground/content/setup-and-usage.md @@ -1,6 +1,6 @@ Welcome to the Thoughtspot REST API v2.0 Setup and usage guide! -This document provides an overview of ThoughtSpot REST APIs and describes how to set up authentication, access, and manage ThoughtSpot resources and objects programmatically. +This document describes how to set up authentication to access and manage ThoughtSpot resources and objects programmatically. ## Base URL and suffix **Base URL**: For REST APIs, the base URL is the foundational URL that serves as the starting point for all API requests. @@ -20,47 +20,31 @@ It usually represents specific data or functions provided by the API. ## Types of authentication Authentication is crucial to protect the API endpoints and allow only authorized users to access or modify the resources. + To ensure secure communication between the client and server, the API supports various authentication options. Select the authentication method that best suits your application's setup and ensure secure access to your resources: > **Note:** All API requests generated from Playground are authenticated using the Bearer token included with the `Authorization` header passed along with the request. This token is generated and set each time you open the REST API Playground and navigate to an API endpoint. The token is generated for the logged-in user and is valid for 24 hours. However, for programming needs, developers can use one of the following authentication methods to authenticate users and invoke APIs. -### Cookie-based authentication -In this method, when a REST client sends an API request to the `api/rest/2.0/auth/session/login` endpoint with the `username` and `password`, upon successful login, a cookie `JSESSIONID` is assigned to the client session. This `JSESSIONID` cookie is then used to authenticate the client in subsequent API calls. - -The cookie-based authentication method is useful when REST clients use the browser for API calls. For more information, see [Cookie-based authentication](https://developers.thoughtspot.com/docs/api-authv2#loginTS). - -> **Note:** Applications embedding ThoughtSpot can also use this method in conjunction with the Visual Embed SDK and reuse the cookie that is already set. ### Token-based authentication -In this method, the REST clients obtain a Bearer token or Trusted authentication token from ThoughtSpot and use it in their subsequent API calls to authorize their requests. The authentication token needs to be passed in the `Authorization` header as: -`Authorization: Bearer {AUTH_TOKEN}`. +In this method, the REST clients obtain a bearer token with basic authentication or a Trusted authentication token from ThoughtSpot. REST clients must use this authentication token in the `Authorization` header to authorize their subsequent API requests: -> **Note:** By default, the token obtained from ThoughtSpot is valid for 5 minutes (300 seconds). If a REST client tries to make an API call with an expired token, the server returns an error. In such cases, get a new token and use it in your subsequent API calls. If you want to use the token for more than 5 minutes, set the token expiry duration to a higher value. +`Authorization: Bearer {AUTH_TOKEN}` -Based on your client setup, use one of the following methods to get an authentication token: +> **Note:** By default, the token obtained from ThoughtSpot is valid for 5 minutes (300 seconds). If a REST client tries to make an API call with an expired token, the server returns an error. In such cases, get a new token and use it in your subsequent API calls. If you want to use the token for more than 5 minutes, set the token expiry duration to a higher value. #### Using username and secret key (Recommended) -In this method, you must pass the `secret_key` and the `username` to authenticate to ThoughtSpot and obtain a token. To request a token on behalf of another user, you need administrator privileges and a `secret_key` that allows you to securely pass the authentication details of an embedded application user. +In this method, you must pass the `username` and `secret_key` parameters to authenticate to ThoughtSpot and obtain a token. To request a token on behalf of another user, you need administrator privileges and access to the `secret_key` that allows you to securely pass the authentication details of an embedded application user. The `secret_key` is generated and available if [Trusted Authentication is enabled on your ThoughtSpot Instance](https://developers.thoughtspot.com/docs/trusted-auth#trusted-auth-enable). - Get a token for full access: `POST /api/rest/2.0/auth/token/full` - Get a token for object access: `POST /api/rest/2.0/auth/token/object` -For more information about the API parameters, request format, and response, see [REST API v2 Authentication](https://developers.thoughtspot.com/docs/api-authv2#trusted-auth-v2). - -#### Using username and password -In this method, you must have the `username` and `password` of the user to authenticate to ThoughtSpot and obtain a token. The following API endpoints can be used to obtain the token: - -- Get a token for full access: `POST /api/rest/2.0/auth/token/full` -- Get a token for object access: `POST /api/rest/2.0/auth/token/object` - -For more information about the API parameters, request format, and response, see [REST API v2 Authentication](https://developers.thoughtspot.com/docs/api-authv2#_basic_authentication). - -#### Request and response examples -The following example sends `username` and `secret_key` in the `POST` request body to the `/api/rest/2.0/auth/token/full` API endpoint to obtain an authentication token: +##### Request and response example +The following example sends `username` and `secret_key` in the `POST` request body to the `/api/rest/2.0/auth/token/full` API endpoint, to obtain an authentication token with full access to ThoughtSpot: ``` curl -X POST \ @@ -69,7 +53,7 @@ curl -X POST \ -H 'Content-Type: application/json' \ --data-raw '{ "username": "tsUserA", - "validity_time_in_sec": 300, + "validity_time_in_sec": 86400, "auto_create": false, "secret_key": "2657f6f9-6aa9-4432-99f2-bf0d70f240ac" }' @@ -79,8 +63,8 @@ If the request is successful, the API returns the authentication token assigned ``` { "token":"{AUTH_TOKEN}", - "creation_time_in_millis": 1729835030710, - "expiration_time_in_millis": 1729835330494, + "creation_time_in_millis": 1730086220962, + "expiration_time_in_millis": 1730172619979, "scope":{ "access_type":"FULL", "org_id":0, @@ -90,6 +74,48 @@ If the request is successful, the API returns the authentication token assigned "valid_for_username":"tsUserA" } ``` +For more information, see [REST API v2 Authentication](https://developers.thoughtspot.com/docs/api-authv2#trusted-auth-v2). + +#### Using username and password +In this method, user credentials such as the `username` and `password` are required to authenticate to ThoughtSpot and obtain a token. REST clients can use one of the endpoints to obtain a token: + +- Get a token for full access: `POST /api/rest/2.0/auth/token/full` +- Get a token for object access: `POST /api/rest/2.0/auth/token/object` + +##### Request and response example +The following example sends `username` and `password` in the `POST` request body to the `/api/rest/2.0/auth/token/full` API endpoint, to obtain an authentication token with full access to ThoughtSpot: + +``` +curl -X POST \ + --url 'https://{ThoughtSpot-Host}/api/rest/2.0/auth/token/full' \ + -H 'Accept: application/json'\ + -H 'Content-Type: application/json' \ + --data-raw '{ + "username": "tsUserA", + "password": "Guest123!", + "org_id": 1, + "validity_time_in_sec": 86400 +}' +``` +If the request is successful, the API returns the Bearer token assigned to the user specified in the request. + +``` +{ + "token": "{AUTH_TOKEN}", + "creation_time_in_millis": 1730086220962, + "expiration_time_in_millis": 1730172619979, + "scope": { + "access_type": "FULL", + "org_id": 1, + "metadata_id": null + }, + "valid_for_user_id": "59a122dc0-38d7-43e7-bb90-86f724c7b602", + "valid_for_username": "tsUserA" +} +``` +For more information, see [REST API v2 Authentication](https://developers.thoughtspot.com/docs/api-authv2#_basic_authentication). + +#### Using tokens in subsequent API requests Include the authentication token obtained from ThoughtSpot in the `Authorization` header of your subsequent API requests as shown in this example: @@ -108,6 +134,47 @@ curl -X POST \ }' ``` +### Cookie-based authentication +In this method, when a REST client sends an API request to the `api/rest/2.0/auth/session/login` endpoint with the `username` and `password`, upon successful login, a cookie `JSESSIONID` is assigned to the client session. This `JSESSIONID` cookie is then used to authenticate the client in subsequent API calls. + +The cookie-based authentication method is useful when REST clients use the browser for API calls. + +> **Note:** Applications embedding ThoughtSpot can also use this method in conjunction with the Visual Embed SDK and reuse the cookie that is already set. + +#### Request example + +The following example shows the attributes required to log in to ThoughtSpot and get a cookie assigned for the user session: + +``` +curl -X POST \ + --url 'https://{ThoughtSpot-Host}/api/rest/2.0/auth/session/login' \ + -H 'Content-Type: application/json' \ + --data-raw '{ + "username": "tsUserA", + "password": "Guest@123!", + "remember_me": true +}' +``` + +If the login attempt is successful, a `JSESSIONID` cookie is assigned to the client session. This cookie is automatically set in the request header when REST clients make subsequent API calls via a web browser or Postman. +REST clients in a non-browser environment must include the session cookie in the request header as shown here: + +``` +curl -X POST \ + --url 'https://{ThoughtSpot-Host}/api/rest/2.0/metadata/search' \ + -H 'Accept: application/json'\ + -H 'Content-Type: application/json' \ + -H 'Cookie: JSESSIONID=fc3424f9-d3f0-4a24-bd33-400fd826cac7; clientId=70cf1328-af97-40b2-9bd5-1c520e133963' \ + --data-raw '{ + "metadata": [ + { + "type": "LIVEBOARD" + } + ] + }' +``` +For more information, see [Cookie-based authentication](https://developers.thoughtspot.com/docs/api-authv2#loginTS). + # Additional resources Refer to the following resources for additional information on REST APIs and SDK: * [REST API v2.0 Reference](https://developers.thoughtspot.com/docs/rest-apiv2-reference) From 7e3a1984916d968654486b9cf388be3fc92879f6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 29 Oct 2024 04:44:34 +0000 Subject: [PATCH 207/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a74b5ee69..49b46a91c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2989,7 +2989,9 @@ "SERVICE_ACCOUNT", "OAUTH", "IAM", - "EXTOAUTH" + "EXTOAUTH", + "OAUTH_WITH_SERVICE_PRINCIPAL", + "PERSONAL_ACCESS_TOKEN" ] } } From fc13cedc0ea56c97851703339a8e4ffca0aa247b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 29 Oct 2024 07:30:17 +0000 Subject: [PATCH 208/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 49b46a91c..6cca88647 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6450,6 +6450,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "enable_large_metadata_validation": { + "description": "Boolean to indicate if the large metadata validation should be enabled", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -6573,6 +6579,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "enable_large_metadata_validation": { + "description": "Boolean to indicate if the large metadata validation should be enabled", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ From 9819f969e44944f4e606444843996e7322f8ff8c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 30 Oct 2024 04:23:22 +0000 Subject: [PATCH 209/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6cca88647..cbae0a1b3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6058,7 +6058,7 @@ "/api/rest/2.0/groups/{group_identifier}/update": { "post": { "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Groups", "9.0.0.cl" @@ -11167,7 +11167,7 @@ "/api/rest/2.0/dbt/generate-tml": { "post": { "operationId": "dbtGenerateTml", - "description": " Version: 9.9.0.cl or later", + "description": "\n Version: 9.9.0.cl or later\n\nGenerate required table and worksheet and import them.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About generate TML\nModels and Worksheets to be imported can be selected by the user as part of the API.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.9.0.cl" @@ -11278,7 +11278,7 @@ "/api/rest/2.0/dbt/generate-sync-tml": { "post": { "operationId": "dbtGenerateSyncTml", - "description": " Version: 9.9.0.cl or later", + "description": "\n Version: 9.9.0.cl or later\n\nResynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n\n\n\n#### Endpoint URL\n", "tags": [ "DBT", "9.9.0.cl" From e21d628a06ba0d2d177d403c79f981bd56965bac Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 16 Nov 2024 13:28:37 +0000 Subject: [PATCH 210/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cbae0a1b3..3e2515134 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3061,7 +3061,7 @@ "/api/rest/2.0/roles/search": { "post": { "operationId": "searchRoles", - "description": "\nGets Roles configured on a ThoughtSpot instance.\nRequires cluster Administration, Role Administration or\nGroup Administration privileges.
Version: 9.5.0.cl or later\n\nGets a list of Role objects from the ThoughtSpot system.\n\nAvailable if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required.\n\nTo get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.5.0.cl or later\n\nGets a list of Role objects from the ThoughtSpot system.\n\nAvailable if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required.\n\nTo get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -8647,7 +8647,7 @@ "/api/rest/2.0/roles/create": { "post": { "operationId": "createRole", - "description": "\nCreates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later\n\nCreates a Role object in ThoughtSpot.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.5.0.cl or later\n\nCreates a Role object in ThoughtSpot.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -8707,6 +8707,12 @@ "CAN_SETUP_VERSION_CONTROL" ] } + }, + "read_only": { + "description": "
Version: 10.5.0.cl or later
\n\nIndicates whether the role is read only. A readonly role can neither be updated nor deleted.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ @@ -8775,7 +8781,7 @@ "/api/rest/2.0/roles/{role_identifier}/update": { "post": { "operationId": "updateRole", - "description": "\nUpdates a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later\n\nUpdates the properties of a Role object.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.5.0.cl or later\n\nUpdates the properties of a Role object.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -8911,7 +8917,7 @@ "/api/rest/2.0/roles/{role_identifier}/delete": { "post": { "operationId": "deleteRole", - "description": "\nDeletes a Role.\nRequires cluster Administration or Role Administration privileges.
Version: 9.5.0.cl or later\n\nDeletes a Role object from the ThoughtSpot system.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.5.0.cl or later\n\nDeletes a Role object from the ThoughtSpot system.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Roles", "9.5.0.cl" @@ -8924,7 +8930,7 @@ "schema": { "type": "string" }, - "description": "Unique ID or name of the Role." + "description": "Unique ID or name of the Role. ReadOnly roles cannot be deleted." } ], "responses": { From d19c9abf4081823d2a7540f48a3844461f9d21ec Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 19 Nov 2024 03:46:56 +0000 Subject: [PATCH 211/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3e2515134..2ea72aa4b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4031,6 +4031,12 @@ "items": { "$ref": "#/components/schemas/Group_Object" } + }, + "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", + "default": true, + "type": "boolean", + "nullable": true } }, "required": [ From bdcd400553e1f984e19b9ae7502c6773ecc4a54f Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 20 Nov 2024 05:13:49 +0000 Subject: [PATCH 212/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2ea72aa4b..755a3b4d4 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6727,7 +6727,7 @@ "nullable": true }, "export_options": { - "description": "Flags to specify additional options for export.
Version: 10.5.0.cl or later", + "description": "Flags to specify additional options for export.
Version: 10.6.0.cl or later", "allOf": [ { "$ref": "#/components/schemas/Export_Options" @@ -15188,7 +15188,7 @@ "Export_Options": { "type": "object", "properties": { - "export_with_reference_object_id": { + "include_obj_id_ref": { "type": "boolean", "default": false, "description": "Boolean Flag to whether to export user_defined_id of referenced object. This will only be respected when UserDefinedId in TML is enabled.", @@ -15200,7 +15200,7 @@ "description": "Boolean flag to whether to export guid of the object. This will only be respected when UserDefinedId in TML is enabled.", "nullable": true }, - "include_object_id": { + "include_obj_id": { "type": "boolean", "default": false, "description": "Boolean flag to whether to export user_defined_id of the object. This will only be respected when UserDefinedId in TML is enabled.", From a27fe2adcfc57a159ac0a1ec0a4e551b418e6768 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 26 Nov 2024 05:45:47 +0000 Subject: [PATCH 213/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 343 ++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 755a3b4d4..9d447b325 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1724,6 +1724,14 @@ "runtime_param_override": { "description": "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).", "type": "object" + }, + "regional_settings": { + "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", + "allOf": [ + { + "$ref": "#/components/schemas/RegionalSettingsInput" + } + ] } }, "required": [ @@ -1834,6 +1842,14 @@ "runtime_param_override": { "description": "JSON object for setting values of parameters in runtime.", "type": "object" + }, + "regional_settings": { + "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", + "allOf": [ + { + "$ref": "#/components/schemas/RegionalSettingsInput" + } + ] } } } @@ -13224,6 +13240,333 @@ } } }, + "RegionalSettingsInput": { + "type": "object", + "properties": { + "currency_format": { + "type": "string", + "description": "ISO code to be appended with currency values.", + "nullable": true, + "enum": [ + "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" + ] + }, + "user_locale": { + "type": "string", + "description": "Indicates the locale to be used for all formattings.", + "nullable": true, + "enum": [ + "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" + ] + }, + "number_format_locale": { + "type": "string", + "description": "Indicates the locale to be used for number formatting.", + "nullable": true, + "enum": [ + "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" + ] + }, + "date_format_locale": { + "type": "string", + "description": "Indicates the locale to be used for date formatting.", + "nullable": true, + "enum": [ + "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" + ] + } + } + }, "PermissionOfPrincipalsResponse": { "type": "object", "properties": { From 6c6a39a6630a765794270e309039c47ac9fb29e6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 26 Nov 2024 11:07:18 +0000 Subject: [PATCH 214/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9d447b325..964093713 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -11653,7 +11653,7 @@ "/api/rest/2.0/ai/conversation/create": { "post": { "operationId": "createConversation", - "description": "\n Version: 10.4.0.cl or later\n\nCreates a Conversation identifier to start an AI-driven conversation based on a specific data model.\n\nThis API requires the metadata_identifier parameter to define the context for the conversation.\n\nOptionally, tokens can be provided to directly initiate the conversation.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.4.0.cl" @@ -11665,11 +11665,11 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "Data model id to start the conversation on.", + "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation.", "type": "string" }, "tokens": { - "description": "Tokens to start the conversation with.", + "description": "Token string to set the context for the conversation. For example,`[sales],[item type],[state]`.", "type": "string" } }, @@ -11729,7 +11729,7 @@ "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", - "description": "\n Version: 10.4.0.cl or later\n\nSends a follow-up message to an ongoing conversation within the context of a specific data model and the conversation identifier.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.4.0.cl" @@ -11741,11 +11741,11 @@ "type": "object", "properties": { "metadata_identifier": { - "description": "Data model id to converse on.", + "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation.", "type": "string" }, "message": { - "description": "User follow up question.", + "description": "A message string with the follow-up question to continue the conversation.", "type": "string" } }, @@ -11822,7 +11822,7 @@ "/api/rest/2.0/ai/answer/create": { "post": { "operationId": "singleAnswer", - "description": "\n Version: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.4.0.cl" @@ -11834,11 +11834,11 @@ "type": "object", "properties": { "query": { - "description": "User natural language query.", + "description": "A natural language query string to generate the Answer.", "type": "string" }, "metadata_identifier": { - "description": "Data model id to answer the query on.", + "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the query.", "type": "string" } }, @@ -17043,6 +17043,11 @@ "type": "string", "description": "Tokens for the response.", "nullable": true + }, + "display_tokens": { + "type": "string", + "description": "User friendly tokens for the response.", + "nullable": true } } }, From 86f192b30a9e7cb2fc758f93820fdb9ca2624575 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 26 Nov 2024 23:34:19 +0000 Subject: [PATCH 215/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 964093713..e6df8ded1 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -11653,7 +11653,7 @@ "/api/rest/2.0/ai/conversation/create": { "post": { "operationId": "createConversation", - "description": "\n Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.4.0.cl" @@ -11729,7 +11729,7 @@ "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", - "description": "\n Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.4.0.cl" @@ -11822,7 +11822,7 @@ "/api/rest/2.0/ai/answer/create": { "post": { "operationId": "singleAnswer", - "description": "\n Version: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.4.0.cl" From 782ee066eaeacd44cf742c480473714f2f8b8746 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 28 Nov 2024 08:28:40 +0000 Subject: [PATCH 216/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e6df8ded1..dc28390f6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4143,7 +4143,7 @@ "type": "string" }, "password": { - "description": "Password for the user account.", + "description": "Password for the user account. For IAMv2 users, you must set this password if you do not want to trigger an activation email.", "type": "string" }, "email": { @@ -4163,7 +4163,7 @@ ] }, "account_status": { - "description": "Current status of the user account.", + "description": "Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only.", "default": "ACTIVE", "type": "string", "enum": [ @@ -4267,7 +4267,7 @@ "nullable": true }, "trigger_activation_email": { - "description": "Flag to indicate whether activation email should be sent to user.", + "description": "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 \npassword if they do not want to trigger an activation email.", "type": "boolean", "nullable": true } @@ -4372,7 +4372,7 @@ "type": "string" }, "account_status": { - "description": "Current status of the user account.", + "description": "Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only.", "type": "string", "enum": [ "ACTIVE", From 1b423834b8c77711614aee31415b8043de7a408a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 5 Dec 2024 11:11:45 +0000 Subject: [PATCH 217/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index dc28390f6..9c3325aa3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -15075,7 +15075,17 @@ "values": { "type": "array", "items": { - "type": "string" + "anyOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] }, "description": "The values to filter on. To get all records, use TS_WILDCARD_ALL as values." } @@ -15096,7 +15106,17 @@ "values": { "type": "array", "items": { - "type": "string" + "anyOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] }, "description": "The values to filter on. Only single value is supported currently." } From 24e1218375063c378cec0cbe17be48332f17ed3b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 9 Dec 2024 06:04:37 +0000 Subject: [PATCH 218/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9c3325aa3..e0274a970 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7237,7 +7237,8 @@ "LIVEBOARD", "ANSWER", "LOGICAL_TABLE", - "LOGICAL_COLUMN" + "LOGICAL_COLUMN", + "CONNECTION" ] }, "metadata_identifiers": { @@ -15646,7 +15647,8 @@ "enum": [ "LIVEBOARD", "ANSWER", - "LOGICAL_TABLE" + "LOGICAL_TABLE", + "CONNECTION" ], "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true @@ -15670,7 +15672,8 @@ "LIVEBOARD", "ANSWER", "LOGICAL_TABLE", - "LOGICAL_COLUMN" + "LOGICAL_COLUMN", + "CONNECTION" ], "description": " Type of metadata.\n \n\nType 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.", "nullable": true From f47450e1335880dca19df21b86a0ba2daad0df67 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 10 Dec 2024 06:20:33 +0000 Subject: [PATCH 219/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e0274a970..9c4c195e8 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1372,7 +1372,7 @@ "/api/rest/2.0/metadata/tml/async/status": { "post": { "operationId": "fetchAsyncImportTaskStatus", - "description": " Version: 10.4.0.cl or later", + "description": "\n Version: 10.4.0.cl or later\n\nGets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call.\n\nTo fetch the task details, specify the ID of the TML async import task. \n\nRequires 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.\n\n#### Usage guidelines\n\nSee [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines.\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.4.0.cl" @@ -6468,13 +6468,13 @@ "nullable": true }, "skip_diff_check": { - "description": "Boolean Flag to skip TML diff check before processing object TMLs.", + "description": "
Version: 10.6.0.cl or later
\n\nBoolean Flag to skip TML diff check before processing object TMLs.", "default": false, "type": "boolean", "nullable": true }, "enable_large_metadata_validation": { - "description": "Boolean to indicate if the large metadata validation should be enabled", + "description": "
Version: 10.5.0.cl or later
\n\nBoolean to indicate if the large metadata validation should be enabled.", "default": false, "type": "boolean", "nullable": true @@ -6549,7 +6549,7 @@ "/api/rest/2.0/metadata/tml/async/import": { "post": { "operationId": "importMetadataTMLAsync", - "description": " Version: 10.4.0.cl or later", + "description": "\n Version: 10.4.0.cl or later\n\nSchedules 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### Usage guidelines\n\nSee [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.4.0.cl" @@ -6586,7 +6586,7 @@ "nullable": true }, "import_policy": { - "description": "Policy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE]", + "description": "
Version: 10.5.0.cl or later
\n\nPolicy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE]", "default": "PARTIAL_OBJECT", "type": "string", "enum": [ @@ -6597,13 +6597,13 @@ ] }, "skip_diff_check": { - "description": "Boolean Flag to skip TML diff check before processing object TMLs.", + "description": "
Version: 10.6.0.cl or later
\n\nBoolean Flag to skip TML diff check before processing object TMLs.", "default": false, "type": "boolean", "nullable": true }, "enable_large_metadata_validation": { - "description": "Boolean to indicate if the large metadata validation should be enabled", + "description": "
Version: 10.5.0.cl or later
\n\nBoolean to indicate if the large metadata validation should be enabled.", "default": false, "type": "boolean", "nullable": true From dd00e296a3e213d8682132b9ec48750fa3c3d544 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 10 Dec 2024 12:58:08 +0000 Subject: [PATCH 220/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9c4c195e8..accabeefe 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13238,6 +13238,11 @@ "default": false, "description": "Indicates whether to include a page with all applied filters.", "nullable": true + }, + "personalised_view_id": { + "type": "string", + "description": "Indicates personalised view of the Liveboard in case of png", + "nullable": true } } }, From 267fb4222248832e6f303ef56feaacc5b4f92f2d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 11 Dec 2024 07:36:10 +0000 Subject: [PATCH 221/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index accabeefe..ae825dde4 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2947,7 +2947,8 @@ "MODE", "GOOGLE_SHEETS", "FALCON", - "FALCON_ONPREM" + "FALCON_ONPREM", + "CLICKHOUSE" ] } }, @@ -8114,7 +8115,8 @@ "MODE", "GOOGLE_SHEETS", "FALCON", - "FALCON_ONPREM" + "FALCON_ONPREM", + "CLICKHOUSE" ] }, "data_warehouse_config": { @@ -14081,7 +14083,8 @@ "MODE", "GOOGLE_SHEETS", "FALCON", - "FALCON_ONPREM" + "FALCON_ONPREM", + "CLICKHOUSE" ], "description": "Type of data warehouse." }, @@ -15962,7 +15965,8 @@ "MODE", "GOOGLE_SHEETS", "FALCON", - "FALCON_ONPREM" + "FALCON_ONPREM", + "CLICKHOUSE" ], "description": "Type of data warehouse." }, From ccfb2d04aaa35fc4bad2cf5e900764c57d96a50c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 11 Dec 2024 18:01:13 +0000 Subject: [PATCH 222/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ae825dde4..c9ed0bdc8 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4975,6 +4975,10 @@ "password": { "description": "New password for the user to access the account.", "type": "string" + }, + "properties": { + "description": "Properties of the user.", + "type": "string" } }, "required": [ From 539c892d8591e078fab76059a138aa03ed65d9d5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 16 Dec 2024 06:48:27 +0000 Subject: [PATCH 223/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 314 ++++++++++++++++++++++++++++++++ 1 file changed, 314 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c9ed0bdc8..2b12fdf2f 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -61,6 +61,14 @@ ], "description": "Roles for version 10.3.0.cl" }, + { + "name": "10.6.0.cl", + "id": "10.6.0.cl", + "tags": [ + "10.6.0.cl" + ], + "description": "Roles for version 10.6.0.cl" + }, { "name": "9.9.0.cl", "id": "9.9.0.cl", @@ -7134,6 +7142,107 @@ } } }, + "/api/rest/2.0/metadata/worksheets/convert": { + "post": { + "operationId": "convertWorksheetToModel", + "description": "\nConvert worksheets to models
Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **identifiers** \n - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. \n - **Usage:** \n - Used only when `convert_all` is set to `false`. \n - Leave empty or omit when `convert_all` is set to `true`.\n\n2. **exclude_identifiers** \n - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. \n - **Usage:** \n - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted.\n\n3. **convert_all** \n - **Description:** Sets the scope of conversion.\n - **Options:** \n - `true`: Converts all Worksheets in the system, except those specified in `excludeIdentifiers`. \n - `false`: Converts only the Worksheets listed in `identifiers`.\n\n4. **apply_changes** \n - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion.\n - **Options:** \n - `true`: Applies conversion changes directly to ThoughtSpot.\n - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot\n\n---\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the conversion process\n\n2. **Partial Conversion for Testing:** \n Test the conversion process by setting `convert_all` to `false` and specifying a small number of `identifiers`.\n\n3. **Verify Dependencies:** \n Check for dependent objects, such as Tables and Connections, to avoid invalid references.\n\n4. **Review Changes:** \n Use `apply_changes: false` to preview the impact of the conversion before applying changes.\n\n---\n\n## Examples\n\n### Convert Specific Worksheets\n```json\n{\n \"identifiers\": \"guid1,guid2,guid3\",\n \"convertAll\": false,\n \"applyChanges\": true\n}\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "10.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "worksheet_ids": { + "description": "List of Worksheet IDs.", + "type": "array", + "items": { + "type": "string" + } + }, + "exclude_worksheet_ids": { + "description": "List of Worksheet IDs to be excluded.", + "type": "array", + "items": { + "type": "string" + } + }, + "convert_all": { + "description": "Indicates whether all the worksheet needs to be converted to models.", + "default": false, + "type": "boolean", + "nullable": true + }, + "apply_changes": { + "description": "Indicates whether the changes should be applied to database.", + "default": false, + "type": "boolean", + "nullable": true + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Conversion of worksheets to model done successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseWorksheetToModelConversion" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", @@ -15595,6 +15704,211 @@ } } }, + "ResponseWorksheetToModelConversion": { + "type": "object", + "required": [ + "name", + "success_count", + "failure_count", + "incomplete_count", + "post_upgrade_failed_count", + "total_time_in_millis", + "successful_entities", + "failed_entities", + "incomplete_entities", + "post_upgrade_failed_entities" + ], + "properties": { + "name": { + "type": "string" + }, + "success_count": { + "type": "integer", + "format": "int32", + "description": "The number of worksheets successfully converted to models." + }, + "failure_count": { + "type": "integer", + "format": "int32", + "description": "The number of worksheets that failed to convert." + }, + "incomplete_count": { + "type": "integer", + "format": "int32", + "description": "The number of worksheets that were incomplete during the conversion process." + }, + "post_upgrade_failed_count": { + "type": "integer", + "format": "int32", + "description": "The number of worksheets that failed after an upgrade during the conversion process." + }, + "total_time_in_millis": { + "type": "integer", + "format": "int32", + "description": "The total time taken to complete the conversion process in milliseconds." + }, + "successful_entities": { + "$ref": "#/components/schemas/ResponseSuccessfulEntities", + "description": "List of worksheets successfully converted to models." + }, + "failed_entities": { + "$ref": "#/components/schemas/ResponseFailedEntities", + "description": "List of worksheets that failed to convert." + }, + "incomplete_entities": { + "$ref": "#/components/schemas/ResponseIncompleteEntities", + "description": "List of worksheets that were incomplete during the conversion." + }, + "post_upgrade_failed_entities": { + "$ref": "#/components/schemas/ResponsePostUpgradeFailedEntities", + "description": "List of worksheets that failed after an upgrade during the conversion process." + } + }, + "description": "Name of the conversion process, which involves converting worksheets to models." + }, + "ResponseSuccessfulEntities": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseSuccessfulEntity" + } + } + }, + "description": "Wrapper for the successful entities, as they are inside a 'data' field in the response." + }, + "ResponseSuccessfulEntity": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "description": "Name of the worksheet." + } + }, + "description": "Unique ID of the worksheet." + }, + "ResponseFailedEntities": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseFailedEntity" + } + } + }, + "description": "Wrapper for the failed entities, as they are inside a 'data' field in the response." + }, + "ResponseFailedEntity": { + "type": "object", + "required": [ + "id", + "name", + "error" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "description": "Name of the worksheet that failed to convert." + }, + "error": { + "type": "string", + "description": "Error details related to the failed conversion." + } + }, + "description": "Unique ID of the failed worksheet." + }, + "ResponseIncompleteEntities": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseIncompleteEntity" + } + } + }, + "description": "Wrapper for the incomplete entities, as they are inside a 'data' field in the response." + }, + "ResponseIncompleteEntity": { + "type": "object", + "required": [ + "id", + "name", + "error" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "description": "Name of the incomplete worksheet." + }, + "error": { + "type": "string", + "description": "Error details related to the incomplete conversion." + } + }, + "description": "Unique ID of the incomplete worksheet." + }, + "ResponsePostUpgradeFailedEntities": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponsePostUpgradeFailedEntity" + } + } + }, + "description": "Wrapper for the post-upgrade failed entities, as they are inside a 'data' field in the response." + }, + "ResponsePostUpgradeFailedEntity": { + "type": "object", + "required": [ + "id", + "name", + "error" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "description": "Name of the worksheet that failed post-upgrade." + }, + "error": { + "type": "string", + "description": "Error details related to the post-upgrade failure." + } + }, + "description": "Unique ID of the worksheet that failed post-upgrade." + }, "ExportMetadataTypeInput": { "type": "object", "required": [ From d39e8299153a6f1fb59f064df3c6355e06889a7a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 16 Dec 2024 10:17:52 +0000 Subject: [PATCH 224/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2b12fdf2f..13e574cb0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1668,7 +1668,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\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\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG. Liveboard download as XLSX and CSV is not supported.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\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\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1696,12 +1696,10 @@ }, "file_format": { "description": "Export file format.", - "default": "CSV", + "default": "PDF", "type": "string", "enum": [ - "CSV", "PDF", - "XLSX", "PNG" ] }, From 4305b42d264b1287ed88cdae7028bb23f95adc18 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 16 Dec 2024 19:37:36 +0000 Subject: [PATCH 225/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 13e574cb0..217fa298b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7143,7 +7143,7 @@ "/api/rest/2.0/metadata/worksheets/convert": { "post": { "operationId": "convertWorksheetToModel", - "description": "\nConvert worksheets to models
Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **identifiers** \n - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. \n - **Usage:** \n - Used only when `convert_all` is set to `false`. \n - Leave empty or omit when `convert_all` is set to `true`.\n\n2. **exclude_identifiers** \n - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. \n - **Usage:** \n - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted.\n\n3. **convert_all** \n - **Description:** Sets the scope of conversion.\n - **Options:** \n - `true`: Converts all Worksheets in the system, except those specified in `excludeIdentifiers`. \n - `false`: Converts only the Worksheets listed in `identifiers`.\n\n4. **apply_changes** \n - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion.\n - **Options:** \n - `true`: Applies conversion changes directly to ThoughtSpot.\n - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot\n\n---\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the conversion process\n\n2. **Partial Conversion for Testing:** \n Test the conversion process by setting `convert_all` to `false` and specifying a small number of `identifiers`.\n\n3. **Verify Dependencies:** \n Check for dependent objects, such as Tables and Connections, to avoid invalid references.\n\n4. **Review Changes:** \n Use `apply_changes: false` to preview the impact of the conversion before applying changes.\n\n---\n\n## Examples\n\n### Convert Specific Worksheets\n```json\n{\n \"identifiers\": \"guid1,guid2,guid3\",\n \"convertAll\": false,\n \"applyChanges\": true\n}\n\n\n\n\n#### Endpoint URL\n", + "description": "\nConvert worksheets to models
Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **worksheet_ids** \n - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. \n - **Usage:** \n - Used only when `convert_all` is set to `false`. \n - Leave empty or omit when `convert_all` is set to `true`.\n\n2. **exclude_worksheet_ids** \n - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. \n - **Usage:** \n - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted.\n\n3. **convert_all** \n - **Description:** Sets the scope of conversion.\n - **Options:** \n - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. \n - `false`: Converts only the Worksheets listed in `worksheet_ids`.\n\n4. **apply_changes** \n - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion.\n - **Options:** \n - `true`: Applies conversion changes directly to ThoughtSpot.\n - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot\n\n---\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the conversion process\n\n2. **Partial Conversion for Testing:** \n Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`.\n\n3. **Verify Dependencies:** \n Check for dependent objects, such as Tables and Connections, to avoid invalid references.\n\n4. **Review Changes:** \n Use `apply_changes: false` to preview the impact of the conversion before applying changes.\n\n---\n\n## Examples\n\n### Convert Specific Worksheets\n```json\n{\n \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"],\n \"exclude_worksheet_ids\": [],\n \"convert_all\": false,\n \"apply_changes\": true\n}\n```\n\n### Convert All Accessible Worksheets\n```json\n{\n \"worksheet_ids\": [],\n \"exclude_worksheet_ids\": [],\n \"convert_all\": true,\n \"apply_changes\": true\n}\n```\n\n### Exclude Specific Worksheets While Converting All Accessible Worksheets\n```json\n{\n \"worksheet_ids\": [],\n \"exclude_worksheet_ids\": [\"abc\"],\n \"convert_all\": true,\n \"apply_changes\": true\n}\n```\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.6.0.cl" From 501404b31d3855a6e5ab196b5e7c044526c74b89 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 18 Dec 2024 09:55:16 +0000 Subject: [PATCH 226/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 217fa298b..5ec9d0358 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3974,7 +3974,7 @@ "/api/rest/2.0/auth/token/custom": { "post": { "operationId": "getCustomAccessToken", - "description": " Version: 10.4.0.cl or later", + "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "10.4.0.cl" From 0cfeef47854daf4ef9cf7a6001191221468000d1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 18 Dec 2024 14:50:17 +0000 Subject: [PATCH 227/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5ec9d0358..29c1954d9 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7244,7 +7244,7 @@ "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" From f0c63db60e69f692f38d17f4580e52249d014b1d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 19 Dec 2024 12:31:13 +0000 Subject: [PATCH 228/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 29c1954d9..19906c40e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1668,7 +1668,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG. Liveboard download as XLSX and CSV is not supported.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\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\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -1802,7 +1802,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\n\nIn the request body, either provide the GUID or name of the answer, or provide the answer session id.\nBy default, answer is exported from latest generation number of answer session. Optionally, you can also provide the generation number of the session.\nAlso provide the `file_format` for the report. The default file format is CSV. In case of session id, only PNG & CSV file format are allowed.\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\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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).\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -2239,7 +2239,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View).\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View) and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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).\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2359,7 +2359,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nIn 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.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2485,7 +2485,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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). \n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer and the `DATADOWNLOADING` privilege.\n\nThe `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).\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -3505,7 +3505,7 @@ "type": "object", "properties": { "username": { - "description": "Username of the ThoughtSpot user", + "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", "type": "string" }, "object_id": { @@ -3642,7 +3642,7 @@ "type": "object", "properties": { "username": { - "description": "Username of the ThoughtSpot user", + "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", "type": "string" }, "password": { @@ -3986,7 +3986,7 @@ "type": "object", "properties": { "username": { - "description": "Username for which the token needs to be created.", + "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", "type": "string" }, "password": { @@ -9119,7 +9119,7 @@ "/api/rest/2.0/schedules/create": { "post": { "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\nIf [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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* The API endpoint supports exporting Liveboard data to the recipients in CSV or PDF format. If your Liveboard has tables, you can set `file_format` to CSV to send CSV files in the email notification to the recipients. For PDF generation, you can define PDF layout options.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n\n#### Endpoint URL\n", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\nIf [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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* 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.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n#### Endpoint URL\n", "tags": [ "Schedules", "9.4.0.cl" @@ -12909,7 +12909,7 @@ "description": "Unique ID or name of the metadata.", "nullable": true }, - "custom_identifier": { + "obj_identifier": { "type": "string", "description": "CustomObjectId of the metadata.", "nullable": true From e767b3ace0b6f0462f4d57b790c6d0efb3c1f383 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 19 Dec 2024 20:08:19 +0000 Subject: [PATCH 229/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 138 ++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 19906c40e..c8d813041 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7241,6 +7241,85 @@ } } }, + "/api/rest/2.0/metadata/headers/update": { + "post": { + "operationId": "updateMetadataHeader", + "description": "\nUpdate header attributes for a given list of header objects.
Beta Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `ORG_ADMINISTRATION` (Can manage orgs).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **headers_update** \n - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header.\n - **Usage:**\n - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty.\n - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed.\n\n2. **org_identifier** \n - **Description:** GUID (Globally Unique Identifier) or name of the organization. \n - **Usage:**\n - Leaving this field empty assumes that the changes should be applied to the current organization \n - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. .\n - Provide `-1` if changes have to be applied across all the org.\n\n---\n\n## Note\nCurrently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute's value.\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the update process\n\n---\n\n## Examples\n\n### Only `identifier` is given \n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"obj_identifier\": \"\",\n \"type\": \"LOGICAL_COLUMN\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": \"orgGuid\"\n}\n```\n\n### Only `obj_identifier` is given\n```json\n{\n \"headers_update\":\n [\n {\n \"obj_identifier\": \"custom_object_id\",\n \"type\": \"ANSWER\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": \"orgName\"\n}\n```\n\n### Executing update for all org `-1`\n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"type\": \"ANSWER\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": -1\n}\n```\n\n### Optional `type` is not provided\n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": -1\n}\n```\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "10.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "headers_update": { + "description": "List of header objects to update.", + "type": "array", + "items": { + "$ref": "#/components/schemas/HeaderUpdateInput" + } + }, + "org_identifier": { + "description": "Unique ID or name of the organization.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Headers update was successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", @@ -15907,6 +15986,65 @@ }, "description": "Unique ID of the worksheet that failed post-upgrade." }, + "HeaderUpdateInput": { + "type": "object", + "required": [ + "attributes" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID of a specified type to identify the header.", + "nullable": true + }, + "obj_identifier": { + "type": "string", + "description": "Custom object identifier to uniquely identify header.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LIVEBOARD", + "ACTION_OBJECT", + "DATA_SOURCE", + "USER", + "USER_GROUP" + ], + "description": "Optional type of the header object.", + "nullable": true + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HeaderAttributeInput" + }, + "description": "List of attributes to update" + } + }, + "description": "Favorite object options." + }, + "HeaderAttributeInput": { + "type": "object", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "Attribute name to be updated." + }, + "value": { + "type": "string", + "description": "Attribute's new value." + } + }, + "description": "Attribute to update in a header." + }, "ExportMetadataTypeInput": { "type": "object", "required": [ From 95bcc17ebbb476596db069cac5711b497a2e7381 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 6 Jan 2025 17:55:50 +0000 Subject: [PATCH 230/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 11652 +++++++++++++++--------------- 1 file changed, 5826 insertions(+), 5826 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c8d813041..b679616ff 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -104,6 +104,252 @@ ], "tags": [], "paths": { + "/api/rest/2.0/ai/conversation/create": { + "post": { + "operationId": "createConversation", + "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation.", + "type": "string" + }, + "tokens": { + "description": "Token string to set the context for the conversation. For example,`[sales],[item type],[state]`.", + "type": "string" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Conversation" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Conversation" + } + } + } + }, + "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/conversation/{conversation_identifier}/converse": { + "post": { + "operationId": "sendMessage", + "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation.", + "type": "string" + }, + "message": { + "description": "A message string with the follow-up question to continue the conversation.", + "type": "string" + } + }, + "required": [ + "metadata_identifier", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "conversation_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique identifier of the conversation." + } + ], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + } + }, + "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", + "description": "\nBeta Version: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "A natural language query string to generate the Answer.", + "type": "string" + }, + "metadata_identifier": { + "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the query.", + "type": "string" + } + }, + "required": [ + "query", + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseMessage" + } + } + } + }, + "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/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", @@ -230,13 +476,13 @@ } } }, - "/api/rest/2.0/users/search": { + "/api/rest/2.0/auth/token/custom": { "post": { - "operationId": "searchUsers", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable 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.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "getCustomAccessToken", + "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", - "9.0.0.cl" + "Authentication", + "10.4.0.cl" ], "requestBody": { "content": { @@ -244,172 +490,87 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "GUID / name of the user to search", + "username": { + "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", "type": "string" }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", + "password": { + "description": "Password of the user account", + "default": "", "type": "string" }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the User object.", + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", "type": "string" }, - "visibility": { - "description": "Visibility of the user", + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "persist_option": { + "description": "Indicates whether the specified attributes should be persisted or not.", "type": "string", "enum": [ - "SHARABLE", - "NON_SHARABLE" + "APPEND", + "NONE", + "REPLACE", + "RESET" ] }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "group_identifiers": { - "description": "GUID or name of the group to which the user belongs", + "filter_rules": { + "description": "Filter rules.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/FilterRules" } }, - "privileges": { - "description": "Privileges assigned to the user", + "parameter_values": { + "description": "Parameter values.", "type": "array", "items": { - "type": "string", - "enum": [ - "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" - ] + "$ref": "#/components/schemas/ParameterValues" } }, - "account_type": { - "description": "Type of the account", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account.", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING", - "SUSPENDED" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience", - "type": "boolean", - "nullable": true - }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding walkthrough", - "type": "boolean", - "nullable": true - }, - "org_identifiers": { - "description": "IDs or names of the Orgs to which the user belongs", + "objects": { + "description": "Objects on which the filter rules and parameters values should be applied to", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/TokenAccessScopeObject" } }, - "home_liveboard_identifier": { - "description": "Unique ID or name of the user's home Liveboard.", + "email": { + "description": "(just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user.", "type": "string" }, - "favorite_metadata": { - "description": "Metadata objects which are assigned as favorites of the user.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] + "display_name": { + "description": "(just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user.", + "type": "string" }, - "role_identifiers": { - "description": "Filters by the role assigned to the user.", + "groups": { + "description": "(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.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/Group_Object" } }, - "include_favorite_metadata": { - "description": "Indicates if the user's favorite objects should be displayed.", - "default": false, + "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", + "default": true, "type": "boolean", "nullable": true } - } + }, + "required": [ + "username", + "persist_option" + ] } } }, @@ -418,20 +579,17 @@ "parameters": [], "responses": { "200": { - "description": "User search result.", + "description": "ABAC token creation was successful.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } + "$ref": "#/components/schemas/AccessToken" } } } }, "400": { - "description": "Invalid request.", + "description": "Invalid request. This could be due to missing or incorrect parameters.", "content": { "application/json": { "schema": { @@ -441,7 +599,7 @@ } }, "401": { - "description": "Unauthorized access.", + "description": "Unauthorized access. The request could not be authenticated.", "content": { "application/json": { "schema": { @@ -451,7 +609,7 @@ } }, "403": { - "description": "Forbidden access.", + "description": "Forbidden access. The user does not have permission to access this resource.", "content": { "application/json": { "schema": { @@ -461,7 +619,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "An unexpected error occurred on the server.", "content": { "application/json": { "schema": { @@ -470,62 +628,103 @@ } } } - } + }, + "security": [] } }, - "/api/rest/2.0/system": { - "get": { - "operationId": "getSystemInformation", - "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/rest/2.0/auth/token/full": { + "post": { + "operationId": "getFullAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "System", + "Authentication", "9.0.0.cl" ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster information.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemInfo" - }, - "examples": { - "example_1": { - "value": { - "id": "local", - "name": "local", - "release_version": "test", - "time_zone": "America/Los_Angeles", - "locale": "", - "date_format": "MM/dd/yyyy", - "api_version": "v1", - "type": "SW", - "environment": "DEV", - "license": "EAE", - "date_time_format": "MM/dd/yyyy h:mm a", - "time_format": "HH:mm:ss", - "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", - "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", - "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", - "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", - "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", - "accept_language": "undefined", - "all_user_group_member_user_count": 13, - "logical_model_version": 43 - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "type": "string" + }, + "auto_create": { + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "type": "array", + "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": [ + "username" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Bearer auth token creation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } @@ -562,32 +761,99 @@ } } } - } + }, + "security": [] } }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\nIf [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.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "/api/rest/2.0/auth/token/object": { + "post": { + "operationId": "getObjectAccessToken", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "System", + "Authentication", "9.0.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", + "type": "string" + }, + "object_id": { + "description": "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.", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "default": "", + "type": "string" + }, + "secret_key": { + "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", + "default": "", + "type": "string" + }, + "validity_time_in_sec": { + "description": "Token validity duration in seconds", + "default": 300, + "type": "integer", + "format": "int32" + }, + "org_id": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "email": { + "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "display_name": { + "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "type": "string" + }, + "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. ", + "default": false, + "type": "boolean", + "nullable": true + }, + "group_identifiers": { + "description": "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.", + "type": "array", + "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": [ + "username" + ] + } + } + }, + "required": true + }, "parameters": [], "responses": { "200": { - "description": "Cluster config information.", + "description": "Bearer auth token creation successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SystemConfig" - }, - "examples": { - "example_1": { - "value": { - "onboarding_content_url": "" - } - } + "$ref": "#/components/schemas/Token" } } } @@ -632,29 +898,53 @@ } } } - } + }, + "security": [] } }, - "/api/rest/2.0/system/config-overrides": { - "get": { - "operationId": "getSystemOverrideInfo", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "/api/rest/2.0/auth/session/login": { + "post": { + "operationId": "login", + "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "System", - "9.2.0.cl" + "Authentication", + "9.0.0.cl" ], - "parameters": [], - "responses": { - "200": { - "description": "Cluster configuration which can be overridden.", - "content": { - "application/json": { - "schema": { - "type": "object" + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "description": "Username of the ThoughtSpot user", + "type": "string" + }, + "password": { + "description": "Password of the user account", + "type": "string" + }, + "org_identifier": { + "description": "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.", + "type": "string" + }, + "remember_me": { + "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "default": false, + "type": "boolean", + "nullable": true + } } } } }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User login successful." + }, "400": { "description": "Invalid request.", "content": { @@ -698,92 +988,93 @@ } } }, - "/api/rest/2.0/orgs/search": { + "/api/rest/2.0/auth/session/logout": { "post": { - "operationId": "searchOrgs", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "logout", + "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Orgs", + "Authentication", "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifier": { - "description": "ID or name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "visibility": { - "description": "Visibility of the Org", - "type": "string", - "enum": [ - "SHOW", - "HIDDEN" - ] - }, - "status": { - "description": "Status of the Org", - "type": "string", - "enum": [ - "ACTIVE", - "IN_ACTIVE" - ] - }, - "user_identifiers": { - "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", - "type": "array", - "items": { - "type": "string" - } - } + "parameters": [], + "responses": { + "204": { + "description": "User logout successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Organization search result.", + "401": { + "description": "Unauthorized access.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrgResponse" - } - }, - "examples": { - "example_1": { - "value": [ - { - "id": 0, - "name": "Primary", - "status": "ACTIVE", - "description": "Primary Org", - "visibility": "SHOW" - }, - { - "id": 583464508, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - ] + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/auth/token/revoke": { + "post": { + "operationId": "revokeToken", + "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Authentication", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "type": "string" + }, + "token": { + "type": "string" } } } } }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Token successfully revoked." + }, "400": { "description": "Invalid request.", "content": { @@ -827,13 +1118,13 @@ } } }, - "/api/rest/2.0/tags/search": { + "/api/rest/2.0/auth/token/validate": { "post": { - "operationId": "searchTags", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "validateToken", + "description": "\n Version: 9.12.0.cl or later\n\n\nValidates the authentication token specified in the API request.\n\nIf your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Tags", - "9.0.0.cl" + "Authentication", + "9.12.0.cl" ], "requestBody": { "content": { @@ -841,19 +1132,13 @@ "schema": { "type": "object", "properties": { - "tag_identifier": { - "description": "Name or Id of the tag.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Tag object.", - "type": "string" - }, - "color": { - "description": "Color of the tag.", + "token": { "type": "string" } - } + }, + "required": [ + "token" + ] } } }, @@ -862,48 +1147,11 @@ "parameters": [], "responses": { "200": { - "description": "Tags search result.", + "description": "Token validation successful.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "examples": { - "example_1": { - "value": [ - { - "name": "test4", - "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684937524885, - "modification_time_in_millis": 1684937524885, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" - }, - { - "name": "test6", - "id": "65a5c39a-daf5-4cae-975f-44283628494e", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1684988834183, - "modification_time_in_millis": 1684988887888, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" - } - ] - } + "$ref": "#/components/schemas/TokenValidationResponse" } } } @@ -951,13 +1199,13 @@ } } }, - "/api/rest/2.0/groups/search": { + "/api/rest/2.0/connection/create": { "post": { - "operationId": "searchUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createConnection", + "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Groups", - "9.0.0.cl" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -965,139 +1213,69 @@ "schema": { "type": "object", "properties": { - "default_liveboard_identifiers": { - "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } + "name": { + "description": "Unique name for the connection.", + "type": "string" }, "description": { - "description": "Description of the group", + "description": "Description of the connection.", "type": "string" }, - "display_name": { - "description": "Display name of the group", - "type": "string" + "data_warehouse_type": { + "description": "Type of the data warehouse.", + "type": "string", + "enum": [ + "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" + ] }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the Group object.", - "type": "string" + "data_warehouse_config": { + "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", + "type": "object" }, - "group_identifier": { - "description": "GUID or name of the group", - "type": "string" - }, - "org_identifiers": { - "description": "ID or name of the Org to which the group belongs", - "type": "array", - "items": { - "type": "string" - } - }, - "privileges": { - "description": "Privileges assigned to the group.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Filter groups with a list of Roles assigned to a group", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter group details.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptions" - } - ] + "validate": { + "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", + "default": true, + "type": "boolean", + "nullable": true } - } + }, + "required": [ + "name", + "data_warehouse_type", + "data_warehouse_config" + ] } } }, @@ -1106,14 +1284,11 @@ "parameters": [], "responses": { "200": { - "description": "User group search result.", + "description": "Connection to the datasource successfully created.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserGroupResponse" - } + "$ref": "#/components/schemas/CreateConnectionResponse" } } } @@ -1161,13 +1336,14 @@ } } }, - "/api/rest/2.0/metadata/search": { + "/api/rest/2.0/connection/delete": { "post": { - "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteConnection", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ - "Metadata", - "9.0.0.cl" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -1175,145 +1351,14 @@ "schema": { "type": "object", "properties": { - "metadata": { - "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataListItemInput" - } - }, - "permissions": { - "description": "Object permission details to search by.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionInput" - } - }, - "created_by_user_identifiers": { - "description": "GUID or name of user who created the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "dependent_object_version": { - "description": "Version of the dependent table of the metadata objects like Worksheets.", - "default": "V1", - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "exclude_objects": { - "description": "List of metadata objects to exclude from search.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExcludeMetadataListItemInput" - } - }, - "favorite_object_options": { - "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", - "allOf": [ - { - "$ref": "#/components/schemas/FavoriteObjectOptionsInput" - } - ] - }, - "include_auto_created_objects": { - "description": "Includes system-generated metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_dependent_objects": { - "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", - "default": false, - "type": "boolean", - "nullable": true - }, - "dependent_objects_record_size": { - "description": "The maximum number of dependents to include per metadata object.", - "default": 50, - "type": "integer", - "format": "int32" - }, - "include_details": { - "description": "Includes complete details of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_headers": { - "description": "Includes headers of the metadata objects.", - "default": true, - "type": "boolean", - "nullable": true - }, - "include_hidden_objects": { - "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_incomplete_objects": { - "description": "Includes objects with incomplete metadata.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_visualization_headers": { - "description": "Includes visualization headers of the specified Liveboard object.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_worksheet_search_assist_data": { - "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", - "type": "boolean", - "nullable": true - }, - "modified_by_user_identifiers": { - "description": "Includes ID or names of the users who modified the metadata object.", - "type": "array", - "items": { - "type": "string" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "sort_options": { - "description": "Sort options to filter metadata details.", - "allOf": [ - { - "$ref": "#/components/schemas/MetadataSearchSortOptions" - } - ] - }, - "tag_identifiers": { - "description": "Tags to filter metadata objects by", - "type": "array", - "items": { - "type": "string" - } - }, - "include_stats": { - "description": "Indicates whether to include stats of the metadata objects.", - "default": false, - "type": "boolean", - "nullable": true + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" } - } + }, + "required": [ + "connection_identifier" + ] } } }, @@ -1321,18 +1366,8 @@ }, "parameters": [], "responses": { - "200": { - "description": "Metadata objects search result.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataSearchResponse" - } - } - } - } + "204": { + "description": "Connection successfully deleted." }, "400": { "description": "Invalid request.", @@ -1377,79 +1412,28 @@ } } }, - "/api/rest/2.0/metadata/tml/async/status": { + "/api/rest/2.0/connections/{connection_identifier}/delete": { "post": { - "operationId": "fetchAsyncImportTaskStatus", - "description": "\n Version: 10.4.0.cl or later\n\nGets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call.\n\nTo fetch the task details, specify the ID of the TML async import task. \n\nRequires 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.\n\n#### Usage guidelines\n\nSee [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines.\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteConnectionV2", + "description": "\n Version: 10.4.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Metadata", + "Connections", "10.4.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task_ids": { - "description": "List of task IDs to fetch status for.", - "type": "array", - "items": { - "type": "string" - } - }, - "task_status": { - "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", - "type": "array", - "items": { - "type": "string", - "enum": [ - "COMPLETED", - "IN_QUEUE", - "IN_PROGRESS", - "FAILED" - ] - } - }, - "author_identifier": { - "description": "Author GUID or name of async import tasks to filter on.", - "type": "string" - }, - "record_offset": { - "description": "The offset point, starting from where the task status should be included in the response.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of task statuses that should be included in the response starting from offset position.", - "default": 5, - "type": "integer", - "format": "int32" - }, - "include_import_response": { - "description": "Boolean flag to specify whether to include import response in the task status objects.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], "responses": { - "200": { - "description": "Async TML Import Task statuses fetched successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetAsyncImportStatusResponse" - } - } - } + "204": { + "description": "Connection successfully deleted." }, "400": { "description": "Invalid request.", @@ -1494,50 +1478,30 @@ } } }, - "/api/rest/2.0/metadata/liveboard/sql": { + "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { "post": { - "operationId": "fetchLiveboardSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "operationId": "downloadConnectionMetadataChanges", + "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: \n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Metadata", - "9.0.0.cl" + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "Unique ID or name of visualizations.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "Export metadata changes.", "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" - } - } + "application/octet-stream": {} } }, "400": { @@ -1583,41 +1547,32 @@ } } }, - "/api/rest/2.0/metadata/answer/sql": { + "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { "post": { - "operationId": "fetchAnswerSqlQuery", - "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "operationId": "fetchConnectionDiffStatus", + "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Metadata", - "9.0.0.cl" + "Connections", + "9.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID of the connection" + } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "ID or name of an Answer.", - "type": "string" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], "responses": { "200": { - "description": "Fetching SQL query of specified metadata object is successful.", + "description": "true/false", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SqlQueryResponse" + "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" } } } @@ -1665,13 +1620,13 @@ } } }, - "/api/rest/2.0/report/liveboard": { + "/api/rest/2.0/connection/search": { "post": { - "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\n\n#### Endpoint URL\n", + "operationId": "searchConnection", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Reports", - "9.0.0.cl" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -1679,70 +1634,115 @@ "schema": { "type": "object", "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard object.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", + "connections": { + "description": "List of connections and name pattern", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/ConnectionInput" } }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "PDF", - "PNG" - ] + "data_warehouse_types": { + "description": "Array of types of data warehouse defined for the connection.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } }, - "runtime_filter": { - "description": "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).", - "type": "object" + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" }, - "runtime_sort": { - "description": "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).", - "type": "object" + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" }, - "pdf_options": { - "description": "Options for PDF export.", - "allOf": [ - { - "$ref": "#/components/schemas/PdfOptionsInput" - } + "tag_identifiers": { + "description": "Unique ID or name of tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "data_warehouse_object_type": { + "description": "Data warehouse object type.", + "type": "string", + "enum": [ + "DATABASE", + "SCHEMA", + "TABLE", + "COLUMN" ] }, - "png_options": { - "description": "Options for PNG export.", + "sort_options": { + "description": "Sort options.", "allOf": [ { - "$ref": "#/components/schemas/PngOptionsInput" + "$ref": "#/components/schemas/SortOptionInput" } ] }, - "runtime_param_override": { - "description": "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).", + "include_details": { + "description": "Indicates whether to include complete details of the connection objects.", + "type": "boolean", + "nullable": true + }, + "configuration": { + "description": "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.", "type": "object" }, - "regional_settings": { - "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", - "allOf": [ - { - "$ref": "#/components/schemas/RegionalSettingsInput" - } + "authentication_type": { + "description": "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.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "IAM", + "EXTOAUTH", + "OAUTH_WITH_SERVICE_PRINCIPAL", + "PERSONAL_ACCESS_TOKEN" ] } - }, - "required": [ - "metadata_identifier" - ] + } } } }, @@ -1751,9 +1751,16 @@ "parameters": [], "responses": { "200": { - "description": "Export report file of specified metadata object is successful.", + "description": "List of connections to the datasource.", "content": { - "application/octet-stream": {} + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchConnectionResponse" + } + } + } } }, "400": { @@ -1799,13 +1806,14 @@ } } }, - "/api/rest/2.0/report/answer": { + "/api/rest/2.0/connection/update": { "post": { - "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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).\n\n\n\n#### Endpoint URL\n", + "operationId": "updateConnection", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ - "Reports", - "9.0.0.cl" + "Connections", + "9.2.0.cl" ], "requestBody": { "content": { @@ -1813,51 +1821,32 @@ "schema": { "type": "object", "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", + "connection_identifier": { + "description": "Unique ID or name of the connection.", "type": "string" }, - "session_identifier": { - "description": "Unique ID of the answer session.", + "name": { + "description": "Updated name of the connection.", "type": "string" }, - "generation_number": { - "description": "Generation number of the answer session.", - "type": "integer", - "format": "int32" - }, - "file_format": { - "description": "Export file format.", - "default": "CSV", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX", - "PNG" - ] - }, - "runtime_filter": { - "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", - "type": "object" - }, - "runtime_sort": { - "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", - "type": "object" + "description": { + "description": "Updated description of the connection.", + "type": "string" }, - "runtime_param_override": { - "description": "JSON object for setting values of parameters in runtime.", + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", "type": "object" }, - "regional_settings": { - "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", - "allOf": [ - { - "$ref": "#/components/schemas/RegionalSettingsInput" - } - ] + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true } - } + }, + "required": [ + "connection_identifier" + ] } } }, @@ -1865,11 +1854,8 @@ }, "parameters": [], "responses": { - "200": { - "description": "Export report file of specified metadata object is successful.", - "content": { - "application/octet-stream": {} - } + "204": { + "description": "Connection successfully updated." }, "400": { "description": "Invalid request.", @@ -1914,13 +1900,13 @@ } } }, - "/api/rest/2.0/security/principals/fetch-permissions": { + "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { - "operationId": "fetchPermissionsOfPrincipals", - "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object. \n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateConnectionV2", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Security", - "9.0.0.cl" + "Connections", + "10.4.0.cl" ], "requestBody": { "content": { @@ -1928,100 +1914,44 @@ "schema": { "type": "object", "properties": { - "principals": { - "description": "GUID or name of the user or group.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "metadata": { - "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" - } + "name": { + "description": "Updated name of the connection.", + "type": "string" }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" + "description": { + "description": "Updated description of the connection.", + "type": "string" }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" + "data_warehouse_config": { + "description": "Configuration of the data warehouse in JSON.", + "type": "object" }, - "default_metadata_type": { - "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", - "type": "string", - "enum": [ - "ALL", - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] + "validate": { + "description": "Indicates whether to validate the connection details.", + "default": true, + "type": "boolean", + "nullable": true } - }, - "required": [ - "principals" - ] + } } } }, "required": true }, - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection." + } + ], "responses": { - "200": { - "description": "Fetching permissions of principals is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" - }, - "examples": { - "example_1": { - "value": { - "principal_permission_details": [ - { - "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", - "principal_name": "test_user", - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "metadata_permission_info": [ - { - "metadata_type": "LIVEBOARD", - "metadata_permissions": [ - { - "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "metadata_name": "Learn how to use ThoughtSpot", - "metadata_owner": { - "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", - "name": "Learn how to use ThoughtSpot" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "permission": "READ_ONLY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] - } - ] - } - } - } - } - } + "204": { + "description": "Connection successfully updated." }, "400": { "description": "Invalid request.", @@ -2066,13 +1996,13 @@ } } }, - "/api/rest/2.0/security/metadata/fetch-permissions": { + "/api/rest/2.0/customization/custom-actions": { "post": { - "operationId": "fetchPermissionsOnMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\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#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Security", - "9.0.0.cl" + "Custom Action", + "9.6.0.cl" ], "requestBody": { "content": { @@ -2080,45 +2010,44 @@ "schema": { "type": "object", "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "action_details": { + "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input_Create" + } + ] + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", "type": "array", "items": { - "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + "$ref": "#/components/schemas/Associate_Metadata_Input_Create" } }, - "principals": { - "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input_Create" + } + ] + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", "type": "array", "items": { - "$ref": "#/components/schemas/PrincipalsInput" + "type": "string" } - }, - "include_dependent_objects": { - "description": "Indicates whether to fetch permissions of dependent metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": -1, - "type": "integer", - "format": "int32" - }, - "permission_type": { - "description": "
Version: 10.3.0.cl or later
\n\nSpecifies the type of permission. Valid values are:\n EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong.\n DEFINED - If a user or user group received access to metadata objects via object sharing by another user.", - "type": "string" } }, "required": [ - "metadata" + "name", + "action_details" ] } } @@ -2128,65 +2057,27 @@ "parameters": [], "responses": { "200": { - "description": "Fetching permissions of metadata objects is successful.", + "description": "Custom action created successfully.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PermissionOfMetadataResponse" + "$ref": "#/components/schemas/ResponseCustomAction" }, "examples": { "example_1": { "value": { - "metadata_permission_details": [ - { - "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "metadata_name": "testing", - "metadata_type": "LIVEBOARD", - "metadata_owner": { - "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", - "name": "testing" - }, - "metadata_author": { - "id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "name": "tsadmin" - }, - "principal_permission_info": [ - { - "principal_type": "USER_GROUP", - "principal_sub_type": "LOCAL_GROUP", - "principal_permissions": [ - { - "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", - "principal_name": "Administrator", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - }, - { - "principal_type": "USER", - "principal_sub_type": "LOCAL_USER", - "principal_permissions": [ - { - "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", - "principal_name": "su", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - }, - { - "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "principal_name": "tsadmin", - "permission": "MODIFY", - "shared_permission": "NO_ACCESS", - "group_permission": [] - } - ] - } - ] + "action_details": { + "CALLBACK": { + "reference": "customaction" } - ] + }, + "default_action_config": { + "visibility": true + }, + "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", + "metadata_association": [], + "name": "customactionsample", + "user_groups": [] } } } @@ -2236,82 +2127,28 @@ } } }, - "/api/rest/2.0/searchdata": { + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View) and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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).\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Data", - "9.0.0.cl" + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } + "204": { + "description": "Custom action is successfully deleted." }, "400": { "description": "Invalid request.", @@ -2356,13 +2193,13 @@ } } }, - "/api/rest/2.0/metadata/liveboard/data": { + "/api/rest/2.0/customization/custom-actions/search": { "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nIn 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.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Data", - "9.0.0.cl" + "Custom Action", + "9.6.0.cl" ], "requestBody": { "content": { @@ -2370,58 +2207,50 @@ "schema": { "type": "object", "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", + "custom_action_identifier": { + "description": "Name or ID of the custom action.", "type": "string" }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", "type": "string" }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + } ] }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true }, - "runtime_filter": { - "description": "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": "object" + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true }, - "runtime_sort": { - "description": "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).", - "type": "object" + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } }, - "runtime_param_override": { - "description": "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).", - "type": "object" + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] } - }, - "required": [ - "metadata_identifier" - ] + } } } }, @@ -2430,11 +2259,32 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Custom action search is successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } } } } @@ -2482,13 +2332,13 @@ } } }, - "/api/rest/2.0/metadata/answer/data": { + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer and the `DATADOWNLOADING` privilege.\n\nThe `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).\n\n\n\n#### Endpoint URL\n", + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\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#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Data", - "9.0.0.cl" + "Custom Action", + "9.6.0.cl" ], "requestBody": { "content": { @@ -2496,63 +2346,69 @@ "schema": { "type": "object", "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input" + } ] }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input" + } + ] }, - "runtime_filter": { - "description": "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": "object" + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } }, - "runtime_sort": { - "description": "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).", - "type": "object" + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" }, - "runtime_param_override": { - "description": "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).", - "type": "object" + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] } - }, - "required": [ - "metadata_identifier" - ] + } } } }, "required": true }, - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" - } - } - } + "204": { + "description": "Custom action updated successfully." }, "400": { "description": "Invalid request.", @@ -2597,13 +2453,13 @@ } } }, - "/api/rest/2.0/logs/fetch": { + "/api/rest/2.0/dbt/dbt-connection": { "post": { - "operationId": "fetchLogs", - "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required.\n\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs).\n\n\n\n\n#### Endpoint URL\n", + "operationId": "dbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Log", - "9.0.0.cl" + "DBT", + "9.9.0.cl" ], "requestBody": { "content": { @@ -2611,32 +2467,56 @@ "schema": { "type": "object", "properties": { - "log_type": { - "description": "Name of the log type", + "connection_name": { + "description": "Name of the connection.", + "type": "string" + }, + "database_name": { + "description": "Name of the Database.", + "type": "string" + }, + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", "type": "string", "enum": [ - "SECURITY_AUDIT" + "DBT_CLOUD", + "ZIP_FILE" ] }, - "start_epoch_time_in_millis": { - "description": "Start time in EPOCH format", - "type": "number", - "format": "float" + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" }, - "end_epoch_time_in_millis": { - "description": "End time in EPOCH format", - "type": "number", - "format": "float" + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" }, - "get_all_logs": { - "description": "Fetch all the logs. This is available from 9.10.5.cl", - "default": true, - "type": "boolean", - "nullable": true + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", + "type": "string", + "format": "binary" } }, "required": [ - "log_type" + "connection_name", + "database_name" ] } } @@ -2646,14 +2526,11 @@ "parameters": [], "responses": { "200": { - "description": "Log fetched successfully.", + "description": "Succesfully created DBT Connection.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResponse" - } + "type": "object" } } } @@ -2701,13 +2578,13 @@ } } }, - "/api/rest/2.0/vcs/git/config/search": { + "/api/rest/2.0/dbt/generate-sync-tml": { "post": { - "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "dbtGenerateSyncTml", + "description": "\n Version: 9.9.0.cl or later\n\nResynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control", - "9.2.0.cl" + "DBT", + "9.9.0.cl" ], "requestBody": { "content": { @@ -2715,14 +2592,19 @@ "schema": { "type": "object", "properties": { - "org_identifiers": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "array", - "items": { - "type": "string" - } + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", + "type": "string" + }, + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" } - } + }, + "required": [ + "dbt_connection_identifier" + ] } } }, @@ -2731,14 +2613,11 @@ "parameters": [], "responses": { "200": { - "description": "Details of local repository configuration", + "description": "Sync Table and Worksheet TML's are successfully generated.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepoConfigObject" - } + "type": "object" } } } @@ -2786,13 +2665,13 @@ } } }, - "/api/rest/2.0/vcs/git/commits/search": { + "/api/rest/2.0/dbt/generate-tml": { "post": { - "operationId": "searchCommits", - "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "dbtGenerateTml", + "description": "\n Version: 9.9.0.cl or later\n\nGenerate required table and worksheet and import them.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About generate TML\nModels and Worksheets to be imported can be selected by the user as part of the API.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Version Control", - "9.2.0.cl" + "DBT", + "9.9.0.cl" ], "requestBody": { "content": { @@ -2800,37 +2679,42 @@ "schema": { "type": "object", "properties": { - "metadata_identifier": { - "description": "Unique ID or name of the metadata.", + "dbt_connection_identifier": { + "description": "Unique ID of the DBT connection.", "type": "string" }, - "metadata_type": { - "description": "Type of metadata.", + "model_tables": { + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } + }, + "import_worksheets": { + "description": "Mention the worksheet tmls to import", "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "CUSTOM_ACTION" + "ALL", + "NONE", + "SELECTED" ] }, - "branch_name": { - "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", - "type": "string" - }, - "record_offset": { - "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", - "type": "integer", - "format": "int32" + "worksheets": { + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } }, - "record_size": { - "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", - "type": "integer", - "format": "int32" + "file_content": { + "description": "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’", + "type": "string", + "format": "binary" } }, "required": [ - "metadata_identifier" + "dbt_connection_identifier", + "import_worksheets" ] } } @@ -2840,13 +2724,76 @@ "parameters": [], "responses": { "200": { - "description": "Commit history of the metadata object", + "description": "Required Table and Worksheet TML's are successfully generated.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/search": { + "post": { + "operationId": "dbtSearch", + "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Retrieved list of DBT connections successfully.", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/CommitHistoryResponse" + "$ref": "#/components/schemas/DbtSearchResponse" } } } @@ -2895,129 +2842,140 @@ } } }, - "/api/rest/2.0/connection/search": { + "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { "post": { - "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Connections", - "9.2.0.cl" + "DBT", + "9.9.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connections": { - "description": "List of connections and name pattern", - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionInput" - } - }, - "data_warehouse_types": { - "description": "Array of types of data warehouse defined for the connection.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" + "parameters": [ + { + "in": "path", + "name": "dbt_connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID of the DBT Connection." + } + ], + "responses": { + "204": { + "description": "DBT Connection successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/dbt/update-dbt-connection": { + "post": { + "operationId": "updateDbtConnection", + "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "DBT", + "9.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dbt_connection_identifier": { + "description": "Unique ID of the DBT Connection.", + "type": "string" }, - "record_size": { - "description": "The number of records that should be included.", - "default": 10, - "type": "integer", - "format": "int32" + "connection_name": { + "description": "Name of the connection.", + "type": "string" }, - "tag_identifiers": { - "description": "Unique ID or name of tags.", - "type": "array", - "items": { - "type": "string" - } + "database_name": { + "description": "Name of the Database.", + "type": "string" }, - "data_warehouse_object_type": { - "description": "Data warehouse object type.", + "import_type": { + "description": "Mention type of Import", + "default": "DBT_CLOUD", "type": "string", "enum": [ - "DATABASE", - "SCHEMA", - "TABLE", - "COLUMN" + "DBT_CLOUD", + "ZIP_FILE" ] }, - "sort_options": { - "description": "Sort options.", - "allOf": [ - { - "$ref": "#/components/schemas/SortOptionInput" - } - ] + "access_token": { + "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" }, - "include_details": { - "description": "Indicates whether to include complete details of the connection objects.", - "type": "boolean", - "nullable": true + "dbt_url": { + "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", + "type": "string" }, - "configuration": { - "description": "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.", - "type": "object" + "account_id": { + "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" }, - "authentication_type": { - "description": "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.", - "default": "SERVICE_ACCOUNT", + "project_id": { + "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", + "type": "string" + }, + "dbt_env_id": { + "description": "DBT Environment ID\"", + "type": "string" + }, + "project_name": { + "description": "Name of the project", + "type": "string" + }, + "file_content": { + "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "IAM", - "EXTOAUTH", - "OAUTH_WITH_SERVICE_PRINCIPAL", - "PERSONAL_ACCESS_TOKEN" - ] + "format": "binary" } - } + }, + "required": [ + "dbt_connection_identifier" + ] } } }, @@ -3026,14 +2984,11 @@ "parameters": [], "responses": { "200": { - "description": "List of connections to the datasource.", + "description": "DBT Connection successfully updated.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchConnectionResponse" - } + "type": "object" } } } @@ -3081,13 +3036,13 @@ } } }, - "/api/rest/2.0/roles/search": { + "/api/rest/2.0/groups/create": { "post": { - "operationId": "searchRoles", - "description": "\n Version: 9.5.0.cl or later\n\nGets a list of Role objects from the ThoughtSpot system.\n\nAvailable if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required.\n\nTo get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign privileges\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Roles", - "9.5.0.cl" + "Groups", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3095,73 +3050,53 @@ "schema": { "type": "object", "properties": { - "role_identifiers": { - "description": "unique ID or name of the Roles", - "type": "array", - "items": { - "type": "string" - } + "name": { + "description": "Name of the group. The group name must be unique.", + "type": "string" }, - "org_identifiers": { - "description": "Unique Id or name of the Organisation", - "type": "array", - "items": { - "type": "string" - } + "display_name": { + "description": "Display name for the group.", + "type": "string" }, - "group_identifiers": { - "description": "Unique Id or name of the User Group", + "default_liveboard_identifiers": { + "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", "type": "array", "items": { "type": "string" } }, + "description": { + "description": "Description of the group", + "type": "string" + }, "privileges": { - "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "description": "Privileges to assign to the group", "type": "array", "items": { "type": "string", "enum": [ - "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", + "CAN_CREATE_CATALOG", + "DISABLE_PINBOARD_CREATION", "LIVEBOARD_VERIFIER", - "CAN_MANAGE_CUSTOM_CALENDAR", - "CAN_CREATE_OR_EDIT_CONNECTIONS", - "CAN_CONFIGURE_CONNECTIONS", - "CAN_MANAGE_WORKSHEET_VIEWS_TABLES", + "PREVIEW_THOUGHTSPOT_SAGE", "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", @@ -3170,38 +3105,50 @@ ] } }, - "deprecated": { - "description": "Indicates whether the Role is deprecated.", - "type": "boolean", - "deprecated": true, - "nullable": true + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } }, - "external": { - "description": "Indicates whether the Role is external", - "type": "boolean", - "deprecated": true, - "nullable": true + "type": { + "description": "Group type.", + "default": "LOCAL_GROUP", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, - "shared_via_connection": { - "description": "Indicates whether the Role is shared via connection", - "type": "boolean", - "deprecated": true, - "nullable": true + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } }, - "permissions": { - "description": "Permission details of the Role", + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the roles that should be assigned to the group.", "type": "array", "items": { - "type": "string", - "enum": [ - "READ_ONLY", - "MODIFY", - "NO_ACCESS" - ] - }, - "deprecated": true + "type": "string" + } } - } + }, + "required": [ + "name", + "display_name" + ] } } }, @@ -3210,14 +3157,11 @@ "parameters": [], "responses": { "200": { - "description": "Roles search result.", + "description": "User group successfully created.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchRoleResponse" - } + "$ref": "#/components/schemas/UserGroupResponse" } } } @@ -3253,7 +3197,7 @@ } }, "500": { - "description": "Internal error", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -3265,101 +3209,28 @@ } } }, - "/api/rest/2.0/customization/custom-actions/search": { + "/api/rest/2.0/groups/{group_identifier}/delete": { "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Custom Action", - "9.6.0.cl" + "Groups", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", - "type": "string" - }, - "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", - "type": "string" - }, - "default_action_config": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" - } - ] - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], "responses": { - "200": { - "description": "Custom action search is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] - } - } - } - } + "204": { + "description": "User group successfully deleted." }, "400": { "description": "Invalid request.", @@ -3404,12 +3275,12 @@ } } }, - "/api/rest/2.0/auth/session/login": { + "/api/rest/2.0/groups/import": { "post": { - "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "importUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", + "Groups", "9.0.0.cl" ], "requestBody": { @@ -3418,23 +3289,24 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the ThoughtSpot user", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "type": "string" - }, - "org_identifier": { - "description": "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.", - "type": "string" + "groups": { + "description": "Details of groups which are to be imported", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupsImportListInput" + } }, - "remember_me": { - "description": "A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests.", + "delete_unspecified_groups": { + "description": "If set to true, removes groups that are not specified in the API request.", "default": false, "type": "boolean", "nullable": true + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true } } } @@ -3444,8 +3316,15 @@ }, "parameters": [], "responses": { - "204": { - "description": "User login successful." + "200": { + "description": "Import user groups operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUserGroupsResponse" + } + } + } }, "400": { "description": "Invalid request.", @@ -3490,12 +3369,12 @@ } } }, - "/api/rest/2.0/auth/token/object": { + "/api/rest/2.0/groups/search": { "post": { - "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchUserGroups", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", + "Groups", "9.0.0.cl" ], "requestBody": { @@ -3504,68 +3383,139 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", - "type": "string" - }, - "object_id": { - "description": "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.", + "default_liveboard_identifiers": { + "description": "GUID of Liveboards that are assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "Description of the group", "type": "string" }, - "password": { - "description": "Password of the user account", - "default": "", + "display_name": { + "description": "Display name of the group", "type": "string" }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Group object.", "type": "string" }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" + "group_identifier": { + "description": "GUID or name of the group", + "type": "string" }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" + "org_identifiers": { + "description": "ID or name of the Org to which the group belongs", + "type": "array", + "items": { + "type": "string" + } }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" + "privileges": { + "description": "Privileges assigned to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } }, - "display_name": { - "description": "Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", - "type": "string" + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", + "type": "array", + "items": { + "type": "string" + } }, - "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. ", - "default": false, - "type": "boolean", - "nullable": true + "type": { + "description": "Group type.", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] }, - "group_identifiers": { - "description": "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.", + "user_identifiers": { + "description": "GUID or name of the users assigned to the group.", "type": "array", "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).", + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Filter groups with a list of Roles assigned to a group", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter group details.", "allOf": [ { - "$ref": "#/components/schemas/User_Parameter_Options" + "$ref": "#/components/schemas/SortOptions" } ] } - }, - "required": [ - "username" - ] + } } } }, @@ -3574,11 +3524,14 @@ "parameters": [], "responses": { "200": { - "description": "Bearer auth token creation successful.", + "description": "User group search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Token" + "type": "array", + "items": { + "$ref": "#/components/schemas/UserGroupResponse" + } } } } @@ -3623,16 +3576,15 @@ } } } - }, - "security": [] + } } }, - "/api/rest/2.0/auth/token/full": { + "/api/rest/2.0/groups/{group_identifier}/update": { "post": { - "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateUserGroup", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", + "Groups", "9.0.0.cl" ], "requestBody": { @@ -3641,80 +3593,128 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", + "name": { + "description": "Name of the group to modify.", "type": "string" }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_id": { - "description": "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.", - "type": "integer", - "format": "int32" + "default_liveboard_identifiers": { + "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", + "type": "array", + "items": { + "type": "string" + } }, - "email": { - "description": "Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning).", + "description": { + "description": "Description for the group.", "type": "string" }, "display_name": { - "description": "Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT).", + "description": "Display name of the group.", "type": "string" }, - "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. ", - "default": false, - "type": "boolean", - "nullable": true + "privileges": { + "description": "Privileges to assign to the group.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } }, - "group_identifiers": { - "description": "ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT).", + "sub_group_identifiers": { + "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", "type": "array", "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": [ - "username" - ] + "type": { + "description": "Type of the group", + "type": "string", + "enum": [ + "LOCAL_GROUP", + "LDAP_GROUP" + ] + }, + "user_identifiers": { + "description": "GUID or name of the users to assign to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "role_identifiers": { + "description": "Role identifiers of the Roles that should be assigned to the group.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + } } } }, "required": true }, - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "group_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID or name of the group." + } + ], "responses": { - "200": { - "description": "Bearer auth token creation successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Token" - } - } - } + "204": { + "description": "User group successfully updated." }, "400": { "description": "Invalid request.", @@ -3756,22 +3756,69 @@ } } } - }, - "security": [] + } } }, - "/api/rest/2.0/auth/session/logout": { + "/api/rest/2.0/logs/fetch": { "post": { - "operationId": "logout", - "description": "\n Version: 9.0.0.cl or later\n\n\nLogs out a user from their current session.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "fetchLogs", + "description": "\n Version: 9.0.0.cl or later\n\nFetches security audit logs. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required.\n\n\n#### Usage guidelines\n\nBy default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests.\n\nUpon successful execution, the API returns logs with the following information:\n* timestamp of the event\n* event ID\n* event type\n* name and GUID of the user\n* IP address of ThoughtSpot instance\n\nFor more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", + "Log", "9.0.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "log_type": { + "description": "Name of the log type", + "type": "string", + "enum": [ + "SECURITY_AUDIT" + ] + }, + "start_epoch_time_in_millis": { + "description": "Start time in EPOCH format", + "type": "number", + "format": "float" + }, + "end_epoch_time_in_millis": { + "description": "End time in EPOCH format", + "type": "number", + "format": "float" + }, + "get_all_logs": { + "description": "Fetch all the logs. This is available from 9.10.5.cl", + "default": true, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "log_type" + ] + } + } + }, + "required": true + }, "parameters": [], "responses": { - "204": { - "description": "User logout successful." + "200": { + "description": "Log fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogResponse" + } + } + } + } }, "400": { "description": "Invalid request.", @@ -3816,13 +3863,13 @@ } } }, - "/api/rest/2.0/auth/token/revoke": { + "/api/rest/2.0/metadata/worksheets/convert": { "post": { - "operationId": "revokeToken", - "description": "\n Version: 9.0.0.cl or later\n\n\nRevokes the authentication token issued for current user session.\n\nThe token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint.\nthe users will not be able to access ThoughtSpot objects until a new token is obtained.\n\nTo restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "operationId": "convertWorksheetToModel", + "description": "\nConvert worksheets to models
Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **worksheet_ids** \n - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. \n - **Usage:** \n - Used only when `convert_all` is set to `false`. \n - Leave empty or omit when `convert_all` is set to `true`.\n\n2. **exclude_worksheet_ids** \n - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. \n - **Usage:** \n - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted.\n\n3. **convert_all** \n - **Description:** Sets the scope of conversion.\n - **Options:** \n - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. \n - `false`: Converts only the Worksheets listed in `worksheet_ids`.\n\n4. **apply_changes** \n - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion.\n - **Options:** \n - `true`: Applies conversion changes directly to ThoughtSpot.\n - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot\n\n---\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the conversion process\n\n2. **Partial Conversion for Testing:** \n Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`.\n\n3. **Verify Dependencies:** \n Check for dependent objects, such as Tables and Connections, to avoid invalid references.\n\n4. **Review Changes:** \n Use `apply_changes: false` to preview the impact of the conversion before applying changes.\n\n---\n\n## Examples\n\n### Convert Specific Worksheets\n```json\n{\n \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"],\n \"exclude_worksheet_ids\": [],\n \"convert_all\": false,\n \"apply_changes\": true\n}\n```\n\n### Convert All Accessible Worksheets\n```json\n{\n \"worksheet_ids\": [],\n \"exclude_worksheet_ids\": [],\n \"convert_all\": true,\n \"apply_changes\": true\n}\n```\n\n### Exclude Specific Worksheets While Converting All Accessible Worksheets\n```json\n{\n \"worksheet_ids\": [],\n \"exclude_worksheet_ids\": [\"abc\"],\n \"convert_all\": true,\n \"apply_changes\": true\n}\n```\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", - "9.0.0.cl" + "Metadata", + "10.6.0.cl" ], "requestBody": { "content": { @@ -3830,11 +3877,31 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "type": "string" + "worksheet_ids": { + "description": "List of Worksheet IDs.", + "type": "array", + "items": { + "type": "string" + } }, - "token": { - "type": "string" + "exclude_worksheet_ids": { + "description": "List of Worksheet IDs to be excluded.", + "type": "array", + "items": { + "type": "string" + } + }, + "convert_all": { + "description": "Indicates whether all the worksheet needs to be converted to models.", + "default": false, + "type": "boolean", + "nullable": true + }, + "apply_changes": { + "description": "Indicates whether the changes should be applied to database.", + "default": false, + "type": "boolean", + "nullable": true } } } @@ -3844,8 +3911,15 @@ }, "parameters": [], "responses": { - "204": { - "description": "Token successfully revoked." + "200": { + "description": "Conversion of worksheets to model done successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseWorksheetToModelConversion" + } + } + } }, "400": { "description": "Invalid request.", @@ -3890,13 +3964,13 @@ } } }, - "/api/rest/2.0/auth/token/validate": { + "/api/rest/2.0/metadata/copyobject": { "post": { - "operationId": "validateToken", - "description": "\n Version: 9.12.0.cl or later\n\n\nValidates the authentication token specified in the API request.\n\nIf your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token).\n\n\n\n\n#### Endpoint URL\n", + "operationId": "copyObject", + "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", - "9.12.0.cl" + "Metadata", + "10.3.0.cl" ], "requestBody": { "content": { @@ -3904,12 +3978,29 @@ "schema": { "type": "object", "properties": { - "token": { + "description": { + "description": "Description of the new object", + "type": "string" + }, + "identifier": { + "description": "GUID of metadata object to be copied (answer id or liveboard id)", + "type": "string" + }, + "type": { + "description": "Type of metadata object", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER" + ] + }, + "title": { + "description": "Title of the new object", "type": "string" } }, "required": [ - "token" + "identifier" ] } } @@ -3919,11 +4010,11 @@ "parameters": [], "responses": { "200": { - "description": "Token validation successful.", + "description": "Successfully created a copy of the object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TokenValidationResponse" + "$ref": "#/components/schemas/ResponseCopyObject" } } } @@ -3958,6 +4049,16 @@ } } }, + "404": { + "description": "Object not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, "500": { "description": "Unexpected error", "content": { @@ -3971,13 +4072,13 @@ } } }, - "/api/rest/2.0/auth/token/custom": { + "/api/rest/2.0/metadata/delete": { "post": { - "operationId": "getCustomAccessToken", - "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object. \n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Authentication", - "10.4.0.cl" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -3985,86 +4086,22 @@ "schema": { "type": "object", "properties": { - "username": { - "description": "Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object.", - "type": "string" - }, - "password": { - "description": "Password of the user account", - "default": "", - "type": "string" - }, - "secret_key": { - "description": "The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled.", - "default": "", - "type": "string" + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeleteMetadataTypeInput" + } }, - "validity_time_in_sec": { - "description": "Token validity duration in seconds", - "default": 300, - "type": "integer", - "format": "int32" - }, - "org_identifier": { - "description": "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.", - "type": "string" - }, - "persist_option": { - "description": "Indicates whether the specified attributes should be persisted or not.", - "type": "string", - "enum": [ - "APPEND", - "NONE", - "REPLACE", - "RESET" - ] - }, - "filter_rules": { - "description": "Filter rules.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FilterRules" - } - }, - "parameter_values": { - "description": "Parameter values.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterValues" - } - }, - "objects": { - "description": "Objects on which the filter rules and parameters values should be applied to", - "type": "array", - "items": { - "$ref": "#/components/schemas/TokenAccessScopeObject" - } - }, - "email": { - "description": "(just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user.", - "type": "string" - }, - "display_name": { - "description": "(just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user.", - "type": "string" - }, - "groups": { - "description": "(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.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Group_Object" - } - }, - "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", - "default": true, + "delete_disabled_objects": { + "description": "Indicates whether to delete disabled metadata objects.", + "default": false, "type": "boolean", "nullable": true } }, "required": [ - "username", - "persist_option" + "metadata" ] } } @@ -4073,18 +4110,11 @@ }, "parameters": [], "responses": { - "200": { - "description": "ABAC token creation was successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AccessToken" - } - } - } + "204": { + "description": "Metadata objects successfully deleted." }, "400": { - "description": "Invalid request. This could be due to missing or incorrect parameters.", + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -4094,7 +4124,7 @@ } }, "401": { - "description": "Unauthorized access. The request could not be authenticated.", + "description": "Unauthorized access.", "content": { "application/json": { "schema": { @@ -4104,7 +4134,7 @@ } }, "403": { - "description": "Forbidden access. The user does not have permission to access this resource.", + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -4114,7 +4144,7 @@ } }, "500": { - "description": "An unexpected error occurred on the server.", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -4123,16 +4153,15 @@ } } } - }, - "security": [] + } } }, - "/api/rest/2.0/users/create": { + "/api/rest/2.0/metadata/tml/export": { "post": { - "operationId": "createUser", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "exportMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", + "Metadata", "9.0.0.cl" ], "requestBody": { @@ -4141,148 +4170,73 @@ "schema": { "type": "object", "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "password": { - "description": "Password for the user account. For IAMv2 users, you must set this password if you do not want to trigger an activation email.", - "type": "string" - }, - "email": { - "description": "Email of the user account", - "type": "string" - }, - "account_type": { - "description": "Type of the account.", - "default": "LOCAL_USER", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "account_status": { - "description": "Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only.", - "default": "ACTIVE", - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING", - "SUSPENDED" - ] - }, - "org_identifiers": { - "description": "List of Org IDs to which the user belongs.", - "type": "array", - "items": { - "type": "string" - } - }, - "group_identifiers": { - "description": "GUIDs or names of the groups to which the newly created user belongs.", + "metadata": { + "description": "Metadata objects.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/ExportMetadataTypeInput" } }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", - "default": true, - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", - "default": true, + "export_associated": { + "description": "Indicates whether to export associated metadata objects of specified metadata objects.", + "default": false, "type": "boolean", "nullable": true }, - "onboarding_experience_completed": { - "description": "flag to get the on-boarding experience is completed or not.", + "export_fqn": { + "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", "default": false, "type": "boolean", "nullable": true }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "preferred_locale": { - "description": "Locale for the user.", + "edoc_format": { + "description": "TML EDOC content format.\n\n**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)**", + "default": "JSON", "type": "string", "enum": [ - "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" + "JSON", + "YAML" ] }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" + "export_schema_version": { + "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", + "default": "DEFAULT", + "type": "string", + "enum": [ + "DEFAULT", + "V1", + "V2" + ] }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" + "export_dependent": { + "description": "Indicates whether to export table while exporting connection.", + "default": false, + "type": "boolean", + "nullable": true }, - "trigger_welcome_email": { - "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "export_connection_as_dependent": { + "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", + "default": false, "type": "boolean", "nullable": true }, - "trigger_activation_email": { - "description": "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 \npassword if they do not want to trigger an activation email.", + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, "type": "boolean", "nullable": true + }, + "export_options": { + "description": "Flags to specify additional options for export.
Version: 10.6.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/Export_Options" + } + ] } }, "required": [ - "name", - "display_name", - "email" + "metadata" ] } } @@ -4292,14 +4246,17 @@ "parameters": [], "responses": { "200": { - "description": "User successfully created.", + "description": "Export TMLs of specified metadata objects is successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" - } - } - } + "type": "array", + "items": { + "type": "object" + } + } + } + } }, "400": { "description": "Invalid request.", @@ -4344,13 +4301,13 @@ } } }, - "/api/rest/2.0/users/{user_identifier}/update": { + "/api/rest/2.0/metadata/tml/export/batch": { "post": { - "operationId": "updateUser", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "exportMetadataTMLBatched", + "description": "\n Version: 10.1.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", - "9.0.0.cl" + "Metadata", + "10.1.0.cl" ], "requestBody": { "content": { @@ -4358,219 +4315,68 @@ "schema": { "type": "object", "properties": { - "name": { - "description": "Name of the user. The username string must be unique.", - "type": "string" - }, - "display_name": { - "description": "A unique display name string for the user account, usually their first and last name", - "type": "string" - }, - "visibility": { - "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "metadata_type": { + "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", "type": "string", "enum": [ - "SHARABLE", - "NON_SHARABLE" + "USER", + "USER_GROUP", + "ROLE" ] }, - "email": { - "description": "Email of the user account", - "type": "string" + "batch_offset": { + "description": "Indicates the position within the complete set from where the API should begin returning objects.", + "default": 0, + "type": "integer", + "format": "int32" }, - "account_status": { - "description": "Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only.", + "batch_size": { + "description": "Determines the number of objects or items to be retrieved in a single request.", + "default": 20, + "type": "integer", + "format": "int32" + }, + "edoc_format": { + "description": "TML EDOC content format.", + "default": "JSON", "type": "string", "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "LOCKED", - "PENDING", - "SUSPENDED" + "JSON", + "YAML" ] }, - "notify_on_share": { - "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", - "type": "boolean", - "nullable": true - }, - "show_onboarding_experience": { - "description": "The user preference for revisiting the onboarding experience.", + "export_dependent": { + "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", + "default": false, "type": "boolean", "nullable": true }, - "onboarding_experience_completed": { - "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "all_orgs_override": { + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, "type": "boolean", "nullable": true - }, - "account_type": { - "description": "Type of the account.", - "type": "string", - "enum": [ - "LOCAL_USER", - "LDAP_USER", - "SAML_USER", - "OIDC_USER", - "REMOTE_USER" - ] - }, - "group_identifiers": { - "description": "GUIDs or names of the groups.", - "type": "array", - "items": { - "type": "string" - } - }, - "home_liveboard_identifier": { - "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", - "type": "string" - }, - "favorite_metadata": { - "description": "Metadata objects to add to the user's favorites list.", - "type": "array", - "items": { - "$ref": "#/components/schemas/FavoriteMetadataInput" - } - }, - "org_identifiers": { - "description": "IDs of the Orgs.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" } - } + }, + "required": [ + "metadata_type" + ] } } }, "required": true }, - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], + "parameters": [], "responses": { - "204": { - "description": "User successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", + "200": { + "description": "Export TMLs of specified metadata objects is successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } - } - } - } - }, - "/api/rest/2.0/users/{user_identifier}/delete": { - "post": { - "operationId": "deleteUser", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Users", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "user_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID / name of the user" - } - ], - "responses": { - "204": { - "description": "User successfully deleted." }, "400": { "description": "Invalid request.", @@ -4615,12 +4421,12 @@ } } }, - "/api/rest/2.0/users/import": { + "/api/rest/2.0/metadata/answer/data": { "post": { - "operationId": "importUsers", - "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer and the `DATADOWNLOADING` privilege.\n\nThe `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).\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", + "Data", "9.0.0.cl" ], "requestBody": { @@ -4629,32 +4435,46 @@ "schema": { "type": "object", "properties": { - "users": { - "description": "List of users needs to be imported.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ImportUser" - } + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" }, - "default_password": { - "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", - "type": "string" + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", - "default": true, - "type": "boolean", - "nullable": true + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" }, - "delete_unspecified_users": { - "description": "If set to true, removes the users that are not specified in the API request.", - "default": false, - "type": "boolean", - "nullable": true + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" } }, "required": [ - "users" + "metadata_identifier" ] } } @@ -4664,11 +4484,11 @@ "parameters": [], "responses": { "200": { - "description": "Import users operation successful.", + "description": "Fetching data of specified metadata object is successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUsersResponse" + "$ref": "#/components/schemas/AnswerDataResponse" } } } @@ -4716,12 +4536,12 @@ } } }, - "/api/rest/2.0/users/change-password": { + "/api/rest/2.0/metadata/answer/sql": { "post": { - "operationId": "changeUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "fetchAnswerSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for an Answer object.\n\nRequires at least view access to the Answer object.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales\",\n \"metadata_type\":\"ANSWER\",\n \"sql_queries\":[\n {\n \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\",\n \"metadata_name\":\"Total sales -test\",\n \"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\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", + "Metadata", "9.0.0.cl" ], "requestBody": { @@ -4730,23 +4550,13 @@ "schema": { "type": "object", "properties": { - "current_password": { - "description": "Current password of the user.", - "type": "string" - }, - "new_password": { - "description": "New password for the user.", - "type": "string" - }, - "user_identifier": { - "description": "GUID or name of the user.", + "metadata_identifier": { + "description": "ID or name of an Answer.", "type": "string" } }, "required": [ - "current_password", - "new_password", - "user_identifier" + "metadata_identifier" ] } } @@ -4755,8 +4565,15 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password change operation successful." + "200": { + "description": "Fetching SQL query of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SqlQueryResponse" + } + } + } }, "400": { "description": "Invalid request.", @@ -4801,13 +4618,13 @@ } } }, - "/api/rest/2.0/users/reset-password": { + "/api/rest/2.0/metadata/tml/async/status": { "post": { - "operationId": "resetUserPassword", - "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "fetchAsyncImportTaskStatus", + "description": "\n Version: 10.4.0.cl or later\n\nGets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call.\n\nTo fetch the task details, specify the ID of the TML async import task. \n\nRequires 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.\n\n#### Usage guidelines\n\nSee [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines.\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", - "9.0.0.cl" + "Metadata", + "10.4.0.cl" ], "requestBody": { "content": { @@ -4815,19 +4632,49 @@ "schema": { "type": "object", "properties": { - "new_password": { - "description": "New password for the user.", - "type": "string" + "task_ids": { + "description": "List of task IDs to fetch status for.", + "type": "array", + "items": { + "type": "string" + } }, - "user_identifier": { - "description": "GUID or name of the user.", + "task_status": { + "description": "List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED]", + "type": "array", + "items": { + "type": "string", + "enum": [ + "COMPLETED", + "IN_QUEUE", + "IN_PROGRESS", + "FAILED" + ] + } + }, + "author_identifier": { + "description": "Author GUID or name of async import tasks to filter on.", "type": "string" + }, + "record_offset": { + "description": "The offset point, starting from where the task status should be included in the response.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of task statuses that should be included in the response starting from offset position.", + "default": 5, + "type": "integer", + "format": "int32" + }, + "include_import_response": { + "description": "Boolean flag to specify whether to include import response in the task status objects.", + "default": false, + "type": "boolean", + "nullable": true } - }, - "required": [ - "new_password", - "user_identifier" - ] + } } } }, @@ -4835,8 +4682,15 @@ }, "parameters": [], "responses": { - "204": { - "description": "User password reset operation successful." + "200": { + "description": "Async TML Import Task statuses fetched successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAsyncImportStatusResponse" + } + } + } }, "400": { "description": "Invalid request.", @@ -4881,12 +4735,12 @@ } } }, - "/api/rest/2.0/users/force-logout": { + "/api/rest/2.0/metadata/liveboard/data": { "post": { - "operationId": "forceLogoutUsers", - "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nIn 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.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", + "Data", "9.0.0.cl" ], "requestBody": { @@ -4895,14 +4749,58 @@ "schema": { "type": "object", "properties": { - "user_identifiers": { - "description": "GUID or name of the users for force logging out their sessions.", + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", "type": "array", "items": { "type": "string" } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" } - } + }, + "required": [ + "metadata_identifier" + ] } } }, @@ -4910,8 +4808,15 @@ }, "parameters": [], "responses": { - "204": { - "description": "Force logging out of users operation successful." + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } }, "400": { "description": "Invalid request.", @@ -4956,13 +4861,13 @@ } } }, - "/api/rest/2.0/users/activate": { + "/api/rest/2.0/metadata/liveboard/sql": { "post": { - "operationId": "activateUser", - "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "fetchLiveboardSqlQuery", + "description": "\n Version: 9.0.0.cl or later\n\nFetches the underlying SQL query data for a Liveboard object and its visualizations.\n\nRequires at least view access to the Liveboard object.\n\nTo 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.\n\nUpon successful execution, the API returns the SQL queries for the specified object as shown in this example:\n```\n{\n \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\",\n \"metadata_name\": \"Total Sales\",\n \"metadata_type\": \"LIVEBOARD\",\n \"sql_queries\": [\n {\n \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\",\n \"metadata_name\": \"Total quantity purchased, Total sales by region\",\n \"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\\\"\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", - "9.7.0.cl" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -4970,27 +4875,20 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" - }, - "auth_token": { - "description": "Auth token for the user.", - "type": "string" - }, - "password": { - "description": "New password for the user to access the account.", + "metadata_identifier": { + "description": "ID or name of the Liveboard.", "type": "string" }, - "properties": { - "description": "Properties of the user.", - "type": "string" + "visualization_identifiers": { + "description": "Unique ID or name of visualizations.", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "user_identifier", - "auth_token", - "password" + "metadata_identifier" ] } } @@ -5000,11 +4898,11 @@ "parameters": [], "responses": { "200": { - "description": "User activated successfully.", + "description": "Fetching SQL query of specified metadata object is successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/SqlQueryResponse" } } } @@ -5052,13 +4950,13 @@ } } }, - "/api/rest/2.0/users/deactivate": { + "/api/rest/2.0/metadata/tml/import": { "post": { - "operationId": "deactivateUser", - "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `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.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "importMetadataTML", + "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Users", - "9.7.0.cl" + "Metadata", + "9.0.0.cl" ], "requestBody": { "content": { @@ -5066,18 +4964,57 @@ "schema": { "type": "object", "properties": { - "user_identifier": { - "description": "Unique ID or name of the user.", - "type": "string" + "metadata_tmls": { + "description": "Details of TML objects.\n\n**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)**", + "type": "array", + "items": { + "type": "string" + } }, - "base_url": { - "description": "Base url of the cluster.", - "type": "string" + "import_policy": { + "description": "Specifies the import policy for the TML import.", + "default": "PARTIAL", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ] + }, + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", + "default": false, + "type": "boolean", + "nullable": true + }, + "skip_diff_check": { + "description": "
Version: 10.6.0.cl or later
\n\nBoolean Flag to skip TML diff check before processing object TMLs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "enable_large_metadata_validation": { + "description": "
Version: 10.5.0.cl or later
\n\nBoolean to indicate if the large metadata validation should be enabled.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ - "user_identifier", - "base_url" + "metadata_tmls" ] } } @@ -5087,90 +5024,18 @@ "parameters": [], "responses": { "200": { - "description": "User deactivated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseActivationURL" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", + "description": "Import metadata objects using specified TMLs is successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/system/config-update": { - "post": { - "operationId": "updateSystemConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration data in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration": { - "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "array", + "items": { "type": "object" } - }, - "required": [ - "configuration" - ] + } } } }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Configuration successfully updated." - }, "400": { "description": "Invalid request.", "content": { @@ -5214,13 +5079,13 @@ } } }, - "/api/rest/2.0/orgs/create": { + "/api/rest/2.0/metadata/tml/async/import": { "post": { - "operationId": "createOrg", - "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "importMetadataTMLAsync", + "description": "\n Version: 10.4.0.cl or later\n\nSchedules 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### Usage guidelines\n\nSee [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Orgs", - "9.0.0.cl" + "Metadata", + "10.4.0.cl" ], "requestBody": { "content": { @@ -5228,17 +5093,57 @@ "schema": { "type": "object", "properties": { - "name": { - "description": "Name of the Org.", - "type": "string" + "metadata_tmls": { + "description": "Details of TML objects.", + "type": "array", + "items": { + "type": "string" + } }, - "description": { - "description": "Description of the Org.", - "type": "string" + "create_new": { + "description": "If selected, creates TML objects with new GUIDs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "all_orgs_context": { + "description": "If import is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true + }, + "skip_cdw_validation_for_tables": { + "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", + "default": false, + "type": "boolean", + "nullable": true + }, + "import_policy": { + "description": "
Version: 10.5.0.cl or later
\n\nPolicy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE]", + "default": "PARTIAL_OBJECT", + "type": "string", + "enum": [ + "PARTIAL", + "ALL_OR_NONE", + "VALIDATE_ONLY", + "PARTIAL_OBJECT" + ] + }, + "skip_diff_check": { + "description": "
Version: 10.6.0.cl or later
\n\nBoolean Flag to skip TML diff check before processing object TMLs.", + "default": false, + "type": "boolean", + "nullable": true + }, + "enable_large_metadata_validation": { + "description": "
Version: 10.5.0.cl or later
\n\nBoolean to indicate if the large metadata validation should be enabled.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ - "name" + "metadata_tmls" ] } } @@ -5248,22 +5153,11 @@ "parameters": [], "responses": { "200": { - "description": "Organization successfully created.", + "description": "Async TML Import Task submitted successfully.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrgResponse" - }, - "examples": { - "example_1": { - "value": { - "id": 1980035173, - "name": "test_org", - "status": "ACTIVE", - "description": "test_org", - "visibility": "SHOW" - } - } + "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" } } } @@ -5311,12 +5205,12 @@ } } }, - "/api/rest/2.0/orgs/{org_identifier}/update": { + "/api/rest/2.0/metadata/search": { "post": { - "operationId": "updateOrg", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Orgs", + "Metadata", "9.0.0.cl" ], "requestBody": { @@ -5325,37 +5219,143 @@ "schema": { "type": "object", "properties": { - "name": { - "description": "Name of the Org", - "type": "string" - }, - "description": { - "description": "Description of the Org", - "type": "string" - }, - "user_identifiers": { - "description": "Add Users to an Org", + "metadata": { + "description": "Metadata objects such as Liveboards, Answers, and Worksheets.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/MetadataListItemInput" } }, - "group_identifiers": { - "description": "Add Default Groups to an Org", + "permissions": { + "description": "Object permission details to search by.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionInput" + } + }, + "created_by_user_identifiers": { + "description": "GUID or name of user who created the metadata object.", "type": "array", "items": { "type": "string" } }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", + "dependent_object_version": { + "description": "Version of the dependent table of the metadata objects like Worksheets.", + "default": "V1", "type": "string", "enum": [ - "ADD", - "REMOVE", - "REPLACE" + "V1", + "V2" + ] + }, + "exclude_objects": { + "description": "List of metadata objects to exclude from search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExcludeMetadataListItemInput" + } + }, + "favorite_object_options": { + "description": "Options to sort the API response by objects set as favorites\nfor the logged-in user or the users specified in the API request.", + "allOf": [ + { + "$ref": "#/components/schemas/FavoriteObjectOptionsInput" + } + ] + }, + "include_auto_created_objects": { + "description": "Includes system-generated metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_dependent_objects": { + "description": "Includes dependents of the metadata object specified in the API request.\nFor example, a worksheet can consist of dependent objects such as Liveboards or Answers.", + "default": false, + "type": "boolean", + "nullable": true + }, + "dependent_objects_record_size": { + "description": "The maximum number of dependents to include per metadata object.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "include_details": { + "description": "Includes complete details of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_headers": { + "description": "Includes headers of the metadata objects.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_hidden_objects": { + "description": "Includes details of the hidden objects, such as a column in a worksheet or a table.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_incomplete_objects": { + "description": "Includes objects with incomplete metadata.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_visualization_headers": { + "description": "Includes visualization headers of the specified Liveboard object.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_worksheet_search_assist_data": { + "description": "If search assistance lessons are configured on a worksheet,\nthe API returns the search assist data for Worksheet objects.", + "type": "boolean", + "nullable": true + }, + "modified_by_user_identifiers": { + "description": "Includes ID or names of the users who modified the metadata object.", + "type": "array", + "items": { + "type": "string" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options to filter metadata details.", + "allOf": [ + { + "$ref": "#/components/schemas/MetadataSearchSortOptions" + } ] + }, + "tag_identifiers": { + "description": "Tags to filter metadata objects by", + "type": "array", + "items": { + "type": "string" + } + }, + "include_stats": { + "description": "Indicates whether to include stats of the metadata objects.", + "default": false, + "type": "boolean", + "nullable": true } } } @@ -5363,20 +5363,20 @@ }, "required": true }, - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } - ], + "parameters": [], "responses": { - "204": { - "description": "Organization successfully updated." + "200": { + "description": "Metadata objects search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataSearchResponse" + } + } + } + } }, "400": { "description": "Invalid request.", @@ -5421,28 +5421,41 @@ } } }, - "/api/rest/2.0/orgs/{org_identifier}/delete": { + "/api/rest/2.0/metadata/headers/update": { "post": { - "operationId": "deleteOrg", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\nIf [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.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateMetadataHeader", + "description": "\nUpdate header attributes for a given list of header objects.
Beta Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `ORG_ADMINISTRATION` (Can manage orgs).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **headers_update** \n - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header.\n - **Usage:**\n - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty.\n - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed.\n\n2. **org_identifier** \n - **Description:** GUID (Globally Unique Identifier) or name of the organization. \n - **Usage:**\n - Leaving this field empty assumes that the changes should be applied to the current organization \n - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. .\n - Provide `-1` if changes have to be applied across all the org.\n\n---\n\n## Note\nCurrently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute's value.\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the update process\n\n---\n\n## Examples\n\n### Only `identifier` is given \n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"obj_identifier\": \"\",\n \"type\": \"LOGICAL_COLUMN\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": \"orgGuid\"\n}\n```\n\n### Only `obj_identifier` is given\n```json\n{\n \"headers_update\":\n [\n {\n \"obj_identifier\": \"custom_object_id\",\n \"type\": \"ANSWER\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": \"orgName\"\n}\n```\n\n### Executing update for all org `-1`\n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"type\": \"ANSWER\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": -1\n}\n```\n\n### Optional `type` is not provided\n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": -1\n}\n```\n\n\n\n#### Endpoint URL\n", "tags": [ - "Orgs", - "9.0.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "org_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "ID or name of the Org" - } + "Metadata", + "10.6.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "headers_update": { + "description": "List of header objects to update.", + "type": "array", + "items": { + "$ref": "#/components/schemas/HeaderUpdateInput" + } + }, + "org_identifier": { + "description": "Unique ID or name of the organization.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], "responses": { "204": { - "description": "Organization successfully deleted." + "description": "Headers update was successful." }, "400": { "description": "Invalid request.", @@ -5487,12 +5500,12 @@ } } }, - "/api/rest/2.0/tags/create": { + "/api/rest/2.0/orgs/create": { "post": { - "operationId": "createTag", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createOrg", + "description": "\n Version: 9.0.0.cl or later\n\nCreates an Org object.\n\nTo use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Tags", + "Orgs", "9.0.0.cl" ], "requestBody": { @@ -5502,11 +5515,11 @@ "type": "object", "properties": { "name": { - "description": "Name of the tag.", + "description": "Name of the Org.", "type": "string" }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "description": { + "description": "Description of the Org.", "type": "string" } }, @@ -5521,27 +5534,20 @@ "parameters": [], "responses": { "200": { - "description": "Tag successfully created.", + "description": "Organization successfully created.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/OrgResponse" }, "examples": { "example_1": { "value": { - "name": "test5", - "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", - "color": "#342323", - "deleted": false, - "hidden": false, - "external": false, - "deprecated": false, - "creation_time_in_millis": 1685441468684, - "modification_time_in_millis": 1685441468684, - "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", - "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + "id": 1980035173, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" } } } @@ -5591,48 +5597,28 @@ } } }, - "/api/rest/2.0/tags/{tag_identifier}/update": { + "/api/rest/2.0/orgs/{org_identifier}/delete": { "post": { - "operationId": "updateTag", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteOrg", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes an Org object from the ThoughtSpot system.\n\nRequires cluster administration (**Can administer Org**) privilege.\nIf [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.\n\nWhen 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Tags", + "Orgs", "9.0.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the tag.", - "type": "string" - }, - "color": { - "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", - "type": "string" - } - } - } - } - }, - "required": true - }, "parameters": [ { "in": "path", - "name": "tag_identifier", + "name": "org_identifier", "required": true, "schema": { "type": "string" }, - "description": "Name or Id of the tag." + "description": "ID or name of the Org" } ], "responses": { "204": { - "description": "Tag successfully updated." + "description": "Organization successfully deleted." }, "400": { "description": "Invalid request.", @@ -5677,28 +5663,91 @@ } } }, - "/api/rest/2.0/tags/{tag_identifier}/delete": { + "/api/rest/2.0/orgs/search": { "post": { - "operationId": "deleteTag", - "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchOrgs", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Tags", + "Orgs", "9.0.0.cl" ], - "parameters": [ - { - "in": "path", - "name": "tag_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Tag identifier Tag name or Tag id." - } - ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "ID or name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "visibility": { + "description": "Visibility of the Org", + "type": "string", + "enum": [ + "SHOW", + "HIDDEN" + ] + }, + "status": { + "description": "Status of the Org", + "type": "string", + "enum": [ + "ACTIVE", + "IN_ACTIVE" + ] + }, + "user_identifiers": { + "description": "GUIDs or names of the users for which you want to retrieve the Orgs data", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], "responses": { - "204": { - "description": "Tag successfully deleted." + "200": { + "description": "Organization search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgResponse" + } + }, + "examples": { + "example_1": { + "value": [ + { + "id": 0, + "name": "Primary", + "status": "ACTIVE", + "description": "Primary Org", + "visibility": "SHOW" + }, + { + "id": 583464508, + "name": "test_org", + "status": "ACTIVE", + "description": "test_org", + "visibility": "SHOW" + } + ] + } + } + } + } }, "400": { "description": "Invalid request.", @@ -5743,12 +5792,12 @@ } } }, - "/api/rest/2.0/tags/assign": { + "/api/rest/2.0/orgs/{org_identifier}/update": { "post": { - "operationId": "assignTag", - "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateOrg", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates an Org object. You can modify Org properties such as name, description, and user associations.\n\nRequires cluster administration (**Can administer Org**) privileges.\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Tags", + "Orgs", "9.0.0.cl" ], "requestBody": { @@ -5757,34 +5806,58 @@ "schema": { "type": "object", "properties": { - "metadata": { - "description": "Metadata objects.", + "name": { + "description": "Name of the Org", + "type": "string" + }, + "description": { + "description": "Description of the Org", + "type": "string" + }, + "user_identifiers": { + "description": "Add Users to an Org", "type": "array", "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" + "type": "string" } }, - "tag_identifiers": { - "description": "GUID or name of the tag.", + "group_identifiers": { + "description": "Add Default Groups to an Org", "type": "array", "items": { "type": "string" } + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } - }, - "required": [ - "metadata", - "tag_identifiers" - ] + } } } }, "required": true }, - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "org_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "ID or name of the Org" + } + ], "responses": { "204": { - "description": "Tags successfully assigned." + "description": "Organization successfully updated." }, "400": { "description": "Invalid request.", @@ -5829,12 +5902,12 @@ } } }, - "/api/rest/2.0/tags/unassign": { + "/api/rest/2.0/report/answer": { "post": { - "operationId": "unassignTag", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "exportAnswerReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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).\n\n\n\n#### Endpoint URL\n", "tags": [ - "Tags", + "Reports", "9.0.0.cl" ], "requestBody": { @@ -5843,25 +5916,51 @@ "schema": { "type": "object", "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/TagMetadataTypeInput" - } + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" }, - "tag_identifiers": { - "description": "GUID or name of the tag.", - "type": "array", - "items": { - "type": "string" - } + "session_identifier": { + "description": "Unique ID of the answer session.", + "type": "string" + }, + "generation_number": { + "description": "Generation number of the answer session.", + "type": "integer", + "format": "int32" + }, + "file_format": { + "description": "Export file format.", + "default": "CSV", + "type": "string", + "enum": [ + "CSV", + "PDF", + "XLSX", + "PNG" + ] + }, + "runtime_filter": { + "description": "JSON string representing runtime filter.\n{ col1:region, op1: EQ, val1: northeast }", + "type": "object" + }, + "runtime_sort": { + "description": "JSON string representing runtime sort.\n{ sortCol1: region, asc1 :true, sortCol2 : date }", + "type": "object" + }, + "runtime_param_override": { + "description": "JSON object for setting values of parameters in runtime.", + "type": "object" + }, + "regional_settings": { + "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", + "allOf": [ + { + "$ref": "#/components/schemas/RegionalSettingsInput" + } + ] } - }, - "required": [ - "metadata", - "tag_identifiers" - ] + } } } }, @@ -5869,8 +5968,11 @@ }, "parameters": [], "responses": { - "204": { - "description": "Tags successfully unassigned." + "200": { + "description": "Export report file of specified metadata object is successful.", + "content": { + "application/octet-stream": {} + } }, "400": { "description": "Invalid request.", @@ -5915,12 +6017,12 @@ } } }, - "/api/rest/2.0/groups/create": { + "/api/rest/2.0/report/liveboard": { "post": { - "operationId": "createUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nCreates a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### About groups\nGroups 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).\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Assign privileges\n* Add users\n* Define sharing visibility\n* Add sub-groups\n* Assign a default Liveboard\n\n\n\n\n#### Endpoint URL\n", + "operationId": "exportLiveboardReport", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\n\n#### Endpoint URL\n", "tags": [ - "Groups", + "Reports", "9.0.0.cl" ], "requestBody": { @@ -5929,104 +6031,69 @@ "schema": { "type": "object", "properties": { - "name": { - "description": "Name of the group. The group name must be unique.", - "type": "string" - }, - "display_name": { - "description": "Display name for the group.", + "metadata_identifier": { + "description": "GUID or name of the Liveboard object.", "type": "string" }, - "default_liveboard_identifiers": { - "description": "GUID of the Liveboards to assign as default Liveboards to the users in the group.", + "visualization_identifiers": { + "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", "type": "array", "items": { "type": "string" } }, - "description": { - "description": "Description of the group", + "transient_content": { + "description": "Transient content of the Liveboard.", "type": "string" }, - "privileges": { - "description": "Privileges to assign to the group", - "type": "array", - "items": { - "type": "string", - "enum": [ - "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" - ] - } - }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Group type.", - "default": "LOCAL_GROUP", + "file_format": { + "description": "Export file format.", + "default": "PDF", "type": "string", "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" + "PDF", + "PNG" ] }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } + "runtime_filter": { + "description": "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).", + "type": "object" }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and groups,\nset the visibility to SHAREABLE.", - "default": "SHARABLE", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "pdf_options": { + "description": "Options for PDF export.", + "allOf": [ + { + "$ref": "#/components/schemas/PdfOptionsInput" + } ] }, - "role_identifiers": { - "description": "Role identifiers of the roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } + "png_options": { + "description": "Options for PNG export.", + "allOf": [ + { + "$ref": "#/components/schemas/PngOptionsInput" + } + ] + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + }, + "regional_settings": { + "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", + "allOf": [ + { + "$ref": "#/components/schemas/RegionalSettingsInput" + } + ] } }, "required": [ - "name", - "display_name" + "metadata_identifier" ] } } @@ -6036,13 +6103,9 @@ "parameters": [], "responses": { "200": { - "description": "User group successfully created.", + "description": "Export report file of specified metadata object is successful.", "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserGroupResponse" - } - } + "application/octet-stream": {} } }, "400": { @@ -6088,13 +6151,13 @@ } } }, - "/api/rest/2.0/groups/{group_identifier}/update": { + "/api/rest/2.0/roles/create": { "post": { - "operationId": "updateUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a group object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations in a single API request:\n\n* Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges)\n* Add or remove users\n* Change sharing visibility settings\n* Add or remove sub-groups\n* Assign a default Liveboard or update the existing settings\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createRole", + "description": "\n Version: 9.5.0.cl or later\n\nCreates a Role object in ThoughtSpot.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Groups", - "9.0.0.cl" + "Roles", + "9.5.0.cl" ], "requestBody": { "content": { @@ -6103,52 +6166,47 @@ "type": "object", "properties": { "name": { - "description": "Name of the group to modify.", + "description": "Unique name of the Role.", "type": "string" }, - "default_liveboard_identifiers": { - "description": "ID of the Liveboards to be assigned as default Liveboards to the users in the group.", - "type": "array", - "items": { - "type": "string" - } - }, "description": { - "description": "Description for the group.", - "type": "string" - }, - "display_name": { - "description": "Display name of the group.", + "description": "Description of the Role.", "type": "string" }, "privileges": { - "description": "Privileges to assign to the group.", + "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", "type": "array", "items": { "type": "string", "enum": [ - "ADMINISTRATION", - "AUTHORING", "USERDATAUPLOADING", "DATADOWNLOADING", - "USERMANAGEMENT", "DATAMANAGEMENT", "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", - "RANALYSIS", + "DISABLE_PINBOARD_CREATION", "DEVELOPER", + "APPLICATION_ADMINISTRATION", "USER_ADMINISTRATION", "GROUP_ADMINISTRATION", + "SYSTEM_INFO_ADMINISTRATION", "SYNCMANAGEMENT", - "CAN_CREATE_CATALOG", - "DISABLE_PINBOARD_CREATION", + "ORG_ADMINISTRATION", + "ROLE_ADMINISTRATION", + "AUTHENTICATION_ADMINISTRATION", + "BILLING_INFO_ADMINISTRATION", + "CONTROL_TRUSTED_AUTH", + "TAGMANAGEMENT", "LIVEBOARD_VERIFIER", - "PREVIEW_THOUGHTSPOT_SAGE", + "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", @@ -6157,76 +6215,35 @@ ] } }, - "sub_group_identifiers": { - "description": "GUID or name of the sub groups. A subgroup is a group assigned to a parent group.", - "type": "array", - "items": { - "type": "string" - } - }, - "type": { - "description": "Type of the group", - "type": "string", - "enum": [ - "LOCAL_GROUP", - "LDAP_GROUP" - ] - }, - "user_identifiers": { - "description": "GUID or name of the users to assign to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "visibility": { - "description": "Visibility of the group. To make a group visible to other users and\ngroups, set the visibility to SHAREABLE.", - "type": "string", - "enum": [ - "SHARABLE", - "NON_SHARABLE" - ] - }, - "role_identifiers": { - "description": "Role identifiers of the Roles that should be assigned to the group.", - "type": "array", - "items": { - "type": "string" - } - }, - "operation": { - "description": "Type of update operation. Default operation type is REPLACE", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] + "read_only": { + "description": "
Version: 10.5.0.cl or later
\n\nIndicates whether the role is read only. A readonly role can neither be updated nor deleted.", + "default": false, + "type": "boolean", + "nullable": true } - } + }, + "required": [ + "name" + ] } } }, "required": true }, - "parameters": [ - { - "in": "path", - "name": "group_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID or name of the group." - } - ], + "parameters": [], "responses": { - "204": { - "description": "User group successfully updated." + "200": { + "description": "Role successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleResponse" + } + } + } }, "400": { - "description": "Invalid request.", + "description": "Invalid parameters.", "content": { "application/json": { "schema": { @@ -6256,7 +6273,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6268,28 +6285,28 @@ } } }, - "/api/rest/2.0/groups/{group_identifier}/delete": { + "/api/rest/2.0/roles/{role_identifier}/delete": { "post": { - "operationId": "deleteUserGroup", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified group object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteRole", + "description": "\n Version: 9.5.0.cl or later\n\nDeletes a Role object from the ThoughtSpot system.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Groups", - "9.0.0.cl" + "Roles", + "9.5.0.cl" ], "parameters": [ { "in": "path", - "name": "group_identifier", + "name": "role_identifier", "required": true, "schema": { "type": "string" }, - "description": "GUID or name of the group." + "description": "Unique ID or name of the Role. ReadOnly roles cannot be deleted." } ], "responses": { "204": { - "description": "User group successfully deleted." + "description": "Role successfully deleted." }, "400": { "description": "Invalid request.", @@ -6322,7 +6339,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6334,13 +6351,13 @@ } } }, - "/api/rest/2.0/groups/import": { + "/api/rest/2.0/roles/search": { "post": { - "operationId": "importUserGroups", - "description": "\n Version: 9.0.0.cl or later\n\nImports group objects from external databases into ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\nDuring the import operation:\n\n* If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot.\n* If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchRoles", + "description": "\n Version: 9.5.0.cl or later\n\nGets a list of Role objects from the ThoughtSpot system.\n\nAvailable if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required.\n\nTo get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Groups", - "9.0.0.cl" + "Roles", + "9.5.0.cl" ], "requestBody": { "content": { @@ -6348,24 +6365,111 @@ "schema": { "type": "object", "properties": { - "groups": { - "description": "Details of groups which are to be imported", + "role_identifiers": { + "description": "unique ID or name of the Roles", "type": "array", "items": { - "$ref": "#/components/schemas/GroupsImportListInput" + "type": "string" } }, - "delete_unspecified_groups": { - "description": "If set to true, removes groups that are not specified in the API request.", - "default": false, + "org_identifiers": { + "description": "Unique Id or name of the Organisation", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "Unique Id or name of the User Group", + "type": "array", + "items": { + "type": "string" + } + }, + "privileges": { + "description": "Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "deprecated": { + "description": "Indicates whether the Role is deprecated.", "type": "boolean", + "deprecated": true, "nullable": true }, - "dry_run": { - "description": "If true, the API performs a test operation and returns user IDs whose\ndata will be edited after the import.", - "default": true, + "external": { + "description": "Indicates whether the Role is external", + "type": "boolean", + "deprecated": true, + "nullable": true + }, + "shared_via_connection": { + "description": "Indicates whether the Role is shared via connection", "type": "boolean", + "deprecated": true, "nullable": true + }, + "permissions": { + "description": "Permission details of the Role", + "type": "array", + "items": { + "type": "string", + "enum": [ + "READ_ONLY", + "MODIFY", + "NO_ACCESS" + ] + }, + "deprecated": true } } } @@ -6376,11 +6480,14 @@ "parameters": [], "responses": { "200": { - "description": "Import user groups operation successful.", + "description": "Roles search result.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ImportUserGroupsResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchRoleResponse" + } } } } @@ -6416,7 +6523,7 @@ } }, "500": { - "description": "Unexpected error", + "description": "Internal error", "content": { "application/json": { "schema": { @@ -6428,13 +6535,13 @@ } } }, - "/api/rest/2.0/metadata/tml/import": { + "/api/rest/2.0/roles/{role_identifier}/update": { "post": { - "operationId": "importMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nImports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### Usage guidelines\n\n* 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.\n* Include the `fqn` property to distinguish objects that have the same name.\n 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.\n Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name.\n We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation.\n* You can upload multiple TML files at a time.\n 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.\n 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml).\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateRole", + "description": "\n Version: 9.5.0.cl or later\n\nUpdates the properties of a Role object.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Metadata", - "9.0.0.cl" + "Roles", + "9.5.0.cl" ], "requestBody": { "content": { @@ -6442,74 +6549,81 @@ "schema": { "type": "object", "properties": { - "metadata_tmls": { - "description": "Details of TML objects.\n\n**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)**", + "name": { + "description": "Name of the Role.", + "type": "string" + }, + "description": { + "description": "Description of the Role.", + "type": "string" + }, + "privileges": { + "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", "type": "array", "items": { - "type": "string" + "type": "string", + "enum": [ + "USERDATAUPLOADING", + "DATADOWNLOADING", + "DATAMANAGEMENT", + "SHAREWITHALL", + "JOBSCHEDULING", + "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", + "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" + ] } - }, - "import_policy": { - "description": "Specifies the import policy for the TML import.", - "default": "PARTIAL", - "type": "string", - "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" - ] - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - }, - "skip_cdw_validation_for_tables": { - "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", - "default": false, - "type": "boolean", - "nullable": true - }, - "skip_diff_check": { - "description": "
Version: 10.6.0.cl or later
\n\nBoolean Flag to skip TML diff check before processing object TMLs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "enable_large_metadata_validation": { - "description": "
Version: 10.5.0.cl or later
\n\nBoolean to indicate if the large metadata validation should be enabled.", - "default": false, - "type": "boolean", - "nullable": true } }, "required": [ - "metadata_tmls" + "name" ] } } }, "required": true }, - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "role_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Role." + } + ], "responses": { "200": { - "description": "Import metadata objects using specified TMLs is successful.", + "description": "Role successfully updated.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/RoleResponse" } } } @@ -6557,13 +6671,13 @@ } } }, - "/api/rest/2.0/metadata/tml/async/import": { + "/api/rest/2.0/schedules/create": { "post": { - "operationId": "importMetadataTMLAsync", - "description": "\n Version: 10.4.0.cl or later\n\nSchedules 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### Usage guidelines\n\nSee [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createSchedule", + "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\nIf [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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* 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.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n#### Endpoint URL\n", "tags": [ - "Metadata", - "10.4.0.cl" + "Schedules", + "9.4.0.cl" ], "requestBody": { "content": { @@ -6571,2692 +6685,54 @@ "schema": { "type": "object", "properties": { - "metadata_tmls": { - "description": "Details of TML objects.", - "type": "array", - "items": { - "type": "string" - } - }, - "create_new": { - "description": "If selected, creates TML objects with new GUIDs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_context": { - "description": "If import is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true + "name": { + "description": "Name of the scheduled job.", + "type": "string" }, - "skip_cdw_validation_for_tables": { - "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", - "default": false, - "type": "boolean", - "nullable": true + "description": { + "description": "Description of the job.", + "type": "string" }, - "import_policy": { - "description": "
Version: 10.5.0.cl or later
\n\nPolicy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE]", - "default": "PARTIAL_OBJECT", + "metadata_type": { + "description": "Type of the metadata object.", "type": "string", "enum": [ - "PARTIAL", - "ALL_OR_NONE", - "VALIDATE_ONLY", - "PARTIAL_OBJECT" + "LIVEBOARD" ] }, - "skip_diff_check": { - "description": "
Version: 10.6.0.cl or later
\n\nBoolean Flag to skip TML diff check before processing object TMLs.", - "default": false, - "type": "boolean", - "nullable": true - }, - "enable_large_metadata_validation": { - "description": "
Version: 10.5.0.cl or later
\n\nBoolean to indicate if the large metadata validation should be enabled.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_tmls" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Async TML Import Task submitted successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImportEPackAsyncTaskStatus" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export": { - "post": { - "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExportMetadataTypeInput" - } - }, - "export_associated": { - "description": "Indicates whether to export associated metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_fqn": { - "description": "Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects,\nthe API returns the Liveboard TML data with the FQNs of the referenced worksheet.\nIf the exported TML data includes FQNs, you don't need to manually add FQNs of the referenced objects during TML import.", - "default": false, - "type": "boolean", - "nullable": true + "metadata_identifier": { + "description": "Unique ID or name of the metadata object.", + "type": "string" }, - "edoc_format": { - "description": "TML EDOC content format.\n\n**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)**", - "default": "JSON", + "file_format": { + "description": "Export file format.", + "default": "PDF", "type": "string", "enum": [ - "JSON", - "YAML" + "CSV", + "PDF", + "XLSX" ] }, - "export_schema_version": { - "description": "Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version.", - "default": "DEFAULT", - "type": "string", - "enum": [ - "DEFAULT", - "V1", - "V2" + "liveboard_options": { + "description": "Options to specify details of Liveboard.", + "allOf": [ + { + "$ref": "#/components/schemas/LiveboardOptionsInput" + } ] }, - "export_dependent": { - "description": "Indicates whether to export table while exporting connection.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_connection_as_dependent": { - "description": "Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard.\nThis will only be active when export_associated is true.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - }, - "export_options": { - "description": "Flags to specify additional options for export.
Version: 10.6.0.cl or later", + "pdf_options": { + "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", "allOf": [ { - "$ref": "#/components/schemas/Export_Options" + "$ref": "#/components/schemas/SchedulesPdfOptionsInput" } ] - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/tml/export/batch": { - "post": { - "operationId": "exportMetadataTMLBatched", - "description": "\n Version: 10.1.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "10.1.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata object to export, can be one of USER | ROLE | USER_GROUP", - "type": "string", - "enum": [ - "USER", - "USER_GROUP", - "ROLE" - ] - }, - "batch_offset": { - "description": "Indicates the position within the complete set from where the API should begin returning objects.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "batch_size": { - "description": "Determines the number of objects or items to be retrieved in a single request.", - "default": 20, - "type": "integer", - "format": "int32" - }, - "edoc_format": { - "description": "TML EDOC content format.", - "default": "JSON", - "type": "string", - "enum": [ - "JSON", - "YAML" - ] - }, - "export_dependent": { - "description": "Indicates whether to export dependent metadata objects of specified metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - }, - "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/delete": { - "post": { - "operationId": "deleteMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nRemoves the specified metadata object from the ThoughtSpot system.\n\nRequires edit access to the metadata object. \n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteMetadataTypeInput" - } - }, - "delete_disabled_objects": { - "description": "Indicates whether to delete disabled metadata objects.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Metadata objects successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/copyobject": { - "post": { - "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "10.3.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "description": { - "description": "Description of the new object", - "type": "string" - }, - "identifier": { - "description": "GUID of metadata object to be copied (answer id or liveboard id)", - "type": "string" }, - "type": { - "description": "Type of metadata object", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER" - ] - }, - "title": { - "description": "Title of the new object", - "type": "string" - } - }, - "required": [ - "identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully created a copy of the object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCopyObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "404": { - "description": "Object not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/worksheets/convert": { - "post": { - "operationId": "convertWorksheetToModel", - "description": "\nConvert worksheets to models
Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **worksheet_ids** \n - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. \n - **Usage:** \n - Used only when `convert_all` is set to `false`. \n - Leave empty or omit when `convert_all` is set to `true`.\n\n2. **exclude_worksheet_ids** \n - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. \n - **Usage:** \n - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted.\n\n3. **convert_all** \n - **Description:** Sets the scope of conversion.\n - **Options:** \n - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. \n - `false`: Converts only the Worksheets listed in `worksheet_ids`.\n\n4. **apply_changes** \n - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion.\n - **Options:** \n - `true`: Applies conversion changes directly to ThoughtSpot.\n - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot\n\n---\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the conversion process\n\n2. **Partial Conversion for Testing:** \n Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`.\n\n3. **Verify Dependencies:** \n Check for dependent objects, such as Tables and Connections, to avoid invalid references.\n\n4. **Review Changes:** \n Use `apply_changes: false` to preview the impact of the conversion before applying changes.\n\n---\n\n## Examples\n\n### Convert Specific Worksheets\n```json\n{\n \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"],\n \"exclude_worksheet_ids\": [],\n \"convert_all\": false,\n \"apply_changes\": true\n}\n```\n\n### Convert All Accessible Worksheets\n```json\n{\n \"worksheet_ids\": [],\n \"exclude_worksheet_ids\": [],\n \"convert_all\": true,\n \"apply_changes\": true\n}\n```\n\n### Exclude Specific Worksheets While Converting All Accessible Worksheets\n```json\n{\n \"worksheet_ids\": [],\n \"exclude_worksheet_ids\": [\"abc\"],\n \"convert_all\": true,\n \"apply_changes\": true\n}\n```\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "10.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "worksheet_ids": { - "description": "List of Worksheet IDs.", - "type": "array", - "items": { - "type": "string" - } - }, - "exclude_worksheet_ids": { - "description": "List of Worksheet IDs to be excluded.", - "type": "array", - "items": { - "type": "string" - } - }, - "convert_all": { - "description": "Indicates whether all the worksheet needs to be converted to models.", - "default": false, - "type": "boolean", - "nullable": true - }, - "apply_changes": { - "description": "Indicates whether the changes should be applied to database.", - "default": false, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Conversion of worksheets to model done successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseWorksheetToModelConversion" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/headers/update": { - "post": { - "operationId": "updateMetadataHeader", - "description": "\nUpdate header attributes for a given list of header objects.
Beta Version: 10.6.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `ORG_ADMINISTRATION` (Can manage orgs).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **headers_update** \n - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header.\n - **Usage:**\n - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty.\n - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed.\n\n2. **org_identifier** \n - **Description:** GUID (Globally Unique Identifier) or name of the organization. \n - **Usage:**\n - Leaving this field empty assumes that the changes should be applied to the current organization \n - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. .\n - Provide `-1` if changes have to be applied across all the org.\n\n---\n\n## Note\nCurrently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute's value.\n\n## Best Practices\n\n1. **Backup Before Conversion:** \n Always export metadata as a backup before initiating the update process\n\n---\n\n## Examples\n\n### Only `identifier` is given \n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"obj_identifier\": \"\",\n \"type\": \"LOGICAL_COLUMN\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": \"orgGuid\"\n}\n```\n\n### Only `obj_identifier` is given\n```json\n{\n \"headers_update\":\n [\n {\n \"obj_identifier\": \"custom_object_id\",\n \"type\": \"ANSWER\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": \"orgName\"\n}\n```\n\n### Executing update for all org `-1`\n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"type\": \"ANSWER\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": -1\n}\n```\n\n### Optional `type` is not provided\n```json\n{\n \"headers_update\":\n [\n {\n \"identifier\": \"guid_1\",\n \"attributes\":\n [\n {\n \"name\": \"obj_id\",\n \"value\": \"custom_object_id\"\n }\n ]\n }\n ],\n \"org_identifier\": -1\n}\n```\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Metadata", - "10.6.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "headers_update": { - "description": "List of header objects to update.", - "type": "array", - "items": { - "$ref": "#/components/schemas/HeaderUpdateInput" - } - }, - "org_identifier": { - "description": "Unique ID or name of the organization.", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Headers update was successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/assign": { - "post": { - "operationId": "assignChangeAuthor", - "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "GUID or name of the metadata object.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorMetadataTypeInput" - } - }, - "user_identifier": { - "description": "GUID or name of the user who you want to assign as the author.", - "type": "string" - }, - "current_owner_identifier": { - "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", - "type": "string" - } - }, - "required": [ - "metadata", - "user_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Author assignment for given metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/security/metadata/share": { - "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "default": [], - "type": "array", - "items": { - "type": "string" - } - }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "permissions", - "message" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Sharing metadata objects is successful." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/create": { - "post": { - "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_url": { - "description": "URL for connecting to remote repository", - "type": "string" - }, - "username": { - "description": "Username to authenticate connection to remote repository", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to remote repository", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "default": true, - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", - "type": "string" - } - }, - "required": [ - "repository_url", - "username", - "access_token" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully configured local repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/update": { - "post": { - "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "username": { - "description": "Username to authenticate connection to version control system", - "type": "string" - }, - "access_token": { - "description": "Access token corresponding to the user to authenticate connection to version control system", - "type": "string" - }, - "org_identifier": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", - "type": "string" - }, - "branch_names": { - "description": "List the remote branches to configure. Example:[development, production]", - "type": "array", - "items": { - "type": "string" - } - }, - "commit_branch_name": { - "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", - "type": "string" - }, - "enable_guid_mapping": { - "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", - "type": "boolean", - "nullable": true - }, - "configuration_branch_name": { - "description": "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", - "type": "string" - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully updated local repository configuration", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepoConfigObject" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/config/delete": { - "post": { - "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_level": { - "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully deleted local repository configuration" - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/commit": { - "post": { - "operationId": "commitBranch", - "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "delete_aware": { - "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", - "default": true, - "type": "boolean", - "nullable": true - }, - "branch_name": { - "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "comment": { - "description": "Comment to be added to the commit", - "type": "string" - } - }, - "required": [ - "metadata", - "comment" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully committed the metadata objects", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommitResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { - "post": { - "operationId": "revertCommit", - "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataObject" - } - }, - "branch_name": { - "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", - "type": "string" - }, - "revert_policy": { - "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "commit_id", - "required": true, - "schema": { - "type": "string" - }, - "description": "Commit id to which the object should be reverted" - } - ], - "responses": { - "200": { - "description": "Reverted the object to the commit point specified", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevertResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/branches/validate": { - "post": { - "operationId": "validateMerge", - "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_branch_name": { - "description": "Name of the branch from which changes need to be picked for validation", - "type": "string" - }, - "target_branch_name": { - "description": "Name of the branch where files will be merged", - "type": "string" - } - }, - "required": [ - "source_branch_name", - "target_branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "validation done successfully", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/vcs/git/commits/deploy": { - "post": { - "operationId": "deployCommit", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Version Control", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "commit_id": { - "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", - "type": "string" - }, - "branch_name": { - "description": "Name of the remote branch where changes should be picked", - "type": "string" - }, - "deploy_type": { - "description": "Indicates if all files or only modified file at specified commit point should be considered", - "default": "DELTA", - "type": "string", - "enum": [ - "FULL", - "DELTA" - ] - }, - "deploy_policy": { - "description": "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.", - "default": "ALL_OR_NONE", - "type": "string", - "enum": [ - "ALL_OR_NONE", - "PARTIAL", - "VALIDATE_ONLY" - ] - } - }, - "required": [ - "branch_name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully deployed the changes", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeployResponse" - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/create": { - "post": { - "operationId": "createConnection", - "description": "\n Version: 9.2.0.cl or later\n\nCreates a connection to a data warehouse for live query services. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Create a connection without tables\n\nTo create a connection without tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n2. Set `validate` to `false`.\n\n#### Create a connection with tables\n\nTo create a connection with tables:\n\n1. Pass these parameters in your API request.\n * Name of the connection.\n * Type of the data warehouse to connect to.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n2. Set `validate` to `true`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name for the connection.", - "type": "string" - }, - "description": { - "description": "Description of the connection.", - "type": "string" - }, - "data_warehouse_type": { - "description": "Type of the data warehouse.", - "type": "string", - "enum": [ - "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" - ] - }, - "data_warehouse_config": { - "description": "Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON.", - "type": "object" - }, - "validate": { - "description": "Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name", - "data_warehouse_type", - "data_warehouse_config" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Connection to the datasource successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateConnectionResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/delete": { - "post": { - "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/{connection_identifier}/delete": { - "post": { - "operationId": "deleteConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.4.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connection/update": { - "post": { - "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, - "tags": [ - "Connections", - "9.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "connection_identifier": { - "description": "Unique ID or name of the connection.", - "type": "string" - }, - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "connection_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/{connection_identifier}/update": { - "post": { - "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "10.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Updated name of the connection.", - "type": "string" - }, - "description": { - "description": "Updated description of the connection.", - "type": "string" - }, - "data_warehouse_config": { - "description": "Configuration of the data warehouse in JSON.", - "type": "object" - }, - "validate": { - "description": "Indicates whether to validate the connection details.", - "default": true, - "type": "boolean", - "nullable": true - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection." - } - ], - "responses": { - "204": { - "description": "Connection successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}": { - "post": { - "operationId": "fetchConnectionDiffStatus", - "description": "\n Version: 9.9.0.cl or later\n\nValidates the difference in connection metadata between CDW and ThoughtSpot.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\nReturns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW.\n\nTo get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "true/false", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FetchConnectionDiffStatusResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}": { - "post": { - "operationId": "downloadConnectionMetadataChanges", - "description": "\n Version: 9.9.0.cl or later\n\nExports the difference in connection metadata between CDW and ThoughtSpot\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: \n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\nTo download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "9.9.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "GUID of the connection" - } - ], - "responses": { - "200": { - "description": "Export metadata changes.", - "content": { - "application/octet-stream": {} - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/create": { - "post": { - "operationId": "createRole", - "description": "\n Version: 9.5.0.cl or later\n\nCreates a Role object in ThoughtSpot.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Unique name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - }, - "read_only": { - "description": "
Version: 10.5.0.cl or later
\n\nIndicates whether the role is read only. A readonly role can neither be updated nor deleted.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Role successfully created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid parameters.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/update": { - "post": { - "operationId": "updateRole", - "description": "\n Version: 9.5.0.cl or later\n\nUpdates the properties of a Role object.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the Role.", - "type": "string" - }, - "description": { - "description": "Description of the Role.", - "type": "string" - }, - "privileges": { - "description": "Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "USERDATAUPLOADING", - "DATADOWNLOADING", - "DATAMANAGEMENT", - "SHAREWITHALL", - "JOBSCHEDULING", - "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", - "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" - ] - } - } - }, - "required": [ - "name" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role." - } - ], - "responses": { - "200": { - "description": "Role successfully updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/roles/{role_identifier}/delete": { - "post": { - "operationId": "deleteRole", - "description": "\n Version: 9.5.0.cl or later\n\nDeletes a Role object from the ThoughtSpot system.\n\nAvailable 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.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Roles", - "9.5.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "role_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the Role. ReadOnly roles cannot be deleted." - } - ], - "responses": { - "204": { - "description": "Role successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Internal error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/schedules/create": { - "post": { - "operationId": "createSchedule", - "description": "\nCreate schedule.
Version: 9.4.0.cl or later\n\nCreates a Liveboard schedule job.\n\nRequires 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.\nIf [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.\n\n#### Usage guidelines\n\n* The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications.\n* 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.\n* To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array.\n* 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.\n* 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`.\n\nFor more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule).\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Schedules", - "9.4.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Name of the scheduled job.", - "type": "string" - }, - "description": { - "description": "Description of the job.", - "type": "string" - }, - "metadata_type": { - "description": "Type of the metadata object.", - "type": "string", - "enum": [ - "LIVEBOARD" - ] - }, - "metadata_identifier": { - "description": "Unique ID or name of the metadata object.", - "type": "string" - }, - "file_format": { - "description": "Export file format.", - "default": "PDF", - "type": "string", - "enum": [ - "CSV", - "PDF", - "XLSX" - ] - }, - "liveboard_options": { - "description": "Options to specify details of Liveboard.", - "allOf": [ - { - "$ref": "#/components/schemas/LiveboardOptionsInput" - } - ] - }, - "pdf_options": { - "description": "PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`.", - "allOf": [ - { - "$ref": "#/components/schemas/SchedulesPdfOptionsInput" - } - ] - }, - "time_zone": { - "description": "Time zone", - "default": "America/Los_Angeles", + "time_zone": { + "description": "Time zone", + "default": "America/Los_Angeles", "type": "string", "enum": [ "Africa/Abidjan", @@ -10854,50 +8330,2299 @@ "VST" ] }, - "frequency": { - "description": "Frequency of the scheduled job run.", - "allOf": [ - { - "$ref": "#/components/schemas/FrequencyInput" - } + "frequency": { + "description": "Frequency of the scheduled job run.", + "allOf": [ + { + "$ref": "#/components/schemas/FrequencyInput" + } + ] + }, + "recipient_details": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/RecipientDetailsInput" + } + ] + }, + "status": { + "description": "Status of the schedule", + "type": "string", + "enum": [ + "ACTIVE", + "PAUSE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "schedule_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the schedule." + } + ], + "responses": { + "204": { + "description": "Schedule successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View) and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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).\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/assign": { + "post": { + "operationId": "assignChangeAuthor", + "description": "\n Version: 9.0.0.cl or later\n\nTransfers the ownership of one or several objects from one user to another.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorMetadataTypeInput" + } + }, + "user_identifier": { + "description": "GUID or name of the user who you want to assign as the author.", + "type": "string" + }, + "current_owner_identifier": { + "description": "GUID or name of the current author. When defined, the metadata objects\nauthored by the specified owner are filtered for the API operation.", + "type": "string" + } + }, + "required": [ + "metadata", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Author assignment for given metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/principals/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOfPrincipals", + "description": "\n Version: 9.0.0.cl or later\n\nFetches object permission details for a given principal object such as a user and group.\n\nRequires view access to the metadata object. \n\n#### Usage guidelines\n\n* 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.\n* To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request.\n\nUpon successful execution, the API returns a list of metadata objects and permission details for each object. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "principals": { + "description": "GUID or name of the user or group.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "metadata": { + "description": "Metadata objects for which you want to fetch permission details.\nIf not specified, the API returns permission details for all\nmetadata objects that the specified users and groups can access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "default_metadata_type": { + "description": "When no metadata objects input is passed, metadata objects of this type are fetched.", + "type": "string", + "enum": [ + "ALL", + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + } + }, + "required": [ + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of principals is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfPrincipalsResponse" + }, + "examples": { + "example_1": { + "value": { + "principal_permission_details": [ + { + "principal_id": "7f5e7f87-09a1-487c-a1da-c4bb35e45270", + "principal_name": "test_user", + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "metadata_permission_info": [ + { + "metadata_type": "LIVEBOARD", + "metadata_permissions": [ + { + "metadata_id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "metadata_name": "Learn how to use ThoughtSpot", + "metadata_owner": { + "id": "2ff57a24-cf90-485f-8b4b-45fc17474c6f", + "name": "Learn how to use ThoughtSpot" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "permission": "READ_ONLY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/fetch-permissions": { + "post": { + "operationId": "fetchPermissionsOnMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nFetches permission details for a given metadata object.\n\nRequires view access to the metadata object.\n\n#### Usage guidelines\n\n* To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object.\n* To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request.\n\nUpon successful execution, the API returns permission details and principal information for the object specified in the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "GUID or name of the metadata object.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionsMetadataTypeInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch permissions.\nIf not specified, the API returns all users and groups that\ncan access the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "include_dependent_objects": { + "description": "Indicates whether to fetch permissions of dependent metadata objects.", + "default": false, + "type": "boolean", + "nullable": true + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": -1, + "type": "integer", + "format": "int32" + }, + "permission_type": { + "description": "
Version: 10.3.0.cl or later
\n\nSpecifies the type of permission. Valid values are:\n EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong.\n DEFINED - If a user or user group received access to metadata objects via object sharing by another user.", + "type": "string" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching permissions of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionOfMetadataResponse" + }, + "examples": { + "example_1": { + "value": { + "metadata_permission_details": [ + { + "metadata_id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "metadata_name": "testing", + "metadata_type": "LIVEBOARD", + "metadata_owner": { + "id": "a62a5bf3-9f16-45b2-a174-7d30b3b577a9", + "name": "testing" + }, + "metadata_author": { + "id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "name": "tsadmin" + }, + "principal_permission_info": [ + { + "principal_type": "USER_GROUP", + "principal_sub_type": "LOCAL_GROUP", + "principal_permissions": [ + { + "principal_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "principal_name": "Administrator", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + }, + { + "principal_type": "USER", + "principal_sub_type": "LOCAL_USER", + "principal_permissions": [ + { + "principal_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "principal_name": "su", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + }, + { + "principal_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "principal_name": "tsadmin", + "permission": "MODIFY", + "shared_permission": "NO_ACCESS", + "group_permission": [] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\nIf [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.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster config information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemConfig" + }, + "examples": { + "example_1": { + "value": { + "onboarding_content_url": "" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system": { + "get": { + "operationId": "getSystemInformation", + "description": "\n Version: 9.0.0.cl or later\n\nGets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + }, + "examples": { + "example_1": { + "value": { + "id": "local", + "name": "local", + "release_version": "test", + "time_zone": "America/Los_Angeles", + "locale": "", + "date_format": "MM/dd/yyyy", + "api_version": "v1", + "type": "SW", + "environment": "DEV", + "license": "EAE", + "date_time_format": "MM/dd/yyyy h:mm a", + "time_format": "HH:mm:ss", + "system_user_id": "67e15c06-d153-4924-a4cd-ff615393b60f", + "super_user_id": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9", + "hidden_object_id": "31745bb4-defd-4e8b-8de9-8fd01db78827", + "system_group_id": "179d8867-cf36-4a8d-a019-63a226fd3196", + "tsadmin_user_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "admin_group_id": "d0326b56-ef23-4c8a-8327-a30e99bcc72b", + "all_tables_connection_id": "bfc6feb4-8dac-402c-8ae8-78b43d318777", + "all_user_group_id": "b25ee394-9d13-49e3-9385-cd97f5b253b4", + "accept_language": "undefined", + "all_user_group_member_user_count": 13, + "logical_model_version": 43 + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-overrides": { + "get": { + "operationId": "getSystemOverrideInfo", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of configuration overrides applied on the cluster. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\nThis API does not require any parameters to be passed in the request. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "Cluster configuration which can be overridden.", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config-update": { + "post": { + "operationId": "updateSystemConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates the current configuration of the cluster. You must send the configuration data in JSON format.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration": { + "description": "Configuration JSON with the key-value pair of configuration attributes to be updated.", + "type": "object" + } + }, + "required": [ + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/assign": { + "post": { + "operationId": "assignTag", + "description": "\n Version: 9.0.0.cl or later\n\nAssigns tags to Liveboards, Answers, Tables, and Worksheets.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully assigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/create": { + "post": { + "operationId": "createTag", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a tag object.\n\nTags are labels that identify a metadata object. For example, you can create a tag to designate subject areas, such as sales, HR, marketing, and finance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tag successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + }, + "examples": { + "example_1": { + "value": { + "name": "test5", + "id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1685441468684, + "modification_time_in_millis": 1685441468684, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "6abf5aec-3485-4f83-b25f-8c55b92e2b20" + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/delete": { + "post": { + "operationId": "deleteTag", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a tag object from the ThoughtSpot system\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Tag identifier Tag name or Tag id." + } + ], + "responses": { + "204": { + "description": "Tag successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/search": { + "post": { + "operationId": "searchTags", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name.\n\nAny authenticated user can search for tag objects.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_identifier": { + "description": "Name or Id of the tag.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the Tag object.", + "type": "string" + }, + "color": { + "description": "Color of the tag.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Tags search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "examples": { + "example_1": { + "value": [ + { + "name": "test4", + "id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684937524885, + "modification_time_in_millis": 1684937524885, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "0935bbb5-17e2-43ab-b657-da6bf347cbb4" + }, + { + "name": "test6", + "id": "65a5c39a-daf5-4cae-975f-44283628494e", + "color": "#342323", + "deleted": false, + "hidden": false, + "external": false, + "deprecated": false, + "creation_time_in_millis": 1684988834183, + "modification_time_in_millis": 1684988887888, + "author_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "modifier_id": "59481331-ee53-42be-a548-bd87be6ddd4a", + "owner_id": "65a5c39a-daf5-4cae-975f-44283628494e" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/unassign": { + "post": { + "operationId": "unassignTag", + "description": "\n Version: 9.0.0.cl or later\n\nRemoves the tags applied to a Liveboard, Answer, Table, or Worksheet.\n\nRequires edit access to the metadata object.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TagMetadataTypeInput" + } + }, + "tag_identifiers": { + "description": "GUID or name of the tag.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "metadata", + "tag_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Tags successfully unassigned." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/tags/{tag_identifier}/update": { + "post": { + "operationId": "updateTag", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates a tag object.\n\nYou can modify the `name` and `color` properties of a tag object. \n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `TAGMANAGEMENT` (**Can manage tags**) privilege is required to create, edit, and delete tags.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Tags", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the tag.", + "type": "string" + }, + "color": { + "description": "Hex color code to be assigned to the tag. For example, #ff78a9.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "tag_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Name or Id of the tag." + } + ], + "responses": { + "204": { + "description": "Tag successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/activate": { + "post": { + "operationId": "activateUser", + "description": "\n Version: 9.7.0.cl or later\n\nActivates a deactivated user account.\n\nRequires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\nTo activate an inactive user account, the API request body must include the following information:\n\n- Username or the GUID of the user account.\n- Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated.\n- Password for the user account.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "auth_token": { + "description": "Auth token for the user.", + "type": "string" + }, + "password": { + "description": "New password for the user to access the account.", + "type": "string" + }, + "properties": { + "description": "Properties of the user.", + "type": "string" + } + }, + "required": [ + "user_identifier", + "auth_token", + "password" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User activated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/change-password": { + "post": { + "operationId": "changeUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the current password of the user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "description": "Current password of the user.", + "type": "string" + }, + "new_password": { + "description": "New password for the user.", + "type": "string" + }, + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" + } + }, + "required": [ + "current_password", + "new_password", + "user_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "User password change operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/create": { + "post": { + "operationId": "createUser", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a user in ThoughtSpot.\n\nThe 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "password": { + "description": "Password for the user account. For IAMv2 users, you must set this password if you do not want to trigger an activation email.", + "type": "string" + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_type": { + "description": "Type of the account.", + "default": "LOCAL_USER", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "account_status": { + "description": "Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only.", + "default": "ACTIVE", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING", + "SUSPENDED" ] }, - "recipient_details": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/RecipientDetailsInput" - } + "org_identifiers": { + "description": "List of Org IDs to which the user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "group_identifiers": { + "description": "GUIDs or names of the groups to which the newly created user belongs.", + "type": "array", + "items": { + "type": "string" + } + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "default": "SHARABLE", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot\nuser shares a metadata object such as Answer, Liveboard, or Worksheet.", + "default": true, + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "default": true, + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "flag to get the on-boarding experience is completed or not.", + "default": false, + "type": "boolean", + "nullable": true + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user.\nThoughtSpot displays this Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" ] }, - "status": { - "description": "Status of the schedule", - "type": "string", - "enum": [ - "ACTIVE", - "PAUSE" - ] + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + }, + "trigger_welcome_email": { + "description": "Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled.", + "type": "boolean", + "nullable": true + }, + "trigger_activation_email": { + "description": "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 \npassword if they do not want to trigger an activation email.", + "type": "boolean", + "nullable": true + } + }, + "required": [ + "name", + "display_name", + "email" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "User successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/deactivate": { + "post": { + "operationId": "deactivateUser", + "description": "\n Version: 9.7.0.cl or later\n\nDeactivates a user account.\n\nRequires `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.\n\nTo deactivate a user account, the API request body must include the following information:\n\n- Username or the GUID of the user account\n- Base URL of the ThoughtSpot instance\n\nIf 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.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifier": { + "description": "Unique ID or name of the user.", + "type": "string" + }, + "base_url": { + "description": "Base url of the cluster.", + "type": "string" } - } + }, + "required": [ + "user_identifier", + "base_url" + ] } } }, "required": true }, + "parameters": [], + "responses": { + "200": { + "description": "User deactivated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseActivationURL" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/{user_identifier}/delete": { + "post": { + "operationId": "deleteUser", + "description": "\n Version: 9.0.0.cl or later\n\nDeletes a user from the ThoughtSpot system.\n\nIf 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], "parameters": [ { "in": "path", - "name": "schedule_identifier", + "name": "user_identifier", "required": true, "schema": { "type": "string" }, - "description": "Unique ID or name of the schedule." + "description": "GUID / name of the user" } ], "responses": { "204": { - "description": "Schedule successfully updated." + "description": "User successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/force-logout": { + "post": { + "operationId": "forceLogoutUsers", + "description": "\n Version: 9.0.0.cl or later\n\nEnforces logout on current user sessions. \n\nUse 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "user_identifiers": { + "description": "GUID or name of the users for force logging out their sessions.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Force logging out of users operation successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/users/import": { + "post": { + "operationId": "importUsers", + "description": "\n Version: 9.0.0.cl or later\n\nImports user data from external databases into ThoughtSpot. During the user import operation:\n\n* 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.\n* 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.\n* 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.\n\nA successful API call returns the object that represents the changes made in the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Users", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "description": "List of users needs to be imported.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ImportUser" + } + }, + "default_password": { + "description": "The default password to assign to users if they do not have a password assigned in ThoughtSpot.", + "type": "string" + }, + "dry_run": { + "description": "If true, the API performs a test operation and returns user IDs whose data will be edited after the import.", + "default": true, + "type": "boolean", + "nullable": true + }, + "delete_unspecified_users": { + "description": "If set to true, removes the users that are not specified in the API request.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "users" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Import users operation successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportUsersResponse" + } + } + } }, "400": { "description": "Invalid request.", @@ -10942,13 +10667,13 @@ } } }, - "/api/rest/2.0/customization/custom-actions": { + "/api/rest/2.0/users/reset-password": { "post": { - "operationId": "createCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nCreates a custom action that appears as a menu action on a saved Answer or Liveboard visualization.\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#### Usage Guidelines\n\nThe API lets you create the following types of custom actions:\n\n* URL-based action \n Allows pushing data to an external URL.\n* Callback action \n Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance.\n\nBy 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`.\n\nBy 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`.\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "operationId": "resetUserPassword", + "description": "\n Version: 9.0.0.cl or later\n\nResets the password of a user account. Administrators can reset password on behalf of a user.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Custom Action", - "9.6.0.cl" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -10956,44 +10681,18 @@ "schema": { "type": "object", "properties": { - "name": { - "description": "Name of the custom action. The custom action name must be unique.", + "new_password": { + "description": "New password for the user.", "type": "string" }, - "action_details": { - "description": "Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input_Create" - } - ] - }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input_Create" - } - }, - "default_action_config": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input_Create" - } - ] - }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } + "user_identifier": { + "description": "GUID or name of the user.", + "type": "string" } }, "required": [ - "name", - "action_details" + "new_password", + "user_identifier" ] } } @@ -11002,33 +10701,8 @@ }, "parameters": [], "responses": { - "200": { - "description": "Custom action created successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResponseCustomAction" - }, - "examples": { - "example_1": { - "value": { - "action_details": { - "CALLBACK": { - "reference": "customaction" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "3d3cad0f-e57b-4faa-8e24-da596c727ee0", - "metadata_association": [], - "name": "customactionsample", - "user_groups": [] - } - } - } - } - } + "204": { + "description": "User password reset operation successful." }, "400": { "description": "Invalid request.", @@ -11073,13 +10747,13 @@ } } }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "/api/rest/2.0/users/search": { "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\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#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchUsers", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of users available on the ThoughtSpot system.\n\nTo 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.\n\nAvailable 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.\n\n**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`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Custom Action", - "9.6.0.cl" + "Users", + "9.0.0.cl" ], "requestBody": { "content": { @@ -11087,48 +10761,170 @@ "schema": { "type": "object", "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input" - } + "user_identifier": { + "description": "GUID / name of the user to search", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the User object.", + "type": "string" + }, + "visibility": { + "description": "Visibility of the user", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" ] }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", + "email": { + "description": "Email of the user account", + "type": "string" + }, + "group_identifiers": { + "description": "GUID or name of the group to which the user belongs", "type": "array", "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" + "type": "string" } }, - "default_action_config": { - "description": "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.", - "allOf": [ - { - "$ref": "#/components/schemas/Default_Action_Config_Input" - } + "privileges": { + "description": "Privileges assigned to the user", + "type": "array", + "items": { + "type": "string", + "enum": [ + "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" + ] + } + }, + "account_type": { + "description": "Type of the account", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" ] }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", + "account_status": { + "description": "Current status of the user account.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING", + "SUSPENDED" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding walkthrough", + "type": "boolean", + "nullable": true + }, + "org_identifiers": { + "description": "IDs or names of the Orgs to which the user belongs", "type": "array", "items": { "type": "string" } }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", + "home_liveboard_identifier": { + "description": "Unique ID or name of the user's home Liveboard.", "type": "string" }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", - "type": "string", - "enum": [ - "ADD", - "REMOVE" + "favorite_metadata": { + "description": "Metadata objects which are assigned as favorites of the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", + "allOf": [ + { + "$ref": "#/components/schemas/SortOptions" + } ] + }, + "role_identifiers": { + "description": "Filters by the role assigned to the user.", + "type": "array", + "items": { + "type": "string" + } + }, + "include_favorite_metadata": { + "description": "Indicates if the user's favorite objects should be displayed.", + "default": false, + "type": "boolean", + "nullable": true } } } @@ -11136,20 +10932,20 @@ }, "required": true }, - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], + "parameters": [], "responses": { - "204": { - "description": "Custom action updated successfully." + "200": { + "description": "User search result.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } + } + } + } }, "400": { "description": "Invalid request.", @@ -11194,28 +10990,167 @@ } } }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "/api/rest/2.0/users/{user_identifier}/update": { "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateUser", + "description": "\n Version: 9.0.0.cl or later\n\nUpdates the properties of a user object.\n\nYou 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.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Custom Action", - "9.6.0.cl" + "Users", + "9.0.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the user. The username string must be unique.", + "type": "string" + }, + "display_name": { + "description": "A unique display name string for the user account, usually their first and last name", + "type": "string" + }, + "visibility": { + "description": "Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object.", + "type": "string", + "enum": [ + "SHARABLE", + "NON_SHARABLE" + ] + }, + "email": { + "description": "Email of the user account", + "type": "string" + }, + "account_status": { + "description": "Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE", + "EXPIRED", + "LOCKED", + "PENDING", + "SUSPENDED" + ] + }, + "notify_on_share": { + "description": "User preference for receiving email notifications when another ThoughtSpot user\nshares a metadata object such as Answer, Liveboard, or Worksheet.", + "type": "boolean", + "nullable": true + }, + "show_onboarding_experience": { + "description": "The user preference for revisiting the onboarding experience.", + "type": "boolean", + "nullable": true + }, + "onboarding_experience_completed": { + "description": "Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough.", + "type": "boolean", + "nullable": true + }, + "account_type": { + "description": "Type of the account.", + "type": "string", + "enum": [ + "LOCAL_USER", + "LDAP_USER", + "SAML_USER", + "OIDC_USER", + "REMOTE_USER" + ] + }, + "group_identifiers": { + "description": "GUIDs or names of the groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "home_liveboard_identifier": { + "description": "GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays\nthis Liveboard on the Home page when the user logs in.", + "type": "string" + }, + "favorite_metadata": { + "description": "Metadata objects to add to the user's favorites list.", + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteMetadataInput" + } + }, + "org_identifiers": { + "description": "IDs of the Orgs.", + "type": "array", + "items": { + "type": "string" + } + }, + "operation": { + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, "parameters": [ { "in": "path", - "name": "custom_action_identifier", + "name": "user_identifier", "required": true, "schema": { "type": "string" }, - "description": "Unique ID or name of the custom action." + "description": "GUID / name of the user" } ], "responses": { "204": { - "description": "Custom action is successfully deleted." + "description": "User successfully updated." }, "400": { "description": "Invalid request.", @@ -11260,13 +11195,13 @@ } } }, - "/api/rest/2.0/dbt/dbt-connection": { + "/api/rest/2.0/vcs/git/branches/commit": { "post": { - "operationId": "dbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nCreates a DBT connection object in ThoughtSpot.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About create DBT connection\nDBT 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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "commitBranch", + "description": "\n Version: 9.2.0.cl or later\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "DBT", - "9.9.0.cl" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -11274,56 +11209,31 @@ "schema": { "type": "object", "properties": { - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", - "type": "string" - }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", - "type": "string", - "enum": [ - "DBT_CLOUD", - "ZIP_FILE" - ] - }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } }, - "dbt_env_id": { - "description": "DBT Environment ID\"", - "type": "string" + "delete_aware": { + "description": "Delete the tml files from version control repo if it does not exist in the ThoughSpot instance", + "default": true, + "type": "boolean", + "nullable": true }, - "project_name": { - "description": "Name of the project", + "branch_name": { + "description": " Name of the remote branch where object should be pushed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", "type": "string" }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" + "comment": { + "description": "Comment to be added to the commit", + "type": "string" } }, "required": [ - "connection_name", - "database_name" + "metadata", + "comment" ] } } @@ -11333,11 +11243,11 @@ "parameters": [], "responses": { "200": { - "description": "Succesfully created DBT Connection.", + "description": "Successfully committed the metadata objects", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/CommitResponse" } } } @@ -11385,13 +11295,13 @@ } } }, - "/api/rest/2.0/dbt/generate-tml": { + "/api/rest/2.0/vcs/git/config/create": { "post": { - "operationId": "dbtGenerateTml", - "description": "\n Version: 9.9.0.cl or later\n\nGenerate required table and worksheet and import them.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About generate TML\nModels and Worksheets to be imported can be selected by the user as part of the API.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createConfig", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "DBT", - "9.9.0.cl" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -11399,42 +11309,48 @@ "schema": { "type": "object", "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", + "repository_url": { + "description": "URL for connecting to remote repository", "type": "string" }, - "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } + "username": { + "description": "Username to authenticate connection to remote repository", + "type": "string" }, - "import_worksheets": { - "description": "Mention the worksheet tmls to import", - "type": "string", - "enum": [ - "ALL", - "NONE", - "SELECTED" - ] + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to remote repository", + "type": "string" }, - "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", "type": "array", "items": { "type": "string" } }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "default": true, + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": " Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.\n \n\nNote: 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", + "type": "string" } }, "required": [ - "dbt_connection_identifier", - "import_worksheets" + "repository_url", + "username", + "access_token" ] } } @@ -11444,11 +11360,11 @@ "parameters": [], "responses": { "200": { - "description": "Required Table and Worksheet TML's are successfully generated.", + "description": "Successfully configured local repository", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/RepoConfigObject" } } } @@ -11496,13 +11412,13 @@ } } }, - "/api/rest/2.0/dbt/generate-sync-tml": { + "/api/rest/2.0/vcs/git/config/delete": { "post": { - "operationId": "dbtGenerateSyncTml", - "description": "\n Version: 9.9.0.cl or later\n\nResynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteConfig", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "DBT", - "9.9.0.cl" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -11510,19 +11426,12 @@ "schema": { "type": "object", "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT connection.", - "type": "string" - }, - "file_content": { - "description": "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’", - "type": "string", - "format": "binary" + "cluster_level": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nIndicator 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", + "type": "boolean", + "nullable": true } - }, - "required": [ - "dbt_connection_identifier" - ] + } } } }, @@ -11530,15 +11439,8 @@ }, "parameters": [], "responses": { - "200": { - "description": "Sync Table and Worksheet TML's are successfully generated.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } + "204": { + "description": "Successfully deleted local repository configuration" }, "400": { "description": "Invalid request.", @@ -11583,24 +11485,66 @@ } } }, - "/api/rest/2.0/dbt/search": { + "/api/rest/2.0/vcs/git/commits/deploy": { "post": { - "operationId": "dbtSearch", - "description": "\n Version: 9.9.0.cl or later\n\nGets a list of DBT connection objects by user and organization, available on the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About search DBT connection\nTo 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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deployCommit", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "DBT", - "9.9.0.cl" + "Version Control", + "9.2.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "description": " Commit_id against which the files should be picked to deploy.\n \n\nNote: If no commit_id is specified, then the head of the branch is considered.", + "type": "string" + }, + "branch_name": { + "description": "Name of the remote branch where changes should be picked", + "type": "string" + }, + "deploy_type": { + "description": "Indicates if all files or only modified file at specified commit point should be considered", + "default": "DELTA", + "type": "string", + "enum": [ + "FULL", + "DELTA" + ] + }, + "deploy_policy": { + "description": "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.", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL", + "VALIDATE_ONLY" + ] + } + }, + "required": [ + "branch_name" + ] + } + } + }, + "required": true + }, "parameters": [], "responses": { "200": { - "description": "Retrieved list of DBT connections successfully.", + "description": "Successfully deployed the changes", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/DbtSearchResponse" + "$ref": "#/components/schemas/DeployResponse" } } } @@ -11649,28 +11593,67 @@ } } }, - "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete": { + "/api/rest/2.0/vcs/git/commits/{commit_id}/revert": { "post": { - "operationId": "deleteDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nRemoves the specified DBT connection object from the ThoughtSpot system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n\n\n\n#### Endpoint URL\n", + "operationId": "revertCommit", + "description": "\n Version: 9.2.0.cl or later\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn 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.\n\nBy 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.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "DBT", - "9.9.0.cl" + "Version Control", + "9.2.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataObject" + } + }, + "branch_name": { + "description": " Name of the branch where the reverted version should be committed\n \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered.", + "type": "string" + }, + "revert_policy": { + "description": "Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]", + "default": "ALL_OR_NONE", + "type": "string", + "enum": [ + "ALL_OR_NONE", + "PARTIAL" + ] + } + } + } + } + }, + "required": true + }, "parameters": [ { "in": "path", - "name": "dbt_connection_identifier", + "name": "commit_id", "required": true, "schema": { "type": "string" }, - "description": "Unique ID of the DBT Connection." + "description": "Commit id to which the object should be reverted" } ], "responses": { - "204": { - "description": "DBT Connection successfully deleted." + "200": { + "description": "Reverted the object to the commit point specified", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevertResponse" + } + } + } }, "400": { "description": "Invalid request.", @@ -11715,13 +11698,13 @@ } } }, - "/api/rest/2.0/dbt/update-dbt-connection": { + "/api/rest/2.0/vcs/git/commits/search": { "post": { - "operationId": "updateDbtConnection", - "description": "\n Version: 9.9.0.cl or later\n\nUpdates a DBT connection object.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required:\n\n- `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**)\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**)\n\n#### About update DBT connection\nYou 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.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchCommits", + "description": "\n Version: 9.2.0.cl or later\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "DBT", - "9.9.0.cl" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -11729,59 +11712,37 @@ "schema": { "type": "object", "properties": { - "dbt_connection_identifier": { - "description": "Unique ID of the DBT Connection.", - "type": "string" - }, - "connection_name": { - "description": "Name of the connection.", - "type": "string" - }, - "database_name": { - "description": "Name of the Database.", + "metadata_identifier": { + "description": "Unique ID or name of the metadata.", "type": "string" }, - "import_type": { - "description": "Mention type of Import", - "default": "DBT_CLOUD", + "metadata_type": { + "description": "Type of metadata.", "type": "string", "enum": [ - "DBT_CLOUD", - "ZIP_FILE" + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "CUSTOM_ACTION" ] }, - "access_token": { - "description": "Access token is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "dbt_url": { - "description": "DBT URL is mandatory when Import_Type is DBT_CLOUD.", - "type": "string" - }, - "account_id": { - "description": "Account ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "project_id": { - "description": "Project ID is mandatory when Import_Type is DBT_CLOUD", - "type": "string" - }, - "dbt_env_id": { - "description": "DBT Environment ID\"", + "branch_name": { + "description": " Name of the branch from which commit history needs to be displayed.\n \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration.", "type": "string" }, - "project_name": { - "description": "Name of the project", - "type": "string" + "record_offset": { + "description": " Record offset point in the commit history to display the response.\n \n\nNote: If no record offset is specified, the beginning of the record will be considered.", + "type": "integer", + "format": "int32" }, - "file_content": { - "description": "Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is 'ZIP_FILE'", - "type": "string", - "format": "binary" + "record_size": { + "description": " Number of history records from record offset point to be displayed in the response.\n \n\nNote: If no record size is specified, then all the records will be considered.", + "type": "integer", + "format": "int32" } }, "required": [ - "dbt_connection_identifier" + "metadata_identifier" ] } } @@ -11791,11 +11752,14 @@ "parameters": [], "responses": { "200": { - "description": "DBT Connection successfully updated.", + "description": "Commit history of the metadata object", "content": { "application/json": { "schema": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/CommitHistoryResponse" + } } } } @@ -11843,13 +11807,13 @@ } } }, - "/api/rest/2.0/ai/conversation/create": { + "/api/rest/2.0/vcs/git/config/search": { "post": { - "operationId": "createConversation", - "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchConfig", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "AI", - "10.4.0.cl" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -11857,18 +11821,14 @@ "schema": { "type": "object", "properties": { - "metadata_identifier": { - "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation.", - "type": "string" - }, - "tokens": { - "description": "Token string to set the context for the conversation. For example,`[sales],[item type],[state]`.", - "type": "string" + "org_identifiers": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "array", + "items": { + "type": "string" + } } - }, - "required": [ - "metadata_identifier" - ] + } } } }, @@ -11877,27 +11837,40 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Details of local repository configuration", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Conversation" + "type": "array", + "items": { + "$ref": "#/components/schemas/RepoConfigObject" + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Conversation" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -11907,7 +11880,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -11919,13 +11892,13 @@ } } }, - "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse": { + "/api/rest/2.0/vcs/git/config/update": { "post": { - "operationId": "sendMessage", - "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateConfig", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "AI", - "10.4.0.cl" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -11933,64 +11906,78 @@ "schema": { "type": "object", "properties": { - "metadata_identifier": { - "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation.", + "username": { + "description": "Username to authenticate connection to version control system", "type": "string" }, - "message": { - "description": "A message string with the follow-up question to continue the conversation.", + "access_token": { + "description": "Access token corresponding to the user to authenticate connection to version control system", + "type": "string" + }, + "org_identifier": { + "description": " Applicable when Orgs is enabled in the cluster\n \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n \n\nNote: 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", + "type": "string" + }, + "branch_names": { + "description": "List the remote branches to configure. Example:[development, production]", + "type": "array", + "items": { + "type": "string" + } + }, + "commit_branch_name": { + "description": "Name of the remote branch where objects from this Thoughtspot instance will be versioned.
Version: 9.7.0.cl or later", + "type": "string" + }, + "enable_guid_mapping": { + "description": "Maintain mapping of guid for the deployment to an instance
Version: 9.4.0.cl or later", + "type": "boolean", + "nullable": true + }, + "configuration_branch_name": { + "description": "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", "type": "string" } - }, - "required": [ - "metadata_identifier", - "message" - ] + } } } }, "required": true }, - "parameters": [ - { - "in": "path", - "name": "conversation_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique identifier of the conversation." - } - ], + "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "Successfully updated local repository configuration", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseMessage" - } + "$ref": "#/components/schemas/RepoConfigObject" } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResponseMessage" - } + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -12000,7 +11987,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { @@ -12012,13 +11999,13 @@ } } }, - "/api/rest/2.0/ai/answer/create": { + "/api/rest/2.0/vcs/git/branches/validate": { "post": { - "operationId": "singleAnswer", - "description": "\nBeta Version: 10.4.0.cl or later\n\nProcesses a natural language query and returns an AI-generated response based on a specified data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "validateMerge", + "description": "\n Version: 9.2.0.cl or later\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore 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.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "AI", - "10.4.0.cl" + "Version Control", + "9.2.0.cl" ], "requestBody": { "content": { @@ -12026,18 +12013,18 @@ "schema": { "type": "object", "properties": { - "query": { - "description": "A natural language query string to generate the Answer.", + "source_branch_name": { + "description": "Name of the branch from which changes need to be picked for validation", "type": "string" }, - "metadata_identifier": { - "description": "ID of the metadata object, such as a Worksheet or Model, to use as a data source for the query.", + "target_branch_name": { + "description": "Name of the branch where files will be merged", "type": "string" } }, "required": [ - "query", - "metadata_identifier" + "source_branch_name", + "target_branch_name" ] } } @@ -12047,27 +12034,40 @@ "parameters": [], "responses": { "200": { - "description": "Common successful response", + "description": "validation done successfully", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseMessage" + "type": "array", + "items": { + "$ref": "#/components/schemas/DeployResponse" + } } } } }, - "201": { - "description": "Common error response", + "400": { + "description": "Invalid request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ResponseMessage" + "$ref": "#/components/schemas/ErrorResponse" } } } }, - "400": { - "description": "Operation failed", + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", "content": { "application/json": { "schema": { @@ -12077,7 +12077,7 @@ } }, "500": { - "description": "Operation failed", + "description": "Unexpected error", "content": { "application/json": { "schema": { From f28d1468303e5b6cbdffc9379a544a1f7e1e1ed2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 8 Jan 2025 10:18:54 +0000 Subject: [PATCH 231/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b679616ff..c5f5979c6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5446,7 +5446,10 @@ "description": "Unique ID or name of the organization.", "type": "string" } - } + }, + "required": [ + "headers_update" + ] } } }, From ee648292afdbe2c50b353e83e18390957cf7d20e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 13 Jan 2025 19:55:18 +0000 Subject: [PATCH 232/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 736 ++++++++++++++++---------------- 1 file changed, 368 insertions(+), 368 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c5f5979c6..c6cc032fc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2453,6 +2453,367 @@ } } }, + "/api/rest/2.0/metadata/answer/data": { + "post": { + "operationId": "fetchAnswerData", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer and the `DATADOWNLOADING` privilege.\n\nThe `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).\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Answer.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnswerDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/metadata/liveboard/data": { + "post": { + "operationId": "fetchLiveboardData", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nIn 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.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_identifier": { + "description": "GUID or name of the Liveboard.", + "type": "string" + }, + "visualization_identifiers": { + "description": "GUIDs or names of the visualizations on the Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_content": { + "description": "Transient content of the Liveboard.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "metadata_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveboardDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/searchdata": { + "post": { + "operationId": "searchData", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View) and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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).\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Data", + "9.0.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query_string": { + "description": "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)", + "type": "string" + }, + "logical_table_identifier": { + "description": "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.", + "type": "string" + }, + "data_format": { + "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", + "default": "COMPACT", + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ] + }, + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records to include in a batch.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "runtime_filter": { + "description": "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": "object" + }, + "runtime_sort": { + "description": "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).", + "type": "object" + }, + "runtime_param_override": { + "description": "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).", + "type": "object" + } + }, + "required": [ + "query_string", + "logical_table_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching data of specified metadata object is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchDataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/dbt/dbt-connection": { "post": { "operationId": "dbtConnection", @@ -4352,129 +4713,14 @@ "nullable": true }, "all_orgs_override": { - "description": "Indicates whether to export is happening from all orgs context.", - "default": false, - "type": "boolean", - "nullable": true - } - }, - "required": [ - "metadata_type" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Export TMLs of specified metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/metadata/answer/data": { - "post": { - "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer and the `DATADOWNLOADING` privilege.\n\nThe `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).\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Answer.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" + "description": "Indicates whether to export is happening from all orgs context.", + "default": false, + "type": "boolean", + "nullable": true } }, "required": [ - "metadata_identifier" + "metadata_type" ] } } @@ -4484,11 +4730,11 @@ "parameters": [], "responses": { "200": { - "description": "Fetching data of specified metadata object is successful.", + "description": "Export TMLs of specified metadata objects is successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AnswerDataResponse" + "type": "object" } } } @@ -4735,132 +4981,6 @@ } } }, - "/api/rest/2.0/metadata/liveboard/data": { - "post": { - "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nIn 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.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_identifier": { - "description": "GUID or name of the Liveboard.", - "type": "string" - }, - "visualization_identifiers": { - "description": "GUIDs or names of the visualizations on the Liveboard.", - "type": "array", - "items": { - "type": "string" - } - }, - "transient_content": { - "description": "Transient content of the Liveboard.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "metadata_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LiveboardDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/metadata/liveboard/sql": { "post": { "operationId": "fetchLiveboardSqlQuery", @@ -8421,126 +8541,6 @@ } } }, - "/api/rest/2.0/searchdata": { - "post": { - "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View) and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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).\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Data", - "9.0.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "query_string": { - "description": "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)", - "type": "string" - }, - "logical_table_identifier": { - "description": "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.", - "type": "string" - }, - "data_format": { - "description": "JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later.", - "default": "COMPACT", - "type": "string", - "enum": [ - "FULL", - "COMPACT" - ] - }, - "record_offset": { - "description": "The starting record number from where the records should be included.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records to include in a batch.", - "default": 10, - "type": "integer", - "format": "int32" - }, - "runtime_filter": { - "description": "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": "object" - }, - "runtime_sort": { - "description": "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).", - "type": "object" - }, - "runtime_param_override": { - "description": "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).", - "type": "object" - } - }, - "required": [ - "query_string", - "logical_table_identifier" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching data of specified metadata object is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchDataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/security/metadata/assign": { "post": { "operationId": "assignChangeAuthor", From 391adb8b4476b788fd22efb10789cfda1d7d5a90 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 22 Jan 2025 10:46:50 +0000 Subject: [PATCH 233/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c6cc032fc..7883b97f4 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -524,6 +524,18 @@ "RESET" ] }, + "reset_option": { + "description": "Indicates whether the specified attributes should reset which field.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "FILTER_RULES", + "PARAMETERS", + "GROUPS" + ] + } + }, "filter_rules": { "description": "Filter rules.", "type": "array", From 5642b3ed72704a6abf0c83ed02fbf9987e028aa8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 25 Jan 2025 05:14:26 +0000 Subject: [PATCH 234/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 197 ++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7883b97f4..b16ed88a6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -180,6 +180,116 @@ } } }, + "/api/rest/2.0/ai/analytical-questions": { + "post": { + "operationId": "queryGetDecomposedQuery", + "description": "Beta Version: 10.7.0.cl or later", + "tags": [ + "AI", + "10.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "answerIds": { + "description": "List of answer unique identifiers (GUIDs) whose data will be used to guide the response.", + "type": "array", + "items": { + "type": "string" + } + }, + "content": { + "description": "User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.", + "type": "array", + "items": { + "type": "string" + } + }, + "conversationId": { + "description": "Unique identifier to denote current conversation.", + "type": "string" + }, + "liveboardIds": { + "description": "List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response.", + "type": "array", + "items": { + "type": "string" + } + }, + "maxDecomposedQueries": { + "description": "Maximum number of decomposed queries that is allowed in the response, default = 5.", + "type": "integer", + "format": "int32" + }, + "nlsRequest": { + "description": "NLSRequest object containing user query & instructions.", + "allOf": [ + { + "$ref": "#/components/schemas/Input_eureka_NLSRequest" + } + ] + }, + "worksheetIds": { + "description": "List of worksheetIds to provide context for decomposing user query into analytical queries that can be run on them.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_DecomposeQueryResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_DecomposeQueryResponse" + } + } + } + }, + "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/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", @@ -14863,6 +14973,93 @@ }, "description": "MetadataType InputType used in Custom Action API's" }, + "Input_eureka_NLSRequest": { + "type": "object", + "properties": { + "agentVersion": { + "type": "integer", + "format": "int32", + "description": "Cluster version like 10.4.0.cl, 10.5.0.cl, so on.", + "nullable": true + }, + "bypassCache": { + "type": "boolean", + "description": "If true, results are not returned from cache & calculated every time. Can incur high costs & latency.", + "nullable": true + }, + "instructions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User specific instructions for processing the @query.", + "nullable": true + }, + "query": { + "type": "string", + "description": "User query which is a topical/goal oriented question that needs to be broken down into smaller simple analytical questions.", + "nullable": true + } + } + }, + "eureka_DecomposeQueryResponse": { + "type": "object", + "properties": { + "decomposedQueryResponse": { + "$ref": "#/components/schemas/eureka_LLMDecomposeQueryResponse", + "description": "Decomposed query response for a topical/goal oriented question that contains broken down analytical questions.", + "nullable": true + } + } + }, + "eureka_LLMDecomposeQueryResponse": { + "type": "object", + "properties": { + "decomposedQueries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/eureka_LLMSuggestedQuery" + }, + "description": "List of analytical questions that can be run on their respective worksheet/data sources.", + "nullable": true + } + } + }, + "eureka_LLMSuggestedQuery": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "NL query that can be run using spotter aka natural language search to get an AI generated answer.", + "nullable": true + }, + "worksheetId": { + "type": "string", + "description": "Unique identifier of the worksheet on which this query can be run on.", + "nullable": true + }, + "worksheetName": { + "type": "string", + "description": "Display name of the worksheet on which this query can be run on.", + "nullable": true + } + } + }, + "RiseGQLArgWrapper": { + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, "GenericInfo": { "type": "object", "properties": { From df3d74267dd1b65f3d5880c0d4132270d8004ced Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 30 Jan 2025 08:56:38 +0000 Subject: [PATCH 235/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b16ed88a6..cefa341dc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -589,7 +589,7 @@ "/api/rest/2.0/auth/token/custom": { "post": { "operationId": "getCustomAccessToken", - "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "10.4.0.cl" @@ -757,7 +757,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -890,7 +890,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -6456,7 +6456,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "PREVIEW_THOUGHTSPOT_SAGE" ] } }, @@ -15203,7 +15204,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", "nullable": true }, "identifier": { @@ -15547,7 +15548,7 @@ "ANSWER", "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", "nullable": true }, "identifier": { @@ -16733,7 +16734,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "PREVIEW_THOUGHTSPOT_SAGE" ] }, "description": "Privileges granted to the role." From ca5af7c24fbe348a48d4f1076cbcd09abd96e61c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 31 Jan 2025 04:56:23 +0000 Subject: [PATCH 236/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cefa341dc..623eb9e92 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4642,7 +4642,7 @@ "/api/rest/2.0/metadata/tml/export": { "post": { "operationId": "exportMetadataTML", - "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml).\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n* 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.\n* 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.\n\nFor more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml).\n\nFor more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback).\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -15980,6 +15980,12 @@ "default": false, "description": "Boolean flag to whether to export user_defined_id of the object. This will only be respected when UserDefinedId in TML is enabled.", "nullable": true + }, + "export_with_associated_feedbacks": { + "type": "boolean", + "default": false, + "description": "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", + "nullable": true } }, "description": "Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled." @@ -16274,7 +16280,8 @@ "CUSTOM_ACTION", "USER", "USER_GROUP", - "ROLE" + "ROLE", + "FEEDBACK" ], "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", "nullable": true From 79a07eaa090dcce413ec0f3945fc258f2484570d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 3 Feb 2025 02:42:58 +0000 Subject: [PATCH 237/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 623eb9e92..b7b568025 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5450,7 +5450,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5598,6 +5598,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "include_discoverable_objects": { + "description": "Indicates whether to include discoverable metadata objects.\nIf lenient OSM is not enabled, then even though the includeDiscoverableObjects is set to True, we won't see discoverable objects.", + "default": true, + "type": "boolean", + "nullable": true } } } From 428fc0e5bb01cfaa037350ebc72177ae80ae4219 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 6 Feb 2025 06:25:13 +0000 Subject: [PATCH 238/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b7b568025..16201a300 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3567,7 +3567,6 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "RANALYSIS", "DEVELOPER", @@ -4110,7 +4109,6 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "RANALYSIS", "DEVELOPER", @@ -6436,7 +6434,6 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "DISABLE_PINBOARD_CREATION", "DEVELOPER", @@ -6821,7 +6818,6 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "DISABLE_PINBOARD_CREATION", "DEVELOPER", @@ -15876,7 +15872,6 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "RANALYSIS", "DEVELOPER", @@ -16721,7 +16716,6 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", - "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "DISABLE_PINBOARD_CREATION", "DEVELOPER", From d51f89a4634e5329140ca1be5f4186af03efbfef Mon Sep 17 00:00:00 2001 From: ruchI9897 <59597701+ruchI9897@users.noreply.github.com> Date: Tue, 11 Feb 2025 11:53:54 +0530 Subject: [PATCH 239/410] Overriding hosted-api-docs css (#205) --- api-playground/static/styles/overrides.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-playground/static/styles/overrides.css b/api-playground/static/styles/overrides.css index f25ca0347..94e743ea7 100644 --- a/api-playground/static/styles/overrides.css +++ b/api-playground/static/styles/overrides.css @@ -17,6 +17,11 @@ .portal-header { background: #323946 } + +.hosted-api-docs{ + height: calc(100vh - 24px); +} + .branding-container .logo p { color: #eaedf2 } From 17c20da60f84a0f4c370a5868e7bfe80e95347f6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 11 Feb 2025 10:40:12 +0000 Subject: [PATCH 240/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 16201a300..d1e188467 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13279,6 +13279,11 @@ ], "description": "Type of the metadata." }, + "metadata_obj_id": { + "type": "string", + "description": "Custom identifier of the metadata", + "nullable": true + }, "dependent_objects": { "type": "object", "description": "Details of dependent objects of the metadata objects.", From d7d2c842184d9200ec4e44defbcc5e3073f74c95 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 13 Feb 2025 03:52:40 +0000 Subject: [PATCH 241/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d1e188467..65a7152bb 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6202,7 +6202,7 @@ "type": "object" }, "regional_settings": { - "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", + "description": "Options for specific region specific overrides to support date/number/string/currency formatting.", "allOf": [ { "$ref": "#/components/schemas/RegionalSettingsInput" @@ -6333,7 +6333,7 @@ "type": "object" }, "regional_settings": { - "description": "Options for specific region speciic overrides to support date/number/string/currency formatting.", + "description": "Options for specific region specific overrides to support date/number/string/currency formatting.", "allOf": [ { "$ref": "#/components/schemas/RegionalSettingsInput" From fbca6a068a78b743dec94d7fee515a54e4a08ac8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 13 Feb 2025 10:43:17 +0000 Subject: [PATCH 242/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 65a7152bb..583d5ae4d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5571,7 +5571,7 @@ "format": "int32" }, "record_size": { - "description": "The number of records that should be included.", + "description": "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.", "default": 10, "type": "integer", "format": "int32" From 224391fdc59975c197f0322fa826acc191e1262b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 21 Feb 2025 12:31:58 +0000 Subject: [PATCH 243/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 583d5ae4d..7fd083185 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5234,12 +5234,6 @@ "type": "boolean", "nullable": true }, - "skip_cdw_validation_for_tables": { - "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", - "default": false, - "type": "boolean", - "nullable": true - }, "skip_diff_check": { "description": "
Version: 10.6.0.cl or later
\n\nBoolean Flag to skip TML diff check before processing object TMLs.", "default": false, @@ -5352,12 +5346,6 @@ "type": "boolean", "nullable": true }, - "skip_cdw_validation_for_tables": { - "description": "Boolean to indicate if the CDW validation for table imports should be skipped.", - "default": false, - "type": "boolean", - "nullable": true - }, "import_policy": { "description": "
Version: 10.5.0.cl or later
\n\nPolicy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE]", "default": "PARTIAL_OBJECT", @@ -13281,7 +13269,7 @@ }, "metadata_obj_id": { "type": "string", - "description": "Custom identifier of the metadata", + "description": "Custom identifier of the metadata.\n(Available from 10.8.0.cl onwards)", "nullable": true }, "dependent_objects": { From 9d40abdea25dcff5bdd2820798271ed85a8fc68b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 26 Feb 2025 05:32:39 +0000 Subject: [PATCH 244/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 124 ++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7fd083185..73813e120 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -69,6 +69,14 @@ ], "description": "Roles for version 10.6.0.cl" }, + { + "name": "10.8.0.cl", + "id": "10.8.0.cl", + "tags": [ + "10.8.0.cl" + ], + "description": "Roles for version 10.8.0.cl" + }, { "name": "9.9.0.cl", "id": "9.9.0.cl", @@ -5737,6 +5745,84 @@ } } }, + "/api/rest/2.0/metadata/update-obj-id": { + "post": { + "operationId": "updateMetadataObjId", + "description": "\nUpdate object IDs for given metadata objects.
Beta Version: 10.8.0.cl or later\n\n## Prerequisites\n- **Privileges Required:**\n - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot).\n- **Additional Privileges (if RBAC is enabled):**\n - `ORG_ADMINISTRATION` (Can manage orgs).\n\n---\n\n## Usage Guidelines\n\n### Parameters\n\n1. **metadata** \n - **Description:** List of metadata objects to update their object IDs.\n - **Usage:**\n - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed).\n - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID.\n - The `new_obj_id` field is always required.\n\n---\n\n## Note\nThis API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes.\n\n## Best Practices\n\n1. **Backup Before Update:** \n Always export metadata as a backup before initiating the update process.\n\n2. **Validation:**\n - When using `current_obj_id`, ensure it matches the existing object ID exactly.\n - When using `metadata_identifier` with a name, ensure the `type` is specified correctly.\n - Verify that the `new_obj_id` follows your naming conventions and is unique within your system.\n\n---\n\n## Examples\n\n### Using current_obj_id\n```json\n{\n \"metadata\": [\n {\n \"current_obj_id\": \"existing_object_id\",\n \"new_obj_id\": \"new_object_id\"\n }\n ]\n}\n```\n\n### Using metadata_identifier with GUID\n```json\n{\n \"metadata\": [\n {\n \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\",\n \"new_obj_id\": \"new_object_id\"\n }\n ]\n}\n```\n\n### Using metadata_identifier with name and type\n```json\n{\n \"metadata\": [\n {\n \"metadata_identifier\": \"My Answer\",\n \"type\": \"ANSWER\",\n \"new_obj_id\": \"new_object_id\"\n }\n ]\n}\n```\n\n### Multiple objects update\n```json\n{\n \"metadata\": [\n {\n \"current_obj_id\": \"existing_object_id_1\",\n \"new_obj_id\": \"new_object_id_1\"\n },\n {\n \"metadata_identifier\": \"My Worksheet\",\n \"type\": \"LOGICAL_TABLE\",\n \"new_obj_id\": \"new_object_id_2\"\n }\n ]\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Metadata", + "10.8.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "List of metadata objects to update their object IDs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/UpdateObjIdInput" + } + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Headers update was successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/orgs/create": { "post": { "operationId": "createOrg", @@ -16258,6 +16344,44 @@ }, "description": "Attribute to update in a header." }, + "UpdateObjIdInput": { + "type": "object", + "required": [ + "new_obj_id" + ], + "properties": { + "metadata_identifier": { + "type": "string", + "description": "GUID or name of the metadata object.", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "LIVEBOARD", + "ACTION_OBJECT", + "DATA_SOURCE", + "USER", + "USER_GROUP" + ], + "description": "Type of metadata. Required if metadata_identifier is name of the object.", + "nullable": true + }, + "current_obj_id": { + "type": "string", + "description": "Current object ID value.", + "nullable": true + }, + "new_obj_id": { + "type": "string", + "description": "New object ID value to set." + } + }, + "description": "Input for updating object ID of a metadata object." + }, "ExportMetadataTypeInput": { "type": "object", "required": [ From 756511ebd9e301b0392a43a5bfce6fc6a606c7e6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 27 Feb 2025 05:25:01 +0000 Subject: [PATCH 245/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 73813e120..b974aad2b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -642,18 +642,6 @@ "RESET" ] }, - "reset_option": { - "description": "Indicates whether the specified attributes should reset which field.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "FILTER_RULES", - "PARAMETERS", - "GROUPS" - ] - } - }, "filter_rules": { "description": "Filter rules.", "type": "array", From 922b0eff2601e3803c26839c6fa3592f3bf0d53a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 4 Mar 2025 14:36:44 +0000 Subject: [PATCH 246/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b974aad2b..1a319efb5 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6331,7 +6331,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\nYou can provide override filters in the data options to override the existing filters on the Liveboard. \n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -6370,6 +6370,10 @@ "description": "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).", "type": "object" }, + "override_filters": { + "description": "Applied to the liveboard and overrides any filters already applied on the same columns in liveboard.\nFollowing example illustrate different kinds of filters:\n{\n \"override_filters\": [\n {\n \"column_name\": \"Color\",\n \"generic_filter\": {\n \"op\": \"IN\",\n \"values\": [\n \"almond\",\n \"turquoise\"\n ]\n },\n \"negate\": false\n },\n {\n \"column_name\": \"Commit Date\",\n \"date_filter\": {\n \"datePeriod\": \"HOUR\",\n \"number\": 3,\n \"type\": \"LAST_N_PERIOD\",\n \"op\": \"EQ\"\n }\n },\n {\n \"column_name\": \"Sales\",\n \"generic_filter\": {\n \"op\": \"BW_INC\",\n \"values\": [\n \"100000\",\n \"70000\"\n ]\n },\n \"negate\": true\n }\n ]\n}", + "type": "object" + }, "runtime_sort": { "description": "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).", "type": "object" From 4f752816d73a03ec59bcb21a2a15afd8324edbf8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 13 Mar 2025 04:47:47 +0000 Subject: [PATCH 247/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 1a319efb5..f82032362 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -10445,7 +10445,10 @@ "nl-NL", "it-IT", "ru-RU", - "en-IN" + "en-IN", + "de-CH", + "en_NZ", + "es-MX" ] }, "extended_properties": { @@ -11314,7 +11317,10 @@ "nl-NL", "it-IT", "ru-RU", - "en-IN" + "en-IN", + "de-CH", + "en_NZ", + "es-MX" ] }, "extended_properties": { @@ -13905,7 +13911,10 @@ "nl-NL", "it-IT", "ru-RU", - "en-IN" + "en-IN", + "de-CH", + "en_NZ", + "es-MX" ] }, "number_format_locale": { @@ -13932,7 +13941,10 @@ "nl-NL", "it-IT", "ru-RU", - "en-IN" + "en-IN", + "de-CH", + "en_NZ", + "es-MX" ] }, "date_format_locale": { @@ -13959,7 +13971,10 @@ "nl-NL", "it-IT", "ru-RU", - "en-IN" + "en-IN", + "de-CH", + "en_NZ", + "es-MX" ] } } From 93294ac6db6a2a6ceae8121446b255ae40598692 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 13 Mar 2025 07:08:48 +0000 Subject: [PATCH 248/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f82032362..0b12853a2 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5224,7 +5224,7 @@ "type": "boolean", "nullable": true }, - "all_orgs_context": { + "all_orgs_override": { "description": "If import is happening from all orgs context.", "default": false, "type": "boolean", @@ -5336,7 +5336,7 @@ "type": "boolean", "nullable": true }, - "all_orgs_context": { + "all_orgs_override": { "description": "If import is happening from all orgs context.", "default": false, "type": "boolean", From 54c92121b0183000fd6ee20f40f1912621657d4f Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 17 Mar 2025 06:19:14 +0000 Subject: [PATCH 249/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 40 ++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0b12853a2..ef70d8bba 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -10447,8 +10447,12 @@ "ru-RU", "en-IN", "de-CH", - "en_NZ", - "es-MX" + "en-NZ", + "es-MX", + "en-AU", + "zh-Hant", + "ko-KR", + "en-DE" ] }, "extended_properties": { @@ -11319,8 +11323,12 @@ "ru-RU", "en-IN", "de-CH", - "en_NZ", - "es-MX" + "en-NZ", + "es-MX", + "en-AU", + "zh-Hant", + "ko-KR", + "en-DE" ] }, "extended_properties": { @@ -13913,8 +13921,12 @@ "ru-RU", "en-IN", "de-CH", - "en_NZ", - "es-MX" + "en-NZ", + "es-MX", + "en-AU", + "zh-Hant", + "ko-KR", + "en-DE" ] }, "number_format_locale": { @@ -13943,8 +13955,12 @@ "ru-RU", "en-IN", "de-CH", - "en_NZ", - "es-MX" + "en-NZ", + "es-MX", + "en-AU", + "zh-Hant", + "ko-KR", + "en-DE" ] }, "date_format_locale": { @@ -13973,8 +13989,12 @@ "ru-RU", "en-IN", "de-CH", - "en_NZ", - "es-MX" + "en-NZ", + "es-MX", + "en-AU", + "zh-Hant", + "ko-KR", + "en-DE" ] } } From 9cf284c2b5999187d454e8cbeb362112728356d1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 18 Mar 2025 17:09:17 +0000 Subject: [PATCH 250/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ef70d8bba..684fbcf13 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16073,19 +16073,19 @@ "include_obj_id_ref": { "type": "boolean", "default": false, - "description": "Boolean Flag to whether to export user_defined_id of referenced object. This will only be respected when UserDefinedId in TML is enabled.", + "description": "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.", "nullable": true }, "include_guid": { "type": "boolean", "default": true, - "description": "Boolean flag to whether to export guid of the object. This will only be respected when UserDefinedId in TML is enabled.", + "description": "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.", "nullable": true }, "include_obj_id": { "type": "boolean", "default": false, - "description": "Boolean flag to whether to export user_defined_id of the object. This will only be respected when UserDefinedId in TML is enabled.", + "description": "Boolean flag to export Object ID of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature.", "nullable": true }, "export_with_associated_feedbacks": { From 1f9ae952b723bd173ef1d39bdbc6feb6f69bb606 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 20 Mar 2025 11:03:40 +0000 Subject: [PATCH 251/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 684fbcf13..7d1595c37 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1457,7 +1457,7 @@ "/api/rest/2.0/connection/delete": { "post": { "operationId": "deleteConnection", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes a connection object.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\n\n**Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the\n[Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. \n\n#### Usage guidelines\n\nDeletes a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n**Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation.\n\n\n\n#### Endpoint URL\n", "deprecated": true, "tags": [ "Connections", @@ -1927,7 +1927,7 @@ "/api/rest/2.0/connection/update": { "post": { "operationId": "updateConnection", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\n**Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the\n[Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects.\n\n#### Usage guidelines\n\nUpdates a connection object. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", "deprecated": true, "tags": [ "Connections", From c0fb1f248d026c8b627ce06507d6bb885adb105e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 24 Mar 2025 10:03:02 +0000 Subject: [PATCH 252/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7d1595c37..944a5db03 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -15254,8 +15254,7 @@ "type": { "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER" + "LOGICAL_TABLE" ], "nullable": true } @@ -15308,8 +15307,6 @@ "type": { "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER", "LOGICAL_TABLE" ], "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", @@ -15652,8 +15649,6 @@ "type": { "type": "string", "enum": [ - "LIVEBOARD", - "ANSWER", "LOGICAL_TABLE" ], "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", From 8cb2976ee47fe422c172fdbb46c6efa4c30df29d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 24 Mar 2025 15:09:05 +0000 Subject: [PATCH 253/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 944a5db03..4019a64b2 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4781,7 +4781,7 @@ "/api/rest/2.0/metadata/tml/export/batch": { "post": { "operationId": "exportMetadataTMLBatched", - "description": "\n Version: 10.1.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\n#### Usage guidelines\n\n* You can export one or several objects by passing metadata object GUIDs in the `metadata` array.\n* 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.\n* 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.1.0.cl or later\n\nExports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format.\n\n### **Permissions Required**\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges.\n\n#### **Usage Guidelines**\n\nThis API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types.\n\n- `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently.\n- `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance.\n- `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format.\n- `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed.\n- `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.1.0.cl" From be195494f2d070d87baadf8f7f22d5c9bc6a0883 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 2 Apr 2025 09:58:34 +0000 Subject: [PATCH 254/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4019a64b2..17f8facc6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -809,14 +809,6 @@ "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": [ @@ -946,14 +938,6 @@ "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": [ From dc707a6f26afc84ad7e8ff2ddad4329a63780bb8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 4 Apr 2025 06:31:13 +0000 Subject: [PATCH 255/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 17f8facc6..dfacfadb6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -9128,7 +9128,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n* Connections\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" @@ -9140,7 +9140,7 @@ "type": "object", "properties": { "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN", + "description": "Type of metadata. Required if identifier in metadata_identifies is a name.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN\n5. Connection", "type": "string", "enum": [ "LIVEBOARD", From f2c39caf9335bed68e671b2d8936aafc7953a662 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 15 Apr 2025 00:34:34 +0000 Subject: [PATCH 256/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index dfacfadb6..5f0e89d6c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2558,7 +2558,7 @@ "/api/rest/2.0/metadata/answer/data": { "post": { "operationId": "fetchAnswerData", - "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer and the `DATADOWNLOADING` privilege.\n\nThe `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).\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nFetches data from a saved Answer.\n\nRequires at least view access to the saved Answer.\n\nThe `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).\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2673,7 +2673,7 @@ "/api/rest/2.0/metadata/liveboard/data": { "post": { "operationId": "fetchLiveboardData", - "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \n\nRequires at least view access to the Liveboard and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nIn 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.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets data from a Liveboard object and its visualization. \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 get data for specific visualizations, add the GUIDs or names of the visualizations in the API request.\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. 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.\n\nFor more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api).\n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -2799,7 +2799,7 @@ "/api/rest/2.0/searchdata": { "post": { "operationId": "searchData", - "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View) and the `DATADOWNLOADING` privilege.\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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).\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGenerates an Answer from a given data source.\n\nRequires at least view access to the data source object (Worksheet or View).\n\n#### Usage guidelines\n\nTo search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view.\n\nPass search tokens in the `query_string` attribute in the API request as shown in the following example:\n\n```\n{\n \"query_string\": \"[sales] by [store]\",\n \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\",\n}\n```\n\nFor 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). \n\nThe `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). \n\n\n\n#### Endpoint URL\n", "tags": [ "Data", "9.0.0.cl" @@ -6200,7 +6200,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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).\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires at least view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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). \n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -6315,7 +6315,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports the data from a Liveboard and its visualization in a given file format. You can download the Liveboard data as a PDF, PNG, CSV, or XLSX file.\n\nRequires `DATADOWNLOADING` (**Can download data**) privilege and 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 file format, 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\nYou can provide override filters in the data options to override the existing filters on the Liveboard. \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 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\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" From ff3102c41c14534fcd0e86645e6058516f72ac30 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 16 Apr 2025 08:42:33 +0000 Subject: [PATCH 257/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5f0e89d6c..429516c6a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6330,6 +6330,17 @@ "description": "GUID or name of the Liveboard object.", "type": "string" }, + "tab_identifiers": { + "description": "GUID or name of the tab of the Liveboard object.
Version: 10.9.0.cl or later", + "type": "array", + "items": { + "type": "string" + } + }, + "personalised_view_identifier": { + "description": "GUID or name of the personalised view of the Liveboard object.
Version: 10.9.0.cl or later", + "type": "string" + }, "visualization_identifiers": { "description": "GUID or name of visualizations on the Liveboard. If this parameter is\nnot defined, the API returns a report with all visualizations saved on a Liveboard.", "type": "array", @@ -6392,7 +6403,8 @@ } }, "required": [ - "metadata_identifier" + "metadata_identifier", + "personalised_view_identifier" ] } } @@ -13632,6 +13644,24 @@ "type": "string", "description": "Indicates personalised view of the Liveboard in case of png", "nullable": true + }, + "image_resolution": { + "type": "integer", + "format": "int32", + "description": "Desired width of the Liveboard image in pixels. Ex. 1980 for Full HD image
Version: 10.9.0.cl or later", + "nullable": true + }, + "image_scale": { + "type": "integer", + "format": "int32", + "description": "The scale of the image. Ex. 1 for 100% scale.
Version: 10.9.0.cl or later", + "nullable": true + }, + "include_header": { + "type": "boolean", + "default": false, + "description": "Indicates whether to include the header of the liveboard.
Version: 10.9.0.cl or later", + "nullable": true } } }, From 6794b48eadea851e3be218411e8aaceee4593fca Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 21 Apr 2025 11:14:04 +0000 Subject: [PATCH 258/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 429516c6a..8c17f3e83 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13648,19 +13648,19 @@ "image_resolution": { "type": "integer", "format": "int32", - "description": "Desired width of the Liveboard image in pixels. Ex. 1980 for Full HD image
Version: 10.9.0.cl or later", + "description": "Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image
Beta Version: 10.9.0.cl or later", "nullable": true }, "image_scale": { "type": "integer", "format": "int32", - "description": "The scale of the image. Ex. 1 for 100% scale.
Version: 10.9.0.cl or later", + "description": "The scale of the image in percentage. Ex. 100 for 100% scale.
Beta Version: 10.9.0.cl or later", "nullable": true }, "include_header": { "type": "boolean", "default": false, - "description": "Indicates whether to include the header of the liveboard.
Version: 10.9.0.cl or later", + "description": "Indicates whether to include the header of the liveboard.
Beta Version: 10.9.0.cl or later", "nullable": true } } From abf2f7dcf01fc9a0382259895e5197075998f8a0 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 22 Apr 2025 04:49:08 +0000 Subject: [PATCH 259/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 8c17f3e83..75ac4ba30 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6403,8 +6403,7 @@ } }, "required": [ - "metadata_identifier", - "personalised_view_identifier" + "metadata_identifier" ] } } From e5f23ac295bf2afdd962f4b7c5a0d2349a3c14be Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 23 Apr 2025 07:37:35 +0000 Subject: [PATCH 260/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1288 ++++++++++++++++++++++++++++--- 1 file changed, 1174 insertions(+), 114 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 75ac4ba30..cea372f29 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -77,6 +77,14 @@ ], "description": "Roles for version 10.8.0.cl" }, + { + "name": "10.9.0.cl", + "id": "10.9.0.cl", + "tags": [ + "10.9.0.cl" + ], + "description": "Roles for version 10.9.0.cl" + }, { "name": "9.9.0.cl", "id": "9.9.0.cl", @@ -1843,6 +1851,12 @@ "OAUTH_WITH_SERVICE_PRINCIPAL", "PERSONAL_ACCESS_TOKEN" ] + }, + "resolve_parameter_values": { + "description": "Indicates whether to show resolved parameterised values for the connection.", + "default": false, + "type": "boolean", + "nullable": true } } } @@ -5413,6 +5427,108 @@ } } }, + "/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", + "tags": [ + "Metadata", + "10.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to parameterize.", + "type": "string", + "enum": [ + "LOGICAL_TABLE", + "CONNECTION" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object to parameterize.", + "type": "string" + }, + "field_type": { + "description": "Type of field in the metadata to parameterize.", + "type": "string", + "enum": [ + "ATTRIBUTE", + "CONNECTION_PROPERTY" + ] + }, + "field_name": { + "description": "Name of the field which needs to be parameterized.", + "type": "string" + }, + "variable_identifier": { + "description": "Unique ID or name of the variable to use for parameterization", + "type": "string" + } + }, + "required": [ + "metadata_identifier", + "field_type", + "field_name", + "variable_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Parameterize successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", @@ -5566,10 +5682,16 @@ "nullable": true }, "include_discoverable_objects": { - "description": "Indicates whether to include discoverable metadata objects.\nIf lenient OSM is not enabled, then even though the includeDiscoverableObjects is set to True, we won't see discoverable objects.", + "description": "
Version: 10.7.0.cl or later
\n\nBoolean to indicate whether to include discoverable metadata objects.", "default": true, "type": "boolean", "nullable": true + }, + "resolve_parameter_values": { + "description": "
Version: 10.9.0.cl or later
\n\nIndicates whether to show resolved parameterised values.", + "default": false, + "type": "boolean", + "nullable": true } } } @@ -5635,6 +5757,108 @@ } } }, + "/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", + "tags": [ + "Metadata", + "10.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata object to unparameterize.", + "type": "string", + "enum": [ + "LOGICAL_TABLE", + "CONNECTION" + ] + }, + "metadata_identifier": { + "description": "Unique ID or name of the metadata object to unparameterize.", + "type": "string" + }, + "field_type": { + "description": "Type of field in the metadata to unparameterize.", + "type": "string", + "enum": [ + "ATTRIBUTE", + "CONNECTION_PROPERTY" + ] + }, + "field_name": { + "description": "Name of the field which needs to be unparameterized.", + "type": "string" + }, + "value": { + "description": "The value to use in place of the variable for the field", + "type": "string" + } + }, + "required": [ + "metadata_identifier", + "field_type", + "field_name", + "value" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfuly removed parameters." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/metadata/headers/update": { "post": { "operationId": "updateMetadataHeader", @@ -9136,13 +9360,13 @@ } } }, - "/api/rest/2.0/security/metadata/share": { + "/api/rest/2.0/security/metadata/publish": { "post": { - "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n* Connections\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "publishMetadata", + "description": "\nBeta Version: 10.9.0.cl or later\n\nAllows publishing metadata objects across organizations in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows publishing the following types of metadata objects:\n* Liveboards\n* Answers\n* Logical Tables\n\nThis API will essentially share the objects along with it's dependencies to\nthe org admins of the orgs to which it is being published.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", - "9.0.0.cl" + "10.9.0.cl" ], "requestBody": { "content": { @@ -9150,79 +9374,29 @@ "schema": { "type": "object", "properties": { - "metadata_type": { - "description": "Type of metadata. Required if identifier in metadata_identifies is a name.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN\n5. Connection", - "type": "string", - "enum": [ - "LIVEBOARD", - "ANSWER", - "LOGICAL_TABLE", - "LOGICAL_COLUMN", - "CONNECTION" - ] - }, - "metadata_identifiers": { - "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", - "type": "array", - "items": { - "type": "string" - } - }, "metadata": { - "description": "Metadata details for sharing objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ShareMetadataTypeInput" - } - }, - "permissions": { - "description": "Permission details for sharing the objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SharePermissionsInput" - } - }, - "visualization_identifiers": { - "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "description": "Metadata objects to be published.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/PublishMetadataListItem" } }, - "emails": { - "description": "Email IDs to which notifications will be sent.", - "default": [], + "org_identifiers": { + "description": "Unique ID or name of orgs to which metadata objects should be published.", "type": "array", "items": { "type": "string" } }, - "message": { - "description": "Message to be included in notification.", - "type": "string" - }, - "enable_custom_url": { - "description": "Sends object URLs in the customized format in email notifications.", - "default": false, - "type": "boolean", - "nullable": true - }, - "notify_on_share": { - "description": "Flag to notify user when any object is shared.", - "default": true, - "type": "boolean", - "nullable": true - }, - "has_lenient_discoverability": { - "description": "Flag to make the object discoverable.", - "default": false, + "skip_validation": { + "description": "Skip validations of objects to be published.", "type": "boolean", "nullable": true } }, "required": [ - "permissions", - "message" + "metadata", + "org_identifiers" ] } } @@ -9232,7 +9406,7 @@ "parameters": [], "responses": { "204": { - "description": "Sharing metadata objects is successful." + "description": "Publishing metadata objects is successful." }, "400": { "description": "Invalid request.", @@ -9277,15 +9451,252 @@ } } }, - "/api/rest/2.0/system/config": { - "get": { - "operationId": "getSystemConfig", - "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\nIf [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.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "/api/rest/2.0/security/metadata/share": { + "post": { + "operationId": "shareMetadata", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n* Connections\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "System", + "Security", "9.0.0.cl" ], - "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_type": { + "description": "Type of metadata. Required if identifier in metadata_identifies is a name.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN\n5. Connection", + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE", + "LOGICAL_COLUMN", + "CONNECTION" + ] + }, + "metadata_identifiers": { + "description": "Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "description": "Metadata details for sharing objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShareMetadataTypeInput" + } + }, + "permissions": { + "description": "Permission details for sharing the objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SharePermissionsInput" + } + }, + "visualization_identifiers": { + "description": "Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard.", + "type": "array", + "items": { + "type": "string" + } + }, + "emails": { + "description": "Email IDs to which notifications will be sent.", + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, + "message": { + "description": "Message to be included in notification.", + "type": "string" + }, + "enable_custom_url": { + "description": "Sends object URLs in the customized format in email notifications.", + "default": false, + "type": "boolean", + "nullable": true + }, + "notify_on_share": { + "description": "Flag to notify user when any object is shared.", + "default": true, + "type": "boolean", + "nullable": true + }, + "has_lenient_discoverability": { + "description": "Flag to make the object discoverable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "permissions", + "message" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Sharing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/security/metadata/unpublish": { + "post": { + "operationId": "unpublishMetadata", + "description": "\nBeta Version: 10.9.0.cl or later\n\nAllows unpublishing metadata objects from organizations in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows unpublishing the following types of metadata objects:\n* Liveboards\n* Answers\n* Logical Tables\n\nWhen unpublishing objects, you can:\n* Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them\n* Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "10.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "force": { + "description": "Force unpublishes the object. This will break all the dependent objects in the unpublished orgs.", + "type": "boolean", + "nullable": true + }, + "include_dependencies": { + "description": "Should we unpublish all the dependencies for the objects specified.\nThe dependencies will be unpublished if no other published object is using it.", + "type": "boolean" + }, + "metadata": { + "description": "Metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PublishMetadataListItem" + } + }, + "org_identifiers": { + "description": "Unique ID or name of orgs.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "include_dependencies", + "metadata", + "org_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Unpublishing metadata objects is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/system/config": { + "get": { + "operationId": "getSystemConfig", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster.\n\nRequires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster.\nIf [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.\n\nThis API does not require any parameters to be passed in the request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "9.0.0.cl" + ], + "parameters": [], "responses": { "200": { "description": "Cluster config information.", @@ -11284,7 +11695,418 @@ } }, "operation": { - "description": "Type of update operation. Default operation type is REPLACE", + "description": "Type of update operation. Default operation type is REPLACE", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "preferred_locale": { + "description": "Locale for the user.", + "type": "string", + "enum": [ + "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" + ] + }, + "extended_properties": { + "description": "Properties for the user", + "type": "object" + }, + "extended_preferences": { + "description": "Preferences for the user", + "type": "object" + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "user_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "GUID / name of the user" + } + ], + "responses": { + "204": { + "description": "User successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/template/variables/create": { + "post": { + "operationId": "createVariable", + "description": "\nCreate a variable which can be used for parameterizing metadata objects
Beta Version: 10.9.0.cl or later\n\nAllows creating a variable which can be used for parameterizing metadata objects in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n\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 variable values (optional)\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* The variable values are invalid for the specified type \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Variable", + "10.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of variable", + "type": "string", + "enum": [ + "CONNECTION_PROPERTY", + "TABLE_MAPPING", + "CONNECTION_PROPERTY_PER_PRINCIPAL" + ] + }, + "name": { + "description": "Name of the variable. This is unique across the cluster.", + "type": "string" + }, + "sensitive": { + "description": "If the variable contains sensitive values like passwords", + "default": false, + "type": "boolean", + "nullable": true + }, + "values": { + "description": "Values of variable", + "type": "array", + "items": { + "$ref": "#/components/schemas/InputVariableValue" + } + } + }, + "required": [ + "type", + "name" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Create variable is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Variable" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/template/variables/{identifier}/delete": { + "post": { + "operationId": "deleteVariable", + "description": "\nDelete a variable
Beta Version: 10.9.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", + "tags": [ + "Variable", + "10.9.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique id or name of the variable" + } + ], + "responses": { + "204": { + "description": "Deleting the variable is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/template/variables/search": { + "post": { + "operationId": "searchVariables", + "description": "\nSearch variables
Beta Version: 10.9.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Variable", + "10.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "variable_details": { + "description": "Variable details", + "type": "array", + "items": { + "$ref": "#/components/schemas/VariableDetailInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included", + "default": 10, + "type": "integer", + "format": "int32" + }, + "output_format": { + "description": "Format in which we want the output", + "default": "METADATA_ONLY", + "type": "string", + "enum": [ + "METADATA_ONLY", + "METADATA_AND_VALUES", + "EDITABLE_METADATA_AND_VALUES" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "List of variables is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Variable" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/template/variables/{identifier}/update": { + "post": { + "operationId": "updateVariable", + "description": "\nUpdate a variable's properties
Beta Version: 10.9.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n* The variable values\n\nWhen updating variable values, you need to specify:\n* The operation to perform (ADD, REPLACE, REMOVE)\n* The new values to add/replace/remove\n\nWhen the operation is ADD, a value any pre-existing value with the same set of constraints will be replaced.\nWhen the operation is REPLACE, all values of the variable are replaced with the values specified.\nWhen the operation is REMOVE, all values with the given set of conditions are removed.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Variable", + "10.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New name of the variable if we want to rename.", + "type": "string" + }, + "operation": { + "description": "Operation to perform on the values.", "default": "REPLACE", "type": "string", "enum": [ @@ -11293,46 +12115,12 @@ "REPLACE" ] }, - "preferred_locale": { - "description": "Locale for the user.", - "type": "string", - "enum": [ - "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" - ] - }, - "extended_properties": { - "description": "Properties for the user", - "type": "object" - }, - "extended_preferences": { - "description": "Preferences for the user", - "type": "object" + "values": { + "description": "Values of variable to be updated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/InputVariableValue" + } } } } @@ -11343,17 +12131,105 @@ "parameters": [ { "in": "path", - "name": "user_identifier", + "name": "identifier", "required": true, "schema": { "type": "string" }, - "description": "GUID / name of the user" + "description": "Unique id or name of the variable to update." } ], "responses": { "204": { - "description": "User successfully updated." + "description": "Updating the variable is successful." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/template/variables/update": { + "post": { + "operationId": "updateVariableValues", + "description": "\nUpdate values for multiple variables
Beta Version: 10.9.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable. Any pre-existing values with the same conditions are replaced.\n* REPLACE - Replaces all values of a given org with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Variable", + "10.9.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "variable_updates": { + "description": "Variables and values", + "type": "array", + "items": { + "$ref": "#/components/schemas/VariableValueInput" + } + }, + "operation": { + "description": "Type of update operation", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + } + }, + "required": [ + "variable_updates", + "operation" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Updating variable values is successful." }, "400": { "description": "Invalid request.", @@ -15182,6 +16058,110 @@ } } }, + "VariableDetailInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the variable", + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "CONNECTION_PROPERTY", + "TABLE_MAPPING", + "CONNECTION_PROPERTY_PER_PRINCIPAL" + ], + "description": "Type of variable", + "nullable": true + }, + "name_pattern": { + "type": "string", + "description": "A pattern to match case-insensitive name of the variable. User % for a wildcard match", + "nullable": true + } + }, + "description": "Input for variable details in search" + }, + "Variable": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the variable" + }, + "name": { + "type": "string", + "description": "Name of the variable" + }, + "variable_type": { + "type": "string", + "enum": [ + "CONNECTION_PROPERTY", + "TABLE_MAPPING", + "CONNECTION_PROPERTY_PER_PRINCIPAL" + ], + "description": "Type of the variable", + "nullable": true + }, + "sensitive": { + "type": "boolean", + "description": "If the variable is sensitive", + "nullable": true + }, + "values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VariableValue" + }, + "description": "Values of the variable", + "nullable": true + } + }, + "description": "Variable object" + }, + "VariableValue": { + "type": "object", + "required": [ + "value", + "org_identifier" + ], + "properties": { + "value": { + "type": "string", + "description": "The value of the variable" + }, + "org_identifier": { + "type": "string", + "description": "The unique name of the org" + }, + "principal_type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type", + "nullable": true + }, + "principal_identifier": { + "type": "string", + "description": "Unique ID or name of the principal", + "nullable": true + }, + "priority": { + "type": "integer", + "format": "int32", + "description": "The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked.", + "nullable": true + } + } + }, "GenericInfo": { "type": "object", "properties": { @@ -16471,6 +17451,28 @@ }, "description": "MetadataType InputType used in Delete MetadataType API" }, + "PublishMetadataListItem": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata." + }, + "type": { + "type": "string", + "enum": [ + "LIVEBOARD", + "ANSWER", + "LOGICAL_TABLE" + ], + "description": "Type of metadata. Required if identifier is name.", + "nullable": true + } + } + }, "AuthorMetadataTypeInput": { "type": "object", "required": [ @@ -17910,6 +18912,64 @@ } } }, + "InputVariableValue": { + "type": "object", + "required": [ + "value", + "org_identifier" + ], + "properties": { + "value": { + "type": "string", + "description": "The connection property value" + }, + "org_identifier": { + "type": "string", + "description": "The unique name of the org" + }, + "principal_type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type", + "nullable": true + }, + "principal_identifier": { + "type": "string", + "description": "Unique ID or name of the principal", + "nullable": true + }, + "priority": { + "type": "integer", + "format": "int32", + "description": "The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked.", + "nullable": true + } + } + }, + "VariableValueInput": { + "type": "object", + "required": [ + "variable_identifier", + "variable_values" + ], + "properties": { + "variable_identifier": { + "type": "string", + "description": "ID or Name of the variable" + }, + "variable_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputVariableValue" + }, + "description": "Values of the variable" + } + }, + "description": "Input for variable value update" + }, "Runtime_Filter": { "type": "object", "properties": { From b2c6beaaa377dfd865f81fdfb6f93a2b61b76796 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 23 Apr 2025 13:04:51 +0000 Subject: [PATCH 261/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cea372f29..d067367a9 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1852,8 +1852,8 @@ "PERSONAL_ACCESS_TOKEN" ] }, - "resolve_parameter_values": { - "description": "Indicates whether to show resolved parameterised values for the connection.", + "show_resolved_parameters": { + "description": "
Version: 10.9.0.cl or later
\n\nIndicates whether to show resolved parameterised values.", "default": false, "type": "boolean", "nullable": true @@ -5687,7 +5687,7 @@ "type": "boolean", "nullable": true }, - "resolve_parameter_values": { + "show_resolved_parameters": { "description": "
Version: 10.9.0.cl or later
\n\nIndicates whether to show resolved parameterised values.", "default": false, "type": "boolean", From 4437203fa536de73e99ed424b54d3a07137809bb Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 28 Apr 2025 08:32:56 +0000 Subject: [PATCH 262/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d067367a9..284092d05 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3561,6 +3561,7 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "RANALYSIS", "DEVELOPER", @@ -4103,6 +4104,7 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "RANALYSIS", "DEVELOPER", @@ -16966,6 +16968,7 @@ "SHAREWITHALL", "JOBSCHEDULING", "A3ANALYSIS", + "EXPERIMENTALFEATUREPRIVILEGE", "BYPASSRLS", "RANALYSIS", "DEVELOPER", From 5233aadfcf87c47f2d2ac256cb80ec37458f3166 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 2 May 2025 04:52:35 +0000 Subject: [PATCH 263/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 284092d05..0716f5498 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7128,7 +7128,8 @@ "CAN_CREATE_CATALOG", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", - "PREVIEW_DOCUMENT_SEARCH" + "PREVIEW_DOCUMENT_SEARCH", + "PREVIEW_THOUGHTSPOT_SAGE" ] } } From 6d05e3673a88f9e803c58ed9c79392843d43f694 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 2 May 2025 18:08:24 +0000 Subject: [PATCH 264/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0716f5498..612b23f04 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -605,7 +605,7 @@ "/api/rest/2.0/auth/token/custom": { "post": { "operationId": "getCustomAccessToken", - "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "10.4.0.cl" @@ -761,7 +761,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -886,7 +886,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -1015,7 +1015,7 @@ "/api/rest/2.0/auth/session/login": { "post": { "operationId": "login", - "description": "\n Version: 9.0.0.cl or later\n\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nCreates a login session for a ThoughtSpot user with Basic authentication.\n\nIn Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context.\n\n**Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance.\n\nA successful login returns a session cookie that can be used in your subsequent API requests.\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" From 569081a14c05f2c42dc0562f9739407acb4efb13 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 May 2025 06:22:05 +0000 Subject: [PATCH 265/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 96 ++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 612b23f04..d2c00977d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6,36 +6,44 @@ }, "x-roles": [ { - "name": "9.0.0.cl", - "id": "9.0.0.cl", + "name": "10.4.0.cl", + "id": "10.4.0.cl", "tags": [ - "9.0.0.cl" + "10.4.0.cl" ], - "description": "Roles for version 9.0.0.cl" + "description": "Roles for version 10.4.0.cl" }, { - "name": "9.12.0.cl", - "id": "9.12.0.cl", + "name": "10.7.0.cl", + "id": "10.7.0.cl", "tags": [ - "9.12.0.cl" + "10.7.0.cl" ], - "description": "Roles for version 9.12.0.cl" + "description": "Roles for version 10.7.0.cl" }, { - "name": "10.4.0.cl", - "id": "10.4.0.cl", + "name": "9.0.0.cl", + "id": "9.0.0.cl", "tags": [ - "10.4.0.cl" + "9.0.0.cl" ], - "description": "Roles for version 10.4.0.cl" + "description": "Roles for version 9.0.0.cl" }, { - "name": "9.7.0.cl", - "id": "9.7.0.cl", + "name": "9.4.0.cl", + "id": "9.4.0.cl", "tags": [ - "9.7.0.cl" + "9.4.0.cl" ], - "description": "Roles for version 9.7.0.cl" + "description": "Roles for version 9.4.0.cl" + }, + { + "name": "9.12.0.cl", + "id": "9.12.0.cl", + "tags": [ + "9.12.0.cl" + ], + "description": "Roles for version 9.12.0.cl" }, { "name": "9.2.0.cl", @@ -46,20 +54,20 @@ "description": "Roles for version 9.2.0.cl" }, { - "name": "10.1.0.cl", - "id": "10.1.0.cl", + "name": "9.9.0.cl", + "id": "9.9.0.cl", "tags": [ - "10.1.0.cl" + "9.9.0.cl" ], - "description": "Roles for version 10.1.0.cl" + "description": "Roles for version 9.9.0.cl" }, { - "name": "10.3.0.cl", - "id": "10.3.0.cl", + "name": "9.6.0.cl", + "id": "9.6.0.cl", "tags": [ - "10.3.0.cl" + "9.6.0.cl" ], - "description": "Roles for version 10.3.0.cl" + "description": "Roles for version 9.6.0.cl" }, { "name": "10.6.0.cl", @@ -70,12 +78,20 @@ "description": "Roles for version 10.6.0.cl" }, { - "name": "10.8.0.cl", - "id": "10.8.0.cl", + "name": "10.3.0.cl", + "id": "10.3.0.cl", "tags": [ - "10.8.0.cl" + "10.3.0.cl" ], - "description": "Roles for version 10.8.0.cl" + "description": "Roles for version 10.3.0.cl" + }, + { + "name": "10.1.0.cl", + "id": "10.1.0.cl", + "tags": [ + "10.1.0.cl" + ], + "description": "Roles for version 10.1.0.cl" }, { "name": "10.9.0.cl", @@ -86,12 +102,12 @@ "description": "Roles for version 10.9.0.cl" }, { - "name": "9.9.0.cl", - "id": "9.9.0.cl", + "name": "10.8.0.cl", + "id": "10.8.0.cl", "tags": [ - "9.9.0.cl" + "10.8.0.cl" ], - "description": "Roles for version 9.9.0.cl" + "description": "Roles for version 10.8.0.cl" }, { "name": "9.5.0.cl", @@ -102,20 +118,12 @@ "description": "Roles for version 9.5.0.cl" }, { - "name": "9.4.0.cl", - "id": "9.4.0.cl", - "tags": [ - "9.4.0.cl" - ], - "description": "Roles for version 9.4.0.cl" - }, - { - "name": "9.6.0.cl", - "id": "9.6.0.cl", + "name": "9.7.0.cl", + "id": "9.7.0.cl", "tags": [ - "9.6.0.cl" + "9.7.0.cl" ], - "description": "Roles for version 9.6.0.cl" + "description": "Roles for version 9.7.0.cl" } ], "tags": [], From a7bfa230ecc938746bc48dd3a4206172f74b588a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 May 2025 10:33:32 +0000 Subject: [PATCH 266/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d2c00977d..5114cd238 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3999,6 +3999,18 @@ "$ref": "#/components/schemas/SortOptions" } ] + }, + "include_users": { + "description": "
Version: 10.10.0.cl or later
\n\nDefine Parameter to consider if the users should be included in group search response.", + "default": true, + "type": "boolean", + "nullable": true + }, + "include_sub_groups": { + "description": "
Version: 10.10.0.cl or later
\n\nDefine Parameter to consider if the sub groups should be included in group search response.", + "default": true, + "type": "boolean", + "nullable": true } } } From a6769763b9815750b6bd9644001a992ba06ac148 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 12 May 2025 03:41:28 +0000 Subject: [PATCH 267/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5114cd238..bf0b5c2a0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -769,7 +769,7 @@ "/api/rest/2.0/auth/token/full": { "post": { "operationId": "getFullAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets 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.\n\nYou 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)).\n\nTo 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).\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Important point to note\nAll 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -894,7 +894,7 @@ "/api/rest/2.0/auth/token/object": { "post": { "operationId": "getObjectAccessToken", - "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Attribute-Based Access Control (ABAC) with tokens\n\nYou can define Attribute-Based Access Control (ABAC) parameters to assign security entitlements to users during session creation. For more information, see [ABAC via token](https://developers.thoughtspot.com/docs/abac-user-parameters).\n\n#### Important point to note\nAll 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. Similarly, using `user_parameters` with `persist: true` persists security parameters on the user profile when the token is created and not during authentication.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nYou 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)).\n\nTo generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n#### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `group_identifiers`\n\nSet `auto_create` to `True` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true`, the API call will update user properties like display name, email and group assignment.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\nTo 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.\n\n#### Important point to note\nAll 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" From 97c1b784f00bc563ec8840d0ae17ea511c0bd23d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 17 May 2025 03:39:38 +0000 Subject: [PATCH 268/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index bf0b5c2a0..6b2bca675 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7938,6 +7938,10 @@ "$ref": "#/components/schemas/RecipientDetailsInput" } ] + }, + "personalised_view_id": { + "description": "Personalised view id of the liveboard to be scheduled.", + "type": "string" } }, "required": [ @@ -8909,6 +8913,10 @@ "ACTIVE", "PAUSE" ] + }, + "personalised_view_id": { + "description": "Personalised view id of the liveboard to be scheduled.", + "type": "string" } } } @@ -18219,6 +18227,11 @@ }, "description": "Schedule runs history records.", "nullable": true + }, + "personalised_view_id": { + "type": "string", + "description": "Personalised view id of the liveboard to be scheduled.", + "nullable": true } } }, From 9b8be0a4a6f4f0050807bc112ba17e666c658196 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Wed, 21 May 2025 15:54:06 +0530 Subject: [PATCH 269/410] Rename introduction.md to Introduction.md --- api-playground/content/{introduction.md => Introduction.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename api-playground/content/{introduction.md => Introduction.md} (100%) diff --git a/api-playground/content/introduction.md b/api-playground/content/Introduction.md similarity index 100% rename from api-playground/content/introduction.md rename to api-playground/content/Introduction.md From c3b5b33ca817ad49a4622780287391ab25877756 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 21 May 2025 23:56:19 +0000 Subject: [PATCH 270/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 279 ++++++++++++++++++++++++++++++++ 1 file changed, 279 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6b2bca675..9b1b47920 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -69,6 +69,14 @@ ], "description": "Roles for version 9.6.0.cl" }, + { + "name": "10.10.0.cl", + "id": "10.10.0.cl", + "tags": [ + "10.10.0.cl" + ], + "description": "Roles for version 10.10.0.cl" + }, { "name": "10.6.0.cl", "id": "10.6.0.cl", @@ -3521,6 +3529,236 @@ } } }, + "/api/rest/2.0/customization/email": { + "post": { + "operationId": "createEmailCustomisation", + "description": "\nBeta Version: 10.10.0.cl or later\n\nCreates a custom configuration for the email customisation\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo create a custom confuguration:\n\n1. Pass these parameters in your API request.\n\n- A JSON map of configuration attributes `template_properties`. The following example shows the configuration attribures for a csutom configuration:\n\n```\n{\n {\n \"logoUrl\": \"\",\n \"homeUrl\": \"\",\n \"productName\": \"\",\n \"footerAddress\": \"
\",\n \"ctaButtonBgColor\": \"#444DEA\",\n \"ctaTextFontColor\": \"#FFFFFF\",\n \"primaryBgColor\": \"#D3DEF0\",\n \"hideMobileAppNudge\": ,\n \"hideTsVocabularyDefinitions\": e,\n \"hideProductName\": ,\n \"hideFooterPhone\": ,\n \"hideFooterAddress\": ,\n \"hidePrivacyPolicy\": ,\n \"hideManageNotification\": ,\n \"fontfamily\": \"\"\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Email Customisation", + "10.10.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "template_properties": { + "description": "Email customization configuration as key value pair", + "type": "object" + } + }, + "required": [ + "template_properties" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateEmailCustomisationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/email/{template_identifier}/delete": { + "post": { + "operationId": "deleteEmailCustomisation", + "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customisation.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nDeletes the configuration available for the cluster/org. Pass the `template_identifier` in the API request.\n\nNote: `template_identifier` can be fetched from search API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Email Customisation", + "10.10.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "template_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the email customization." + } + ], + "responses": { + "204": { + "description": "Email Customization configuration successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/email/search": { + "post": { + "operationId": "searchEmailCustomisation", + "description": "\nBeta Version: 10.10.0.cl or later\n\nSearch the email customisation configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo get the list of configurations set in the cluster/org.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Email Customisation", + "10.10.0.cl" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateEmailCustomisationResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/email/validate": { + "post": { + "operationId": "validateEmailCustomisation", + "description": "\nBeta Version: 10.10.0.cl or later\n\nValidates the email customisation configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Email Customisation", + "10.10.0.cl" + ], + "parameters": [], + "responses": { + "204": { + "description": "Triggered test email for customization configuration" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/groups/create": { "post": { "operationId": "createUserGroup", @@ -19007,6 +19245,47 @@ }, "description": "Input for variable value update" }, + "CreateEmailCustomisationResponse": { + "type": "object", + "required": [ + "tenant_id", + "org", + "name", + "template_properties" + ], + "properties": { + "tenant_id": { + "type": "string", + "description": "Tenant ID" + }, + "org": { + "$ref": "#/components/schemas/OrgType", + "description": "Email customization org" + }, + "name": { + "type": "string", + "description": "Email customization name." + }, + "template_properties": { + "type": "object", + "description": "Customization configuration for the email" + } + } + }, + "OrgType": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, "Runtime_Filter": { "type": "object", "properties": { From 18de22a5a8f507451e31a5c96e4e03f8a413eecb Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 29 May 2025 09:34:48 +0000 Subject: [PATCH 271/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9b1b47920..6df4107f7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5792,7 +5792,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n- For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -5952,6 +5952,15 @@ "default": false, "type": "boolean", "nullable": true + }, + "liveboard_response_version": { + "description": "Indicates the model version of Liveboard to be attached in metadata detail.", + "default": "V1", + "type": "string", + "enum": [ + "V1", + "V2" + ] } } } From 10e1dddc870f49009674ee31a1b043a6f4126407 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 30 May 2025 18:18:21 +0000 Subject: [PATCH 272/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6df4107f7..ee42decd2 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14661,6 +14661,11 @@ "format": "float", "description": "Last time the task status was updated (in ms since epoch).", "nullable": true + }, + "author_display_name": { + "type": "string", + "description": "Display name of the user who initiated the task.", + "nullable": true } } }, From 23c971065eff1c54ba49b9531b0973e85257c761 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 6 Jun 2025 05:24:28 +0000 Subject: [PATCH 273/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ee42decd2..85e3cb075 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -10143,7 +10143,7 @@ "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/SystemOverrideInfo" } } } @@ -14030,6 +14030,15 @@ } } }, + "SystemOverrideInfo": { + "type": "object", + "properties": { + "config_override_info": { + "type": "object", + "nullable": true + } + } + }, "OrgResponse": { "type": "object", "properties": { From f3edde5371659d136de3ccab211c8d4d36239c50 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 11 Jun 2025 10:30:50 +0000 Subject: [PATCH 274/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 85e3cb075..6b831f5dd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5792,7 +5792,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n- For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n- For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `subtypes`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -14380,6 +14380,22 @@ ], "description": "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.\n1. Liveboard\n2. Answers\n3. LOGICAL_TABLE for any data object such as table, worksheet or view.\n4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view.\n5. CONNECTION for creating or modify data connections.\n6. TAG for tag objects.\n7. USER for user objects.\n8. USER_GROUP for group objects.\n9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values\n10. INSIGHT_SPEC for SpotIQ objects", "nullable": true + }, + "subtypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ONE_TO_ONE_LOGICAL", + "WORKSHEET", + "PRIVATE_WORKSHEET", + "USER_DEFINED", + "AGGR_WORKSHEET", + "SQL_VIEW" + ] + }, + "description": "List of subtype of metadata. Applies for LOGICAL_TABLE type with the following valid values.\n1. ONE_TO_ONE_LOGICAL\n2. WORKSHEET\n3. PRIVATE_WORKSHEET.\n4. USER_DEFINED.\n5. AGGR_WORKSHEET.\n6. SQL_VIEW
Version: 10.11.0.cl or later", + "nullable": true } } }, From 2af1167bd3c7bbed65aebd92fcf152fcf6404635 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 16 Jun 2025 08:32:14 +0000 Subject: [PATCH 275/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6b831f5dd..20eda4528 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16436,13 +16436,13 @@ "VariableValue": { "type": "object", "required": [ - "value", "org_identifier" ], "properties": { "value": { "type": "string", - "description": "The value of the variable" + "description": "The value of the variable", + "nullable": true }, "org_identifier": { "type": "string", From 691bcdd83ed478b8af5116fc74710a0796acdd46 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 24 Jun 2025 16:25:25 +0000 Subject: [PATCH 276/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 20eda4528..fbc3fbcce 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3531,10 +3531,10 @@ }, "/api/rest/2.0/customization/email": { "post": { - "operationId": "createEmailCustomisation", - "description": "\nBeta Version: 10.10.0.cl or later\n\nCreates a custom configuration for the email customisation\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo create a custom confuguration:\n\n1. Pass these parameters in your API request.\n\n- A JSON map of configuration attributes `template_properties`. The following example shows the configuration attribures for a csutom configuration:\n\n```\n{\n {\n \"logoUrl\": \"\",\n \"homeUrl\": \"\",\n \"productName\": \"\",\n \"footerAddress\": \"
\",\n \"ctaButtonBgColor\": \"#444DEA\",\n \"ctaTextFontColor\": \"#FFFFFF\",\n \"primaryBgColor\": \"#D3DEF0\",\n \"hideMobileAppNudge\": ,\n \"hideTsVocabularyDefinitions\": e,\n \"hideProductName\": ,\n \"hideFooterPhone\": ,\n \"hideFooterAddress\": ,\n \"hidePrivacyPolicy\": ,\n \"hideManageNotification\": ,\n \"fontfamily\": \"\"\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "operationId": "createEmailCustomization", + "description": "\nBeta Version: 10.10.0.cl or later\n\nCreates a custom configuration for the email customization\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo create a custom confuguration:\n\n1. Pass these parameters in your API request.\n\n- A JSON map of configuration attributes `template_properties`. The following example shows the configuration attribures for a csutom configuration:\n\n```\n{\n {\n \"logoUrl\": \"\",\n \"homeUrl\": \"\",\n \"productName\": \"\",\n \"footerAddress\": \"
\",\n \"ctaButtonBgColor\": \"#444DEA\",\n \"ctaTextFontColor\": \"#FFFFFF\",\n \"primaryBgColor\": \"#D3DEF0\",\n \"hideMobileAppNudge\": ,\n \"hideTsVocabularyDefinitions\": e,\n \"hideProductName\": ,\n \"hideFooterPhone\": ,\n \"hideFooterAddress\": ,\n \"hidePrivacyPolicy\": ,\n \"hideManageNotification\": ,\n \"fontfamily\": \"\"\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Email Customisation", + "Email Customization", "10.10.0.cl" ], "requestBody": { @@ -3563,7 +3563,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateEmailCustomisationResponse" + "$ref": "#/components/schemas/CreateEmailCustomizationResponse" } } } @@ -3603,10 +3603,10 @@ }, "/api/rest/2.0/customization/email/{template_identifier}/delete": { "post": { - "operationId": "deleteEmailCustomisation", - "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customisation.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nDeletes the configuration available for the cluster/org. Pass the `template_identifier` in the API request.\n\nNote: `template_identifier` can be fetched from search API request.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "deleteEmailCustomization", + "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customization.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nDeletes the configuration available for the cluster/org. Pass the `template_identifier` in the API request.\n\nNote: `template_identifier` can be fetched from search API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Email Customisation", + "Email Customization", "10.10.0.cl" ], "parameters": [ @@ -3659,10 +3659,10 @@ }, "/api/rest/2.0/customization/email/search": { "post": { - "operationId": "searchEmailCustomisation", - "description": "\nBeta Version: 10.10.0.cl or later\n\nSearch the email customisation configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo get the list of configurations set in the cluster/org.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchEmailCustomization", + "description": "\nBeta Version: 10.10.0.cl or later\n\nSearch the email customization configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo get the list of configurations set in the cluster/org.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Email Customisation", + "Email Customization", "10.10.0.cl" ], "parameters": [], @@ -3674,7 +3674,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/CreateEmailCustomisationResponse" + "$ref": "#/components/schemas/CreateEmailCustomizationResponse" } } } @@ -3715,10 +3715,10 @@ }, "/api/rest/2.0/customization/email/validate": { "post": { - "operationId": "validateEmailCustomisation", - "description": "\nBeta Version: 10.10.0.cl or later\n\nValidates the email customisation configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "validateEmailCustomization", + "description": "\nBeta Version: 10.10.0.cl or later\n\nValidates the email customization configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Email Customisation", + "Email Customization", "10.10.0.cl" ], "parameters": [], @@ -19284,7 +19284,7 @@ }, "description": "Input for variable value update" }, - "CreateEmailCustomisationResponse": { + "CreateEmailCustomizationResponse": { "type": "object", "required": [ "tenant_id", From 12c3138cc1caa874d8bbf752c53360dd5640b2e1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 27 Jun 2025 10:19:08 +0000 Subject: [PATCH 277/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index fbc3fbcce..aa610665e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3532,7 +3532,7 @@ "/api/rest/2.0/customization/email": { "post": { "operationId": "createEmailCustomization", - "description": "\nBeta Version: 10.10.0.cl or later\n\nCreates a custom configuration for the email customization\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo create a custom confuguration:\n\n1. Pass these parameters in your API request.\n\n- A JSON map of configuration attributes `template_properties`. The following example shows the configuration attribures for a csutom configuration:\n\n```\n{\n {\n \"logoUrl\": \"\",\n \"homeUrl\": \"\",\n \"productName\": \"\",\n \"footerAddress\": \"
\",\n \"ctaButtonBgColor\": \"#444DEA\",\n \"ctaTextFontColor\": \"#FFFFFF\",\n \"primaryBgColor\": \"#D3DEF0\",\n \"hideMobileAppNudge\": ,\n \"hideTsVocabularyDefinitions\": e,\n \"hideProductName\": ,\n \"hideFooterPhone\": ,\n \"hideFooterAddress\": ,\n \"hidePrivacyPolicy\": ,\n \"hideManageNotification\": ,\n \"fontfamily\": \"\"\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 \"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 }\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.10.0.cl" @@ -3604,7 +3604,7 @@ "/api/rest/2.0/customization/email/{template_identifier}/delete": { "post": { "operationId": "deleteEmailCustomization", - "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customization.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nDeletes the configuration available for the cluster/org. Pass the `template_identifier` in the API request.\n\nNote: `template_identifier` can be fetched from search API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customization.\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\n- Call the search API endpoint to get the `template_identifier` from the response.\n- Use that `template_identifier` as a parameter in this API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.10.0.cl" @@ -3660,7 +3660,7 @@ "/api/rest/2.0/customization/email/search": { "post": { "operationId": "searchEmailCustomization", - "description": "\nBeta Version: 10.10.0.cl or later\n\nSearch the email customization configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n#### Usage guidelines\n\nTo get the list of configurations set in the cluster/org.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.10.0.cl or later\n\nSearch the email customization configuration if any set for the ThoughtSpot system.\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\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.10.0.cl" @@ -3716,7 +3716,7 @@ "/api/rest/2.0/customization/email/validate": { "post": { "operationId": "validateEmailCustomization", - "description": "\nBeta Version: 10.10.0.cl or later\n\nValidates the email customization configuration if any set for the ThoughtSpot system.\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 `_Has developer privilege` privilege is required.\nComs should be enabled on the cluster.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.10.0.cl or later\n\nValidates the email customization configuration if any set for the ThoughtSpot system.\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\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.10.0.cl" From aebb7ff5813bc524d79d6f1c4837d807ceec38fe Mon Sep 17 00:00:00 2001 From: ruchI9897 <59597701+ruchI9897@users.noreply.github.com> Date: Tue, 1 Jul 2025 12:13:19 +0530 Subject: [PATCH 278/410] Get Token API - update doc (#250) * update doc * removed duplicate text --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index aa610665e..993da25f6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -495,7 +495,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\n\nRetrieves details of the current user session for the token provided in the request header.\n\nAny 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.\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -558,7 +558,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.4.0.cl or later\n\nRetrieves details of the current session token for the bearer token provided in the request header.\n\nThis 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.\n\nUse this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details.\n\nAny ThoughtSpot user with a valid bearer token can access this endpoint and send an API request.\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.4.0.cl" From 79010917d469ee5a2b855cee264777015b9aaefc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 1 Jul 2025 13:03:52 +0000 Subject: [PATCH 279/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 993 ++++++++++++++++++++++++++++---- 1 file changed, 866 insertions(+), 127 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 993da25f6..0d45118bc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -69,6 +69,14 @@ ], "description": "Roles for version 9.6.0.cl" }, + { + "name": "10.12.0.cl", + "id": "10.12.0.cl", + "tags": [ + "10.12.0.cl" + ], + "description": "Roles for version 10.12.0.cl" + }, { "name": "10.10.0.cl", "id": "10.10.0.cl", @@ -495,7 +503,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nRetrieves details of the current user session for the token provided in the request header.\n\nAny 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.\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -558,7 +566,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "\n Version: 9.4.0.cl or later\n\nRetrieves details of the current session token for the bearer token provided in the request header.\n\nThis 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.\n\nUse this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details.\n\nAny ThoughtSpot user with a valid bearer token can access this endpoint and send an API request.\n\n\n\n#### Endpoint URL\n", + "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.4.0.cl" @@ -2246,41 +2254,668 @@ } } }, - "500": { - "description": "Unexpected error", + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { + "post": { + "operationId": "deleteCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action is successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/search": { + "post": { + "operationId": "searchCustomActions", + "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "custom_action_identifier": { + "description": "Name or ID of the custom action.", + "type": "string" + }, + "name_pattern": { + "description": "A pattern to match case-insensitive name of the custom-action object.", + "type": "string" + }, + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + } + ] + }, + "include_group_associations": { + "description": "When set to true, returns the associated groups for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "include_metadata_associations": { + "description": "When set to true, returns the associated metadata for a custom action.", + "default": false, + "type": "boolean", + "nullable": true + }, + "metadata": { + "description": "Search with a given metadata identifier.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomActionMetadataTypeInput" + } + }, + "type": { + "description": "Filter the action objects based on type", + "type": "string", + "enum": [ + "CALLBACK", + "URL" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom action search is successful.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseCustomAction" + } + }, + "examples": { + "example_1": { + "value": [ + { + "action_details": { + "CALLBACK": { + "reference": "LEDE" + } + }, + "default_action_config": { + "visibility": true + }, + "id": "c59262df-cf9e-4947-96fa-52d494688797", + "name": "LEDE" + } + ] + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "post": { + "operationId": "updateCustomAction", + "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\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#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Action", + "9.6.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action_details": { + "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", + "allOf": [ + { + "$ref": "#/components/schemas/Action_Details_Input" + } + ] + }, + "associate_metadata": { + "description": "Metadata objects to which the custom action needs to be associated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Associate_Metadata_Input" + } + }, + "default_action_config": { + "description": "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.", + "allOf": [ + { + "$ref": "#/components/schemas/Default_Action_Config_Input" + } + ] + }, + "group_identifiers": { + "description": "Unique ID or name of the groups that can view and access the custom action.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Name of the custom action. The custom action name must be unique.", + "type": "string" + }, + "operation": { + "description": "Type of update operation. Default operation type is ADD", + "default": "ADD", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "custom_action_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the custom action." + } + ], + "responses": { + "204": { + "description": "Custom action updated successfully." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/calendars/create": { + "post": { + "operationId": "createCalendar", + "description": "\n Version: 10.12.0.cl or later\n\nCreates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n\n#### Usage guidelines\n\nYou can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required:\n\n* Name of the custom calendar.\n* Calendar creation method. To create a calendar from an existing table, specify the method:\n\n - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request.\n - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request.\n\n* Connection ID and Table name\n* Schema name. Optional for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL.\n* Database name. Mandatory for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL. \n\n**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.\n\n##### Calendar type\nThe API allows you to create the following types of calendars:\n\n* `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.\n\n* `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month.\n* `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between.\n* `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months.\n\nTo 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.\n\nYou can also set the starting day of the week and customize the prefixes for year and quarter labels.\n\n#### Examples\n\nTo create a calendar from an existing table:\n\n```\n{\n \"name\": \"MyCustomCalendar1\",\n \"table_reference\": {\n \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\",\n \"table_name\": \"MyCalendarTable\",\n \"database_name\": \"RETAILAPPAREL\",\n \"schema_name\": \"PUBLIC\"\n },\n \"creation_method\": \"FROM_EXISTING_TABLE\",\n}\n```\n\nTo create a calendar from scratch:\n\n```\n{\n \"name\": \"MyCustomCalendar1\",\n \"table_reference\": {\n \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\",\n \"table_name\": \"MyCalendarTable\",\n \"database_name\": \"RETAILAPPAREL\",\n \"schema_name\": \"PUBLIC\"\n },\n \"creation_method\": \"FROM_INPUT_PARAMS\",\n \"calendar_type\": \"MONTH_OFFSET\",\n \"month_offset\": \"April\",\n \"start_day_of_week\": \"Monday\",\n \"quarter_name_prefix\": \"Q\",\n \"year_name_prefix\": \"FY\",\n \"start_date\": \"04/01/2025\",\n \"end_date\": \"04/31/2025\"\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Calendars", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the custom calendar.", + "type": "string" + }, + "creation_method": { + "description": "Type of create operation.", + "type": "string", + "enum": [ + "FROM_INPUT_PARAMS", + "FROM_EXISTING_TABLE" + ] + }, + "table_reference": { + "description": "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`.", + "allOf": [ + { + "$ref": "#/components/schemas/ExternalTableInput" + } + ] + }, + "start_date": { + "description": "Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`.", + "type": "string" + }, + "end_date": { + "description": "End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`.", + "type": "string" + }, + "calendar_type": { + "description": "Type of the calendar.", + "default": "MONTH_OFFSET", + "type": "string", + "enum": [ + "MONTH_OFFSET", + "FOUR_FOUR_FIVE", + "FOUR_FIVE_FOUR", + "FIVE_FOUR_FOUR" + ] + }, + "month_offset": { + "description": "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).", + "default": "January", + "type": "string", + "enum": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ] + }, + "start_day_of_week": { + "description": "Specify the starting day of the week.", + "default": "Sunday", + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + }, + "quarter_name_prefix": { + "description": "Prefix to add before the quarter.", + "default": "", + "type": "string" + }, + "year_name_prefix": { + "description": "Prefix to add before the year.", + "default": "", + "type": "string" + } + }, + "required": [ + "name", + "creation_method", + "table_reference" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Custom calendar created successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CalendarResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/calendars/{calendar_identifier}/delete": { + "post": { + "operationId": "deleteCalendar", + "description": "\n Version: 10.12.0.cl or later\n\nDeletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\nTo delete a custom calendar, specify the calendar ID as a path parameter in the request URL. \n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Calendars", + "10.12.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "calendar_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the Calendar." + } + ], + "responses": { + "204": { + "description": "Custom calendar successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/calendars/generate-csv": { + "post": { + "operationId": "generateCSV", + "description": "\n Version: 10.12.0.cl or later\n\nExports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\n\nUse this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters.\n\n* Name of the calendar\n* Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute.\n\nYou can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Custom Calendars", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "start_date": { + "description": "Start date for the calendar in `MM/dd/yyyy` format.", + "type": "string" + }, + "end_date": { + "description": "End date for the calendar in `MM/dd/yyyy` format.", + "type": "string" + }, + "calendar_type": { + "description": "Type of the calendar.", + "default": "MONTH_OFFSET", + "type": "string", + "enum": [ + "MONTH_OFFSET", + "FOUR_FOUR_FIVE", + "FOUR_FIVE_FOUR", + "FIVE_FOUR_FOUR" + ] + }, + "month_offset": { + "description": "Month offset to start calendar from `January`.", + "default": "January", + "type": "string", + "enum": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ] + }, + "start_day_of_week": { + "description": "Specify the starting day of the week.", + "default": "Sunday", + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ] + }, + "quarter_name_prefix": { + "description": "Prefix to add before the quarter.", + "type": "string" + }, + "year_name_prefix": { + "description": "Prefix to add before the year.", + "type": "string" + } + }, + "required": [ + "start_date", + "end_date" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Generate custom calendar data based on specifications, as a CSV file.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorResponse" + "type": "object" } } } - } - } - } - }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete": { - "post": { - "operationId": "deleteCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nRemoves the custom action specified in the API request.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Custom Action", - "9.6.0.cl" - ], - "parameters": [ - { - "in": "path", - "name": "custom_action_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the custom action." - } - ], - "responses": { - "204": { - "description": "Custom action is successfully deleted." }, "400": { "description": "Invalid request.", @@ -2325,13 +2960,13 @@ } } }, - "/api/rest/2.0/customization/custom-actions/search": { + "/api/rest/2.0/calendars/search": { "post": { - "operationId": "searchCustomActions", - "description": "\n Version: 9.6.0.cl or later\n\nGets custom actions configured on the cluster.\n\nRequires `DEVELOPER` (**Has Developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n\n\n\n#### Endpoint URL\n", + "operationId": "searchCalendars", + "description": "\n Version: 10.12.0.cl or later\n\nGets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\n\nBy 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.\n\nThe `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching.\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Custom Action", - "9.6.0.cl" + "Custom Calendars", + "10.12.0.cl" ], "requestBody": { "content": { @@ -2339,48 +2974,33 @@ "schema": { "type": "object", "properties": { - "custom_action_identifier": { - "description": "Name or ID of the custom action.", + "connection_identifier": { + "description": "Unique ID or name of the connection.", "type": "string" }, "name_pattern": { - "description": "A pattern to match case-insensitive name of the custom-action object.", + "description": "Pattern to match for calendar names (use '%' for wildcard match).", "type": "string" }, - "default_action_config": { - "description": "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.", + "record_offset": { + "description": "The starting record number from where the records should be included.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included.", + "default": 10, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort options.", "allOf": [ { - "$ref": "#/components/schemas/Default_Action_Config_Search_Input" + "$ref": "#/components/schemas/SortOption" } ] - }, - "include_group_associations": { - "description": "When set to true, returns the associated groups for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "include_metadata_associations": { - "description": "When set to true, returns the associated metadata for a custom action.", - "default": false, - "type": "boolean", - "nullable": true - }, - "metadata": { - "description": "Search with a given metadata identifier.", - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomActionMetadataTypeInput" - } - }, - "type": { - "description": "Filter the action objects based on type", - "type": "string", - "enum": [ - "CALLBACK", - "URL" - ] } } } @@ -2391,31 +3011,13 @@ "parameters": [], "responses": { "200": { - "description": "Custom action search is successful.", + "description": "Custom calendar fetched successfully.", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ResponseCustomAction" - } - }, - "examples": { - "example_1": { - "value": [ - { - "action_details": { - "CALLBACK": { - "reference": "LEDE" - } - }, - "default_action_config": { - "visibility": true - }, - "id": "c59262df-cf9e-4947-96fa-52d494688797", - "name": "LEDE" - } - ] + "$ref": "#/components/schemas/CalendarResponse" } } } @@ -2464,13 +3066,13 @@ } } }, - "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update": { + "/api/rest/2.0/calendars/{calendar_identifier}/update": { "post": { - "operationId": "updateCustomAction", - "description": "\n Version: 9.6.0.cl or later\n\nUpdates a custom action.\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#### Usage Guidelines\n\nThe API allows you to modify the following properties:\n\n* Name of the custom action\n* Action availability to groups\n* Association to metadata objects\n* Authentication settings for a URL-based action\n\nFor more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro).\n\n\n\n\n#### Endpoint URL\n", + "operationId": "updateCalendar", + "description": "\n Version: 10.12.0.cl or later\n\nUpdates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\n\nYou can update the properties of a calendar using one of the following methods:\n* `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request.\n* `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request.\n\nTo update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: \n\n* Connection ID and Table name\n* Schema name. Optional for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL.\n* Database name. Mandatory for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL. \n\nThe 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. \n\n#### Examples\n\nUpdate a custom calendar using an existing Table in ThoughtSpot:\n\n```\n{\n \"update_method\": \"FROM_EXISTING_TABLE\",\n \"table_reference\": {\n \"connection_identifier\": \"Connection1\",\n \"database_name\": \"db1\",\n \"table_name\": \"custom_calendar_2025\",\n \"schame_name\": \"schemaVar\"\n }\n}\n```\n\nUpdate a custom calendar with the attributes defined in the API request:\n\n```\n{\n \"update_method\": \"FROM_INPUT_PARAMS\",\n \"table_reference\": {\n \"connection_identifier\": \"Connection1\",\n \"database_name\": \"db1\",\n \"table_name\": \"custom_calendar_2025\",\n \"schame_name\": \"schemaVar\"\n },\n \"month_offset\": \"August\",\n \"start_day_of_week\": \"Monday\",\n \"start_date\": \"08/01/2025\",\n \"end_date\": \"07/31/2026\"\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ - "Custom Action", - "9.6.0.cl" + "Custom Calendars", + "10.12.0.cl" ], "requestBody": { "content": { @@ -2478,50 +3080,89 @@ "schema": { "type": "object", "properties": { - "action_details": { - "description": "Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required.", - "allOf": [ - { - "$ref": "#/components/schemas/Action_Details_Input" - } + "update_method": { + "description": "Type of update operation.", + "default": "FROM_INPUT_PARAMS", + "type": "string", + "enum": [ + "FROM_INPUT_PARAMS", + "FROM_EXISTING_TABLE" ] }, - "associate_metadata": { - "description": "Metadata objects to which the custom action needs to be associated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Associate_Metadata_Input" - } - }, - "default_action_config": { - "description": "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.", + "table_reference": { + "description": "Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`.", "allOf": [ { - "$ref": "#/components/schemas/Default_Action_Config_Input" + "$ref": "#/components/schemas/ExternalTableInput" } ] }, - "group_identifiers": { - "description": "Unique ID or name of the groups that can view and access the custom action.", - "type": "array", - "items": { - "type": "string" - } + "start_date": { + "description": "Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`.", + "type": "string" }, - "name": { - "description": "Name of the custom action. The custom action name must be unique.", + "end_date": { + "description": "End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`.", "type": "string" }, - "operation": { - "description": "Type of update operation. Default operation type is ADD", - "default": "ADD", + "calendar_type": { + "description": "Type of the calendar.", + "default": "MONTH_OFFSET", "type": "string", "enum": [ - "ADD", - "REMOVE" + "MONTH_OFFSET", + "FOUR_FOUR_FIVE", + "FOUR_FIVE_FOUR", + "FIVE_FOUR_FOUR" + ] + }, + "month_offset": { + "description": "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).", + "default": "January", + "type": "string", + "enum": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ] + }, + "start_day_of_week": { + "description": "Specify the starting day of the week", + "default": "Sunday", + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" ] + }, + "quarter_name_prefix": { + "description": "Prefix to add before the quarter.", + "default": "", + "type": "string" + }, + "year_name_prefix": { + "description": "Prefix to add before the year.", + "default": "", + "type": "string" } - } + }, + "required": [ + "table_reference" + ] } } }, @@ -2530,17 +3171,17 @@ "parameters": [ { "in": "path", - "name": "custom_action_identifier", + "name": "calendar_identifier", "required": true, "schema": { "type": "string" }, - "description": "Unique ID or name of the custom action." + "description": "Unique Id or name of the calendar." } ], "responses": { "204": { - "description": "Custom action updated successfully." + "description": "Custom calendar updated successfully." }, "400": { "description": "Invalid request.", @@ -16470,6 +17111,75 @@ } } }, + "SortOption": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "DEFAULT", + "NAME", + "DISPLAY_NAME", + "AUTHOR", + "CREATED", + "MODIFIED" + ], + "default": "DEFAULT", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "description": "Sort order : ASC(Ascending) or DESC(Descending).", + "nullable": true + } + } + }, + "CalendarResponse": { + "type": "object", + "properties": { + "calendar_name": { + "type": "string", + "description": "Name of the calendar", + "nullable": true + }, + "connection_name": { + "type": "string", + "description": "Name of the connection", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "description": "Type of data warehouse", + "nullable": true + }, + "modification_time_in_millis": { + "type": "string", + "description": "Last modification time in milliseconds", + "nullable": true + }, + "author_name": { + "type": "string", + "description": "Name of the author who created the calendar", + "nullable": true + }, + "connection_id": { + "type": "string", + "description": "Unique ID of the connection", + "nullable": true + }, + "calendar_id": { + "type": "string", + "description": "Unique ID of the calendar", + "nullable": true + } + } + }, "GenericInfo": { "type": "object", "properties": { @@ -19325,6 +20035,35 @@ } } }, + "ExternalTableInput": { + "type": "object", + "required": [ + "connection_identifier", + "table_name" + ], + "properties": { + "connection_identifier": { + "type": "string", + "description": "Unique ID or name of the connection." + }, + "database_name": { + "type": "string", + "default": "", + "description": "Name of the database.", + "nullable": true + }, + "schema_name": { + "type": "string", + "default": "", + "description": "Name of the schema.", + "nullable": true + }, + "table_name": { + "type": "string", + "description": "Name of the table." + } + } + }, "Runtime_Filter": { "type": "object", "properties": { From d628965987c98a452628324da772cc74ead06332 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 2 Jul 2025 06:56:32 +0000 Subject: [PATCH 280/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0d45118bc..6a9c5fa85 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -503,7 +503,7 @@ "/api/rest/2.0/auth/session/user": { "get": { "operationId": "getCurrentUserInfo", - "description": "\n Version: 9.0.0.cl or later\n\n\nGets session information for the currently logged-in user.\n\nThis API does not require any parameters to be passed in the request. \n\nAny 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.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nRetrieves details of the current user session for the token provided in the request header.\n\nAny 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.\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.0.0.cl" @@ -566,7 +566,7 @@ "/api/rest/2.0/auth/session/token": { "get": { "operationId": "getCurrentUserToken", - "description": "\nGet token for the currently logged-in user.
Version: 9.4.0.cl or later\n\nGets token details for the currently logged-in user. You can use this endpoint to obtain the token associated with the user's session.\n\nThis API does not require any parameters to be passed in the request. \n\nAny ThoughtSpot user can access this endpoint and send an API request.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.4.0.cl or later\n\nRetrieves details of the current session token for the bearer token provided in the request header.\n\nThis 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.\n\nUse this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details.\n\nAny ThoughtSpot user with a valid bearer token can access this endpoint and send an API request\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "9.4.0.cl" From f2706145b90a8b314364d292206c1f77cd17d38d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 2 Jul 2025 12:34:12 +0000 Subject: [PATCH 281/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6a9c5fa85..676666bd5 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2043,7 +2043,7 @@ "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n* A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -13296,7 +13296,7 @@ "/api/rest/2.0/vcs/git/config/create": { "post": { "operationId": "createConfig", - "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / GitHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [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.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* 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).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / itHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -13413,7 +13413,7 @@ "/api/rest/2.0/vcs/git/config/delete": { "post": { "operationId": "deleteConfig", - "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -13808,7 +13808,7 @@ "/api/rest/2.0/vcs/git/config/search": { "post": { "operationId": "searchConfig", - "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" @@ -13893,7 +13893,7 @@ "/api/rest/2.0/vcs/git/config/update": { "post": { "operationId": "updateConfig", - "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_VERSION_CONTROL` (**Can toggle version control for objects**) privilege.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [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.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Version Control", "9.2.0.cl" From 22918e0ae0e06f986a1f1b32ba71800843bbedcc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 3 Jul 2025 06:12:04 +0000 Subject: [PATCH 282/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 676666bd5..a2382a656 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -18100,6 +18100,12 @@ "default": false, "description": "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", "nullable": true + }, + "export_column_security_rules": { + "type": "boolean", + "default": false, + "description": "Boolean flag indicating whether to export column security rules of the object. This will only be respected when the object can have column security rules and export_associated is true.
Beta Version: 10.12.0.cl or later", + "nullable": true } }, "description": "Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled." From 43f7b00e283985d9971637e7f6045e27a32c875a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 3 Jul 2025 11:16:53 +0000 Subject: [PATCH 283/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a2382a656..df182e07d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1757,7 +1757,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have external OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only.\n - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only.\n - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -1873,7 +1873,11 @@ "IAM", "EXTOAUTH", "OAUTH_WITH_SERVICE_PRINCIPAL", - "PERSONAL_ACCESS_TOKEN" + "PERSONAL_ACCESS_TOKEN", + "KEY_PAIR", + "OAUTH_WITH_PKCE", + "EXTOAUTH_WITH_PKCE", + "OAUTH_WITH_PEZ" ] }, "show_resolved_parameters": { From 069877f61b6e3560856c0cb1f3ca8ba05c5a8053 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 8 Jul 2025 06:09:18 +0000 Subject: [PATCH 284/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index df182e07d..9674bf6bb 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6437,7 +6437,7 @@ "/api/rest/2.0/metadata/search": { "post": { "operationId": "searchMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n- For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `subtypes`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nGets a list of metadata objects available on the ThoughtSpot system.\n\nThis API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups.\n\n#### Usage guidelines\n\n- To get all metadata objects, send the API request without any attributes.\n- To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`.\n- To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`.\n- To get a specific metadata object, specify the GUID.\n- To customize your search and filter the API response, you can use several parameters.\n You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on.\n You can also define sorting options to sort the data retrieved in the API response.\n- To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true.\n- For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1.\n- To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false.\n\n**NOTE**: The following parameters support pagination of metadata records:\n\n- `tag_identifiers`\n- `type`\n- `subtypes`\n- `created_by_user_identifiers`\n- `modified_by_user_identifiers`\n- `owned_by_user_identifiers`\n- `exclude_objects`\n- `include_auto_created_objects`\n- `favorite_object_options`\n- `include_only_published_objects`\nIf you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "9.0.0.cl" @@ -6606,6 +6606,12 @@ "V1", "V2" ] + }, + "include_only_published_objects": { + "description": "
Version: 10.11.0.cl or later
\n\nIf only published objects should be returned", + "default": false, + "type": "boolean", + "nullable": true } } } From 5e7f21c3e106317257f518fd9f2c519e3b7c5963 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 8 Jul 2025 18:20:33 +0000 Subject: [PATCH 285/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 172 ++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9674bf6bb..8db66240e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -220,6 +220,111 @@ } } }, + "/api/rest/2.0/ai/analytical-questions/v2/": { + "post": { + "operationId": "getRelevantQuestions", + "description": "\nBeta Version: 10.7.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo enable accurate query decomposition, the request must include at least one of the following metadata identifiers within `context_metadata`: `answer_ids`, `liveboard_ids`, or `worksheet_ids`.\n\nYou can further enhance the quality and precision of decomposition by providing additional context such as:\n- `content`: user-supplied data like CSV or text\n- `instructions`: specific user directions for tailoring the decomposition\n- `conversation_id`: unique identifier to preserve context across interactions\n\nIf the API request is successful, ThoughtSpot returns a list of decomposed analytical queries, each aligned with the user's original question.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.7.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.", + "type": "array", + "items": { + "type": "string" + } + }, + "context_metadata": { + "description": "Context metadata to provide context for decomposing user query into analytical queries that can be run on them.", + "allOf": [ + { + "$ref": "#/components/schemas/ContextMetadata" + } + ] + }, + "max_decomposed_queries": { + "description": "Maximum number of decomposed queries that is allowed in the response, default = 5.", + "type": "integer", + "format": "int32" + }, + "bypass_cache": { + "description": "List of worksheetIds to provide context for decomposing user query into analytical queries that can be run on them.", + "type": "boolean", + "nullable": true + }, + "instructions": { + "description": "User specific instructions for processing the @query.", + "type": "array", + "items": { + "type": "string" + } + }, + "query": { + "description": "User query which is a topical/goal oriented question that needs to be broken down into smaller simple analytical questions.", + "type": "string" + } + }, + "required": [ + "context_metadata", + "query" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_GetRelevantQuestionsResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_GetRelevantQuestionsResponse" + } + } + } + }, + "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/analytical-questions": { "post": { "operationId": "queryGetDecomposedQuery", @@ -16930,6 +17035,73 @@ }, "description": "MetadataType InputType used in Custom Action API's" }, + "ContextMetadata": { + "type": "object", + "properties": { + "data_source_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of data_source_ids to provide context for decomposing user query into analytical queries that can be run on them.", + "nullable": true + }, + "answer_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of answer unique identifiers (GUIDs) whose data will be used to guide the response.", + "nullable": true + }, + "conversation_id": { + "type": "string", + "description": "Unique identifier to denote current conversation.", + "nullable": true + }, + "liveboard_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response.", + "nullable": true + } + } + }, + "eureka_GetRelevantQuestionsResponse": { + "type": "object", + "properties": { + "relevant_questions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/eureka_RelevantQuestion" + }, + "description": "List of relevant questions that can be run on their respective worksheet/data sources.", + "nullable": true + } + } + }, + "eureka_RelevantQuestion": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "NL query that can be run using spotter aka natural language search to get an AI generated answer.", + "nullable": true + }, + "worksheet_id": { + "type": "string", + "description": "Unique identifier of the worksheet on which this query can be run on.", + "nullable": true + }, + "worksheet_name": { + "type": "string", + "description": "Display name of the worksheet on which this query can be run on.", + "nullable": true + } + } + }, "Input_eureka_NLSRequest": { "type": "object", "properties": { From f3fd820bb9b7376c3fd9f61570470f691402a209 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 8 Jul 2025 19:34:09 +0000 Subject: [PATCH 286/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 8db66240e..8cdeb008b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -766,7 +766,7 @@ "format": "int32" }, "org_identifier": { - "description": "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.", + "description": "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.", "type": "string" }, "persist_option": { From ba6440fb818eb1235ab826d2f5ea072bdace745a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 9 Jul 2025 10:01:00 +0000 Subject: [PATCH 287/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 343 ++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 8cdeb008b..9a2a689d5 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -10072,6 +10072,94 @@ } } }, + "/api/rest/2.0/security/column/rules/fetch": { + "post": { + "operationId": "fetchColumnSecurityRules", + "description": "\nBeta Version: 10.12.0.cl or later\n\nFetches column security rules for specified tables.\n\nThis 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.\n\n#### Usage guidelines\n\n- Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID)\n- At least one of `identifier` or `obj_identifier` must be provided for each table\n- The API returns column security rules for all specified tables\n- Users must have appropriate permissions to access security rules for the specified tables\n\n#### Required permissions\n\n- `ADMINISTRATION` - Can administer ThoughtSpot\n- `DATAMANAGEMENT` - Can manage data\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables\n\n#### Example request\n\n```json\n{\n \"tables\": [\n {\n \"identifier\": \"table-guid\",\n \"obj_identifier\": \"table-object-id\"\n }\n ]\n}\n```\n\n#### Response format\n\nThe API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains:\n- Table information (GUID and object ID) \n- Array of column security rules with column details, group access, and source table information\n\n#### Example response\n\n```json\n{\n \"data\": [\n {\n \"guid\": \"table-guid\",\n \"objId\": \"table-object-id\",\n \"columnSecurityRules\": [\n {\n \"column\": {\n \"id\": \"col_123\",\n \"name\": \"Salary\"\n },\n \"groups\": [\n {\n \"id\": \"group_1\",\n \"name\": \"HR Department\"\n }\n ],\n \"sourceTableDetails\": {\n \"id\": \"source-table-guid\",\n \"name\": \"Employee_Data\"\n }\n }\n ]\n }\n ]\n}\n```\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tables": { + "description": "Array of table identifier objects for which to fetch column security rules", + "type": "array", + "items": { + "$ref": "#/components/schemas/ColumnSecurityRuleTableInput" + } + } + }, + "required": [ + "tables" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully fetched column security rules", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ColumnSecurityRuleResponse" + } + } + } + } + }, + "400": { + "description": "Bad request - Table not found or invalid parameters", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden - User doesn't have permission to access security rules for this table", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", @@ -10722,6 +10810,97 @@ } } }, + "/api/rest/2.0/security/column/rules/update": { + "post": { + "operationId": "updateColumnSecurityRules", + "description": "\nBeta Version: 10.12.0.cl or later\n\nCreates, updates, or deletes column security rules for specified tables.\n\nThis 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.\n\n#### Usage guidelines\n\n- Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID)\n- Use `clear_csr: true` to remove all column security rules from the table\n- For each column, specify the security rule using `column_security_rules` array\n- Use `is_unsecured: true` to mark a specific column as unprotected\n- Use `group_access` operations to manage group associations:\n - `ADD`: Add groups to the column's access list\n - `REMOVE`: Remove groups from the column's access list\n - `REPLACE`: Replace all existing groups with the specified groups\n\n#### Required permissions\n\n- `ADMINISTRATION` - Can administer ThoughtSpot\n- `DATAMANAGEMENT` - Can manage data (if RBAC is disabled)\n- `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled)\n\n#### Example request\n\n```json\n{\n \"identifier\": \"table-guid\",\n \"obj_identifier\": \"table-object-id\",\n \"clear_csr\": false,\n \"column_security_rules\": [\n {\n \"column_identifier\": \"col id or col name\",\n \"is_unsecured\": false,\n \"group_access\": [\n {\n \"operation\": \"ADD\",\n \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"]\n }\n ]\n },\n {\n \"column_identifier\": \"col id or col name\",\n \"is_unsecured\": true\n },\n {\n \"column_identifier\": \"col id or col name\",\n \"is_unsecured\": false,\n \"group_access\": [\n {\n \"operation\": \"REPLACE\",\n \"group_identifiers\": [\"management_group_id\", \"management_group_name\"]\n }\n ]\n }\n ]\n}\n```\n\n#### Request Body Schema\n\n- `identifier` (string, optional): GUID or name of the table for which we want to create column security rules\n- `obj_identifier` (string, optional): The object ID of the table\n- `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed\n- `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column\n\nEach column security rule object contains:\n- `column_identifier` (string, required): Column identifier (col_id or name)\n- `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed\n- `group_access` (array of objects, optional): Array of group operation objects\n\nEach group operation object contains:\n- `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE\n- `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed\n\n#### Response\n\nThis API does not return any response body. A successful operation returns HTTP 200 status code.\n\n#### Operation Types\n\n- **ADD**: Adds the specified groups to the column's access list\n- **REMOVE**: Removes the specified groups from the column's access list \n- **REPLACE**: Replaces all existing groups with the specified groups \n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "GUID or name of the table for which we want to create column security rules", + "type": "string" + }, + "obj_identifier": { + "description": "The object ID of the table", + "type": "string" + }, + "clear_csr": { + "description": "If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed", + "type": "boolean", + "nullable": true + }, + "column_security_rules": { + "description": "Array where each object defines the security rule for a specific column", + "type": "array", + "items": { + "$ref": "#/components/schemas/ColumnSecurityRuleUpdate" + } + } + }, + "required": [ + "column_security_rules" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully updated column security rules" + }, + "400": { + "description": "Bad request - Invalid parameters or table not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden - User doesn't have permission to modify security rules for this table", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", @@ -16016,6 +16195,120 @@ }, "description": "MetadataType InputType used in Permission API's" }, + "ColumnSecurityRuleTableInput": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Name or GUID of the table", + "nullable": true + }, + "obj_identifier": { + "type": "string", + "description": "Object ID of the table", + "nullable": true + } + } + }, + "ColumnSecurityRuleResponse": { + "type": "object", + "properties": { + "guid": { + "type": "string", + "description": "GUID of the table for which the column security rules are fetched", + "nullable": true + }, + "objId": { + "type": "string", + "description": "Object ID of the table for which the column security rules are fetched", + "nullable": true + }, + "columnSecurityRules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ColumnSecurityRule" + }, + "description": "Array containing column security rule objects", + "nullable": true + } + } + }, + "ColumnSecurityRule": { + "type": "object", + "required": [ + "column" + ], + "properties": { + "column": { + "$ref": "#/components/schemas/ColumnSecurityRuleColumn", + "description": "Information about the column" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ColumnSecurityRuleGroup" + }, + "description": "Array of groups that have access to this column", + "nullable": true + }, + "sourceTableDetails": { + "$ref": "#/components/schemas/ColumnSecurityRuleSourceTable", + "description": "Information about the source table", + "nullable": true + } + } + }, + "ColumnSecurityRuleColumn": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the column" + }, + "name": { + "type": "string", + "description": "The name of the column" + } + } + }, + "ColumnSecurityRuleGroup": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the group" + }, + "name": { + "type": "string", + "description": "The name of the group" + } + } + }, + "ColumnSecurityRuleSourceTable": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the source table" + }, + "name": { + "type": "string", + "description": "The name of the source table" + } + } + }, "SearchDataResponse": { "type": "object", "required": [ @@ -18750,6 +19043,56 @@ } } }, + "ColumnSecurityRuleUpdate": { + "type": "object", + "required": [ + "column_identifier" + ], + "properties": { + "column_identifier": { + "type": "string", + "description": "Column identifier (col_id or name)" + }, + "is_unsecured": { + "type": "boolean", + "description": "If true, the column will be marked as unprotected and all groups associated with it will be removed", + "nullable": true + }, + "group_access": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ColumnSecurityRuleGroupOperation" + }, + "description": "Array of group operation objects that specifies the actions for groups to be associated with a column", + "nullable": true + } + } + }, + "ColumnSecurityRuleGroupOperation": { + "type": "object", + "required": [ + "operation", + "group_identifiers" + ], + "properties": { + "operation": { + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ], + "description": "Type of operation to be performed on the groups" + }, + "group_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of group identifiers (name or GUID) on which the operation will be performed" + } + } + }, "MetadataObject": { "type": "object", "required": [ From b1921d1b4fb81291f7ff036b22fcc73ab99e1e11 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 11 Jul 2025 21:45:21 +0000 Subject: [PATCH 288/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9a2a689d5..60fbd24e0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -18899,9 +18899,6 @@ }, "ExportMetadataTypeInput": { "type": "object", - "required": [ - "identifier" - ], "properties": { "type": { "type": "string", @@ -18921,7 +18918,19 @@ }, "identifier": { "type": "string", - "description": "Unique ID or name of the metadata object." + "description": "Unique ID or name of the metadata object. Not required if the metadata type is ANSWER when session_id and generation_number is set.", + "nullable": true + }, + "session_identifier": { + "type": "string", + "description": "Unique ID of the Answer session. Required if the metadata type is ANSWER and identifier is not set.", + "nullable": true + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation Number of the Answer session. Required if the metadata type is ANSWER and identifier is not set.", + "nullable": true } }, "description": "MetadataType InputType used in Export MetadataType API" From fd3ab39cc2651c737dc9f33fc543c55b30e2935b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 12 Jul 2025 05:13:33 +0000 Subject: [PATCH 289/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 581 +++++++++++++++++++++++++++++++- 1 file changed, 573 insertions(+), 8 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 60fbd24e0..e09f837cb 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -45,6 +45,14 @@ ], "description": "Roles for version 9.12.0.cl" }, + { + "name": "10.12.0.cl", + "id": "10.12.0.cl", + "tags": [ + "10.12.0.cl" + ], + "description": "Roles for version 10.12.0.cl" + }, { "name": "9.2.0.cl", "id": "9.2.0.cl", @@ -69,14 +77,6 @@ ], "description": "Roles for version 9.6.0.cl" }, - { - "name": "10.12.0.cl", - "id": "10.12.0.cl", - "tags": [ - "10.12.0.cl" - ], - "description": "Roles for version 10.12.0.cl" - }, { "name": "10.10.0.cl", "id": "10.10.0.cl", @@ -1438,6 +1438,463 @@ } } }, + "/api/rest/2.0/connection-configurations/search": { + "post": { + "operationId": "connectionConfigurationSearch", + "description": "\n Version: 10.12.0.cl or later\n\nGets connection configuration objects.\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#### Usage guidelines\n* To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection GUID in the request body.\n* To fetch details of a configuration object, specify the configuration object GUID.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connection Configurations", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "configuration_identifier": { + "description": "Unique ID or name of the configuration.", + "type": "string" + }, + "policy_type": { + "description": "Type of policy.", + "type": "string", + "enum": [ + "NO_POLICY", + "PRINCIPALS", + "PROCESSES" + ] + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Configuration fetched successfully.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionConfigurationResponse" + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/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", + "tags": [ + "Connection Configurations", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the configuration.", + "type": "string" + }, + "description": { + "description": "Description of the configuration.", + "type": "string" + }, + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "configuration": { + "description": "Configuration properties in JSON.", + "type": "object" + }, + "policy_type": { + "description": "Type of policy.", + "default": "NO_POLICY", + "type": "string", + "enum": [ + "NO_POLICY", + "PRINCIPALS", + "PROCESSES" + ] + }, + "policy_principals": { + "description": "Unique ID or name of the User and User Groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "policy_processes": { + "description": "Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "SAGE_INDEXING", + "ROW_COUNT_STATS" + ] + } + }, + "authentication_type": { + "description": "Type of authentication used for the connection.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "KEY_PAIR", + "PERSONAL_ACCESS_TOKEN", + "OAUTH_WITH_SERVICE_PRINCIPAL" + ] + } + }, + "required": [ + "name", + "connection_identifier", + "configuration" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Connection configuration successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionConfigurationResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection-configurations/delete": { + "post": { + "operationId": "deleteConnectionConfiguration", + "description": "\n Version: 10.12.0.cl or later\n\nDeletes connection configuration objects.\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\n\n\n#### Endpoint URL\n", + "tags": [ + "Connection Configurations", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration_identifier": { + "description": "Unique ID or name of the configuration.", + "type": "string" + }, + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + } + }, + "required": [ + "configuration_identifier", + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Connection Configurations successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/connection-configurations/{configuration_identifier}/update": { + "post": { + "operationId": "updateConnectionConfiguration", + "description": "\n Version: 10.12.0.cl or later\n\nUpdates a connection config 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", + "tags": [ + "Connection Configurations", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connection_identifier": { + "description": "Unique ID or name of the connection.", + "type": "string" + }, + "name": { + "description": "Name of the configuration to update.", + "type": "string" + }, + "description": { + "description": "Description of the configuration.", + "type": "string" + }, + "configuration": { + "description": "Configuration properties in JSON.", + "type": "object" + }, + "policy_type": { + "description": "Type of policy.", + "type": "string", + "enum": [ + "NO_POLICY", + "PRINCIPALS", + "PROCESSES" + ] + }, + "policy_principals": { + "description": "Unique ID or name of the User and User Groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "policy_processes": { + "description": "Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "SAGE_INDEXING", + "ROW_COUNT_STATS" + ] + } + }, + "authentication_type": { + "description": "Type of authentication.", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "OAUTH_WITH_SERVICE_PRINCIPAL", + "EXTOAUTH", + "KEY_PAIR", + "EXTOAUTH_WITH_PKCE", + "OAUTH_WITH_PKCE", + "PERSONAL_ACCESS_TOKEN" + ] + }, + "disable": { + "description": "Indicates whether the configuration enable/disable.", + "default": false, + "type": "boolean", + "nullable": true + } + }, + "required": [ + "connection_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "configuration_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the configuration." + } + ], + "responses": { + "204": { + "description": "Connection configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/connection/create": { "post": { "operationId": "createConnection", @@ -17655,6 +18112,114 @@ } } }, + "ConnectionConfigurationResponse": { + "type": "object", + "properties": { + "configuration_identifier": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "configuration": { + "type": "object", + "nullable": true + }, + "policy_principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserPrincipal" + }, + "nullable": true + }, + "policy_processes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "SAGE_INDEXING", + "ROW_COUNT_STATS" + ] + }, + "nullable": true + }, + "disabled": { + "type": "boolean", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "nullable": true + }, + "policy_type": { + "type": "string", + "enum": [ + "NO_POLICY", + "PRINCIPALS", + "PROCESSES" + ], + "nullable": true + } + } + }, + "UserPrincipal": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + } + }, "GenericInfo": { "type": "object", "properties": { From 3b6af0975f69de8fc15d0579580e9b71febf7143 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 14 Jul 2025 11:57:42 +0000 Subject: [PATCH 290/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e09f837cb..3c6a6ee20 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -773,9 +773,9 @@ "description": "Indicates whether the specified attributes should be persisted or not.", "type": "string", "enum": [ + "REPLACE", "APPEND", "NONE", - "REPLACE", "RESET" ] }, From a19e72bef2ead19d4acecce06a94e4eaab5bb544 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 15 Jul 2025 05:08:01 +0000 Subject: [PATCH 291/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 54 ++++++++++++++++----------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3c6a6ee20..53f430476 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1441,7 +1441,7 @@ "/api/rest/2.0/connection-configurations/search": { "post": { "operationId": "connectionConfigurationSearch", - "description": "\n Version: 10.12.0.cl or later\n\nGets connection configuration objects.\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#### Usage guidelines\n* To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection GUID in the request body.\n* To fetch details of a configuration object, specify the configuration object GUID.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.12.0.cl or later\n\nGets connection configuration objects.\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#### Usage guidelines\n* 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.\n* To fetch details of a configuration object, specify the configuration object name or GUID.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connection Configurations", "10.12.0.cl" @@ -1562,6 +1562,17 @@ "description": "Unique ID or name of the connection.", "type": "string" }, + "authentication_type": { + "description": "Type of authentication used for the connection.", + "default": "SERVICE_ACCOUNT", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "KEY_PAIR", + "PERSONAL_ACCESS_TOKEN", + "OAUTH_WITH_SERVICE_PRINCIPAL" + ] + }, "configuration": { "description": "Configuration properties in JSON.", "type": "object" @@ -1593,17 +1604,6 @@ "ROW_COUNT_STATS" ] } - }, - "authentication_type": { - "description": "Type of authentication used for the connection.", - "default": "SERVICE_ACCOUNT", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "KEY_PAIR", - "PERSONAL_ACCESS_TOKEN", - "OAUTH_WITH_SERVICE_PRINCIPAL" - ] } }, "required": [ @@ -1754,7 +1754,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 config 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 **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" @@ -1777,6 +1777,20 @@ "description": "Description of the configuration.", "type": "string" }, + "authentication_type": { + "description": "Type of authentication.", + "type": "string", + "enum": [ + "SERVICE_ACCOUNT", + "OAUTH", + "OAUTH_WITH_SERVICE_PRINCIPAL", + "EXTOAUTH", + "KEY_PAIR", + "EXTOAUTH_WITH_PKCE", + "OAUTH_WITH_PKCE", + "PERSONAL_ACCESS_TOKEN" + ] + }, "configuration": { "description": "Configuration properties in JSON.", "type": "object" @@ -1808,20 +1822,6 @@ ] } }, - "authentication_type": { - "description": "Type of authentication.", - "type": "string", - "enum": [ - "SERVICE_ACCOUNT", - "OAUTH", - "OAUTH_WITH_SERVICE_PRINCIPAL", - "EXTOAUTH", - "KEY_PAIR", - "EXTOAUTH_WITH_PKCE", - "OAUTH_WITH_PKCE", - "PERSONAL_ACCESS_TOKEN" - ] - }, "disable": { "description": "Indicates whether the configuration enable/disable.", "default": false, From 2136bd1e1118ac9c01dea92127e1fa16f3d1d383 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 16 Jul 2025 06:18:22 +0000 Subject: [PATCH 292/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 53f430476..cbcb5f226 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3162,7 +3162,7 @@ "/api/rest/2.0/calendars/create": { "post": { "operationId": "createCalendar", - "description": "\n Version: 10.12.0.cl or later\n\nCreates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n\n#### Usage guidelines\n\nYou can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required:\n\n* Name of the custom calendar.\n* Calendar creation method. To create a calendar from an existing table, specify the method:\n\n - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request.\n - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request.\n\n* Connection ID and Table name\n* Schema name. Optional for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL.\n* Database name. Mandatory for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL. \n\n**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.\n\n##### Calendar type\nThe API allows you to create the following types of calendars:\n\n* `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.\n\n* `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month.\n* `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between.\n* `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months.\n\nTo 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.\n\nYou can also set the starting day of the week and customize the prefixes for year and quarter labels.\n\n#### Examples\n\nTo create a calendar from an existing table:\n\n```\n{\n \"name\": \"MyCustomCalendar1\",\n \"table_reference\": {\n \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\",\n \"table_name\": \"MyCalendarTable\",\n \"database_name\": \"RETAILAPPAREL\",\n \"schema_name\": \"PUBLIC\"\n },\n \"creation_method\": \"FROM_EXISTING_TABLE\",\n}\n```\n\nTo create a calendar from scratch:\n\n```\n{\n \"name\": \"MyCustomCalendar1\",\n \"table_reference\": {\n \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\",\n \"table_name\": \"MyCalendarTable\",\n \"database_name\": \"RETAILAPPAREL\",\n \"schema_name\": \"PUBLIC\"\n },\n \"creation_method\": \"FROM_INPUT_PARAMS\",\n \"calendar_type\": \"MONTH_OFFSET\",\n \"month_offset\": \"April\",\n \"start_day_of_week\": \"Monday\",\n \"quarter_name_prefix\": \"Q\",\n \"year_name_prefix\": \"FY\",\n \"start_date\": \"04/01/2025\",\n \"end_date\": \"04/31/2025\"\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.12.0.cl or later\n\nCreates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n\n#### Usage guidelines\n\nYou can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required:\n\n* Name of the custom calendar.\n* Calendar creation method. To create a calendar from an existing table, specify the method:\n\n - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request.\n - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request.\n\n* Connection ID and Table name\n* Database and schema name attributes:\n For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. \n 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.\n Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional.\n\n**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.\n\n##### Calendar type\nThe API allows you to create the following types of calendars:\n\n* `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.\n\n* `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month.\n* `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between.\n* `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months.\n\nTo 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.\n\nYou can also set the starting day of the week and customize the prefixes for year and quarter labels.\n\n#### Examples\n\nTo create a calendar from an existing table:\n\n```\n{\n \"name\": \"MyCustomCalendar1\",\n \"table_reference\": {\n \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\",\n \"table_name\": \"MyCalendarTable\",\n \"database_name\": \"RETAILAPPAREL\",\n \"schema_name\": \"PUBLIC\"\n },\n \"creation_method\": \"FROM_EXISTING_TABLE\",\n}\n```\n\nTo create a calendar from scratch:\n\n```\n{\n \"name\": \"MyCustomCalendar1\",\n \"table_reference\": {\n \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\",\n \"table_name\": \"MyCalendarTable\",\n \"database_name\": \"RETAILAPPAREL\",\n \"schema_name\": \"PUBLIC\"\n },\n \"creation_method\": \"FROM_INPUT_PARAMS\",\n \"calendar_type\": \"MONTH_OFFSET\",\n \"month_offset\": \"April\",\n \"start_day_of_week\": \"Monday\",\n \"quarter_name_prefix\": \"Q\",\n \"year_name_prefix\": \"FY\",\n \"start_date\": \"04/01/2025\",\n \"end_date\": \"04/31/2025\"\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Calendars", "10.12.0.cl" @@ -3635,7 +3635,7 @@ "/api/rest/2.0/calendars/{calendar_identifier}/update": { "post": { "operationId": "updateCalendar", - "description": "\n Version: 10.12.0.cl or later\n\nUpdates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\n\nYou can update the properties of a calendar using one of the following methods:\n* `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request.\n* `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request.\n\nTo update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: \n\n* Connection ID and Table name\n* Schema name. Optional for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL.\n* Database name. Mandatory for all CDW connectors except Teradata, MySQL, SingleSore, Denodo, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL. \n\nThe 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. \n\n#### Examples\n\nUpdate a custom calendar using an existing Table in ThoughtSpot:\n\n```\n{\n \"update_method\": \"FROM_EXISTING_TABLE\",\n \"table_reference\": {\n \"connection_identifier\": \"Connection1\",\n \"database_name\": \"db1\",\n \"table_name\": \"custom_calendar_2025\",\n \"schame_name\": \"schemaVar\"\n }\n}\n```\n\nUpdate a custom calendar with the attributes defined in the API request:\n\n```\n{\n \"update_method\": \"FROM_INPUT_PARAMS\",\n \"table_reference\": {\n \"connection_identifier\": \"Connection1\",\n \"database_name\": \"db1\",\n \"table_name\": \"custom_calendar_2025\",\n \"schame_name\": \"schemaVar\"\n },\n \"month_offset\": \"August\",\n \"start_day_of_week\": \"Monday\",\n \"start_date\": \"08/01/2025\",\n \"end_date\": \"07/31/2026\"\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.12.0.cl or later\n\nUpdates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal).\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\n\nYou can update the properties of a calendar using one of the following methods:\n* `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request.\n* `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request.\n\nTo update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: \n\n* Connection ID and Table name\n* Database and schema name attributes:\n For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. \n 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.\n Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional.\n\nThe 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. \n\n#### Examples\n\nUpdate a custom calendar using an existing Table in ThoughtSpot:\n\n```\n{\n \"update_method\": \"FROM_EXISTING_TABLE\",\n \"table_reference\": {\n \"connection_identifier\": \"Connection1\",\n \"database_name\": \"db1\",\n \"table_name\": \"custom_calendar_2025\",\n \"schame_name\": \"schemaVar\"\n }\n}\n```\n\nUpdate a custom calendar with the attributes defined in the API request:\n\n```\n{\n \"update_method\": \"FROM_INPUT_PARAMS\",\n \"table_reference\": {\n \"connection_identifier\": \"Connection1\",\n \"database_name\": \"db1\",\n \"table_name\": \"custom_calendar_2025\",\n \"schame_name\": \"schemaVar\"\n },\n \"month_offset\": \"August\",\n \"start_day_of_week\": \"Monday\",\n \"start_date\": \"08/01/2025\",\n \"end_date\": \"07/31/2026\"\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Calendars", "10.12.0.cl" @@ -21165,7 +21165,7 @@ }, "table_name": { "type": "string", - "description": "Name of the table." + "description": "Name of the table. Table names may be case-sensitive depending on the database system." } } }, From ce5b3bc6f38e5e57ce25c758089320f7c60a3aa3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 17 Jul 2025 02:07:45 +0000 Subject: [PATCH 293/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cbcb5f226..db3fd9a40 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13,6 +13,14 @@ ], "description": "Roles for version 10.4.0.cl" }, + { + "name": "10.11.0.cl", + "id": "10.11.0.cl", + "tags": [ + "10.11.0.cl" + ], + "description": "Roles for version 10.11.0.cl" + }, { "name": "10.7.0.cl", "id": "10.7.0.cl", @@ -223,10 +231,10 @@ "/api/rest/2.0/ai/analytical-questions/v2/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.7.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo enable accurate query decomposition, the request must include at least one of the following metadata identifiers within `context_metadata`: `answer_ids`, `liveboard_ids`, or `worksheet_ids`.\n\nYou can further enhance the quality and precision of decomposition by providing additional context such as:\n- `content`: user-supplied data like CSV or text\n- `instructions`: specific user directions for tailoring the decomposition\n- `conversation_id`: unique identifier to preserve context across interactions\n\nIf the API request is successful, ThoughtSpot returns a list of decomposed analytical queries, each aligned with the user's original question.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo enable accurate query decomposition, the request must include at least one of the following metadata identifiers within `context_metadata`: `answer_ids`, `liveboard_ids`, or `worksheet_ids`.\n\nYou can further enhance the quality and precision of decomposition by providing additional context such as:\n- `content`: user-supplied data like CSV or text\n- `instructions`: specific user directions for tailoring the decomposition\n- `conversation_id`: unique identifier to preserve context across interactions\n\nIf the API request is successful, ThoughtSpot returns a list of decomposed analytical queries, each aligned with the user's original question.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.7.0.cl" + "10.11.0.cl" ], "requestBody": { "content": { From 8dd6ae2dc8b9cdae348981da20adb85ac904bc63 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 17 Jul 2025 12:57:13 +0000 Subject: [PATCH 294/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index db3fd9a40..44ea222ea 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -3398,7 +3398,7 @@ "/api/rest/2.0/calendars/generate-csv": { "post": { "operationId": "generateCSV", - "description": "\n Version: 10.12.0.cl or later\n\nExports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\n\nUse this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters.\n\n* Name of the calendar\n* Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute.\n\nYou can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.12.0.cl or later\n\nExports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required.\n\n#### Usage guidelines\n\nUse this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters.\n\n* Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute.\n\nYou can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Custom Calendars", "10.12.0.cl" From 30ea02c8c20d14ebec2e5f1d3e1ba093574653ea Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 18 Jul 2025 03:07:14 +0000 Subject: [PATCH 295/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 309 +++++++++++++++++++++++++++++++- 1 file changed, 308 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 44ea222ea..f2491f992 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4760,7 +4760,15 @@ "properties": { "template_properties": { "description": "Email customization configuration as key value pair", - "type": "object" + "allOf": [ + { + "$ref": "#/components/schemas/Template_Properties_Input_Create" + } + ] + }, + "org_identifier": { + "description": "Unique ID or name of org
Version: 10.12.0.cl or later", + "type": "string" } }, "required": [ @@ -4820,6 +4828,7 @@ "post": { "operationId": "deleteEmailCustomization", "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customization.\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\n- Call the search API endpoint to get the `template_identifier` from the response.\n- Use that `template_identifier` as a parameter in this API request.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "Email Customization", "10.10.0.cl" @@ -4872,6 +4881,81 @@ } } }, + "/api/rest/2.0/customization/email/delete": { + "post": { + "operationId": "deleteOrgEmailCustomization", + "description": "Beta Version: 10.12.0.cl or later", + "tags": [ + "Email Customization", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": "Unique identifier of the organization.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Email Customization configuration successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/customization/email/search": { "post": { "operationId": "searchEmailCustomization", @@ -4880,6 +4964,25 @@ "Email Customization", "10.10.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": "Unique ID or name of org
Version: 10.12.0.cl or later", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, "parameters": [], "responses": { "200": { @@ -4928,6 +5031,89 @@ } } }, + "/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 }\n}\n```\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Email Customization", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "template_properties": { + "description": "Email customization configuration as key value pair", + "allOf": [ + { + "$ref": "#/components/schemas/Template_Properties_Input_Create" + } + ] + }, + "org_identifier": { + "description": "Unique ID or name of org", + "type": "string" + } + }, + "required": [ + "template_properties" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Email Customization configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/customization/email/validate": { "post": { "operationId": "validateEmailCustomization", @@ -21148,6 +21334,127 @@ } } }, + "Template_Properties_Input_Create": { + "type": "object", + "properties": { + "cta_button_bg_color": { + "type": "string", + "description": "Background color for call-to-action button in hex format", + "nullable": true + }, + "cta_text_font_color": { + "type": "string", + "description": "Text color for call-to-action button in hex format", + "nullable": true + }, + "primary_bg_color": { + "type": "string", + "description": "Primary background color in hex format", + "nullable": true + }, + "home_url": { + "type": "string", + "description": "Home page URL (HTTP/HTTPS only)", + "nullable": true + }, + "logo_url": { + "type": "string", + "description": "Logo image URL (HTTP/HTTPS only)", + "nullable": true + }, + "font_family": { + "type": "string", + "description": "Font family for email content (e.g., Arial, sans-serif)", + "nullable": true + }, + "product_name": { + "type": "string", + "description": "Product name to display", + "nullable": true + }, + "footer_address": { + "type": "string", + "description": "Footer address text", + "nullable": true + }, + "footer_phone": { + "type": "string", + "description": "Footer phone number", + "nullable": true + }, + "replacement_value_for_liveboard": { + "type": "string", + "description": "Replacement value for Liveboard", + "nullable": true + }, + "replacement_value_for_answer": { + "type": "string", + "description": "Replacement value for Answer", + "nullable": true + }, + "replacement_value_for_spot_iq": { + "type": "string", + "description": "Replacement value for SpotIQ", + "nullable": true + }, + "hide_footer_address": { + "type": "boolean", + "description": "Whether to hide footer address", + "nullable": true + }, + "hide_footer_phone": { + "type": "boolean", + "description": "Whether to hide footer phone number", + "nullable": true + }, + "hide_manage_notification": { + "type": "boolean", + "description": "Whether to hide manage notification link", + "nullable": true + }, + "hide_mobile_app_nudge": { + "type": "boolean", + "description": "Whether to hide mobile app nudge", + "nullable": true + }, + "hide_privacy_policy": { + "type": "boolean", + "description": "Whether to hide privacy policy link", + "nullable": true + }, + "hide_product_name": { + "type": "boolean", + "description": "Whether to hide product name", + "nullable": true + }, + "hide_ts_vocabulary_definitions": { + "type": "boolean", + "description": "Whether to hide ThoughtSpot vocabulary definitions", + "nullable": true + }, + "hide_notification_status": { + "type": "boolean", + "description": "Whether to hide notification status", + "nullable": true + }, + "hide_error_message": { + "type": "boolean", + "description": "Whether to hide error message", + "nullable": true + }, + "hide_unsubscribe_link": { + "type": "boolean", + "description": "Whether to hide unsubscribe link", + "nullable": true + }, + "hide_modify_alert": { + "type": "boolean", + "description": "Whether to hide modify alert", + "nullable": true + } + }, + "description": "Email customization configuration properties" + }, "ExternalTableInput": { "type": "object", "required": [ From 6cdf1f54d2e3e6a5af569bbd60e2caa7294e5593 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 18 Jul 2025 07:51:54 +0000 Subject: [PATCH 296/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f2491f992..ea1f60547 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4884,7 +4884,7 @@ "/api/rest/2.0/customization/email/delete": { "post": { "operationId": "deleteOrgEmailCustomization", - "description": "Beta Version: 10.12.0.cl or later", + "description": "\nBeta Version: 10.12.0.cl or later\n\nDeletes the configuration for the email customization.\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\n- Call the search API endpoint to get the `org_identifier` from the response.\n- Use that `org_identifier` as a parameter in this API request.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.12.0.cl" From ab42ba93dcb917b189d6cbb1bc0502bb4dac2c34 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 22 Jul 2025 06:59:56 +0000 Subject: [PATCH 297/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ea1f60547..528716dc3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8100,7 +8100,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires at least view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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). \n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires at least view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" From 8e11c5a1242732a3f7d5e2a75d6f96613b22ca2c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 24 Jul 2025 13:07:44 +0000 Subject: [PATCH 298/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 311 +------------------------------- 1 file changed, 2 insertions(+), 309 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 528716dc3..44ea222ea 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4760,15 +4760,7 @@ "properties": { "template_properties": { "description": "Email customization configuration as key value pair", - "allOf": [ - { - "$ref": "#/components/schemas/Template_Properties_Input_Create" - } - ] - }, - "org_identifier": { - "description": "Unique ID or name of org
Version: 10.12.0.cl or later", - "type": "string" + "type": "object" } }, "required": [ @@ -4828,7 +4820,6 @@ "post": { "operationId": "deleteEmailCustomization", "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customization.\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\n- Call the search API endpoint to get the `template_identifier` from the response.\n- Use that `template_identifier` as a parameter in this API request.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "Email Customization", "10.10.0.cl" @@ -4881,81 +4872,6 @@ } } }, - "/api/rest/2.0/customization/email/delete": { - "post": { - "operationId": "deleteOrgEmailCustomization", - "description": "\nBeta Version: 10.12.0.cl or later\n\nDeletes the configuration for the email customization.\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\n- Call the search API endpoint to get the `org_identifier` from the response.\n- Use that `org_identifier` as a parameter in this API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Email Customization", - "10.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": "Unique identifier of the organization.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Email Customization configuration successfully deleted." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/customization/email/search": { "post": { "operationId": "searchEmailCustomization", @@ -4964,25 +4880,6 @@ "Email Customization", "10.10.0.cl" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "org_identifiers": { - "description": "Unique ID or name of org
Version: 10.12.0.cl or later", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, "parameters": [], "responses": { "200": { @@ -5031,89 +4928,6 @@ } } }, - "/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 }\n}\n```\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Email Customization", - "10.12.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "template_properties": { - "description": "Email customization configuration as key value pair", - "allOf": [ - { - "$ref": "#/components/schemas/Template_Properties_Input_Create" - } - ] - }, - "org_identifier": { - "description": "Unique ID or name of org", - "type": "string" - } - }, - "required": [ - "template_properties" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Email Customization configuration successfully updated." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/customization/email/validate": { "post": { "operationId": "validateEmailCustomization", @@ -8100,7 +7914,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires at least view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires at least view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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). \n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -21334,127 +21148,6 @@ } } }, - "Template_Properties_Input_Create": { - "type": "object", - "properties": { - "cta_button_bg_color": { - "type": "string", - "description": "Background color for call-to-action button in hex format", - "nullable": true - }, - "cta_text_font_color": { - "type": "string", - "description": "Text color for call-to-action button in hex format", - "nullable": true - }, - "primary_bg_color": { - "type": "string", - "description": "Primary background color in hex format", - "nullable": true - }, - "home_url": { - "type": "string", - "description": "Home page URL (HTTP/HTTPS only)", - "nullable": true - }, - "logo_url": { - "type": "string", - "description": "Logo image URL (HTTP/HTTPS only)", - "nullable": true - }, - "font_family": { - "type": "string", - "description": "Font family for email content (e.g., Arial, sans-serif)", - "nullable": true - }, - "product_name": { - "type": "string", - "description": "Product name to display", - "nullable": true - }, - "footer_address": { - "type": "string", - "description": "Footer address text", - "nullable": true - }, - "footer_phone": { - "type": "string", - "description": "Footer phone number", - "nullable": true - }, - "replacement_value_for_liveboard": { - "type": "string", - "description": "Replacement value for Liveboard", - "nullable": true - }, - "replacement_value_for_answer": { - "type": "string", - "description": "Replacement value for Answer", - "nullable": true - }, - "replacement_value_for_spot_iq": { - "type": "string", - "description": "Replacement value for SpotIQ", - "nullable": true - }, - "hide_footer_address": { - "type": "boolean", - "description": "Whether to hide footer address", - "nullable": true - }, - "hide_footer_phone": { - "type": "boolean", - "description": "Whether to hide footer phone number", - "nullable": true - }, - "hide_manage_notification": { - "type": "boolean", - "description": "Whether to hide manage notification link", - "nullable": true - }, - "hide_mobile_app_nudge": { - "type": "boolean", - "description": "Whether to hide mobile app nudge", - "nullable": true - }, - "hide_privacy_policy": { - "type": "boolean", - "description": "Whether to hide privacy policy link", - "nullable": true - }, - "hide_product_name": { - "type": "boolean", - "description": "Whether to hide product name", - "nullable": true - }, - "hide_ts_vocabulary_definitions": { - "type": "boolean", - "description": "Whether to hide ThoughtSpot vocabulary definitions", - "nullable": true - }, - "hide_notification_status": { - "type": "boolean", - "description": "Whether to hide notification status", - "nullable": true - }, - "hide_error_message": { - "type": "boolean", - "description": "Whether to hide error message", - "nullable": true - }, - "hide_unsubscribe_link": { - "type": "boolean", - "description": "Whether to hide unsubscribe link", - "nullable": true - }, - "hide_modify_alert": { - "type": "boolean", - "description": "Whether to hide modify alert", - "nullable": true - } - }, - "description": "Email customization configuration properties" - }, "ExternalTableInput": { "type": "object", "required": [ From 56105ddcd916e7c81bd58ac5f859e5eba588f3d0 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 25 Jul 2025 11:51:45 +0000 Subject: [PATCH 299/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 311 +++++++++++++++++++++++++++++++- 1 file changed, 309 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 44ea222ea..528716dc3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4760,7 +4760,15 @@ "properties": { "template_properties": { "description": "Email customization configuration as key value pair", - "type": "object" + "allOf": [ + { + "$ref": "#/components/schemas/Template_Properties_Input_Create" + } + ] + }, + "org_identifier": { + "description": "Unique ID or name of org
Version: 10.12.0.cl or later", + "type": "string" } }, "required": [ @@ -4820,6 +4828,7 @@ "post": { "operationId": "deleteEmailCustomization", "description": "\nBeta Version: 10.10.0.cl or later\n\nDeletes the configuration for the email customization.\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\n- Call the search API endpoint to get the `template_identifier` from the response.\n- Use that `template_identifier` as a parameter in this API request.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "Email Customization", "10.10.0.cl" @@ -4872,6 +4881,81 @@ } } }, + "/api/rest/2.0/customization/email/delete": { + "post": { + "operationId": "deleteOrgEmailCustomization", + "description": "\nBeta Version: 10.12.0.cl or later\n\nDeletes the configuration for the email customization.\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\n- Call the search API endpoint to get the `org_identifier` from the response.\n- Use that `org_identifier` as a parameter in this API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Email Customization", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": "Unique identifier of the organization.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Email Customization configuration successfully deleted." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/customization/email/search": { "post": { "operationId": "searchEmailCustomization", @@ -4880,6 +4964,25 @@ "Email Customization", "10.10.0.cl" ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifiers": { + "description": "Unique ID or name of org
Version: 10.12.0.cl or later", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, "parameters": [], "responses": { "200": { @@ -4928,6 +5031,89 @@ } } }, + "/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 }\n}\n```\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Email Customization", + "10.12.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "template_properties": { + "description": "Email customization configuration as key value pair", + "allOf": [ + { + "$ref": "#/components/schemas/Template_Properties_Input_Create" + } + ] + }, + "org_identifier": { + "description": "Unique ID or name of org", + "type": "string" + } + }, + "required": [ + "template_properties" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Email Customization configuration successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/customization/email/validate": { "post": { "operationId": "validateEmailCustomization", @@ -7914,7 +8100,7 @@ "/api/rest/2.0/report/answer": { "post": { "operationId": "exportAnswerReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires at least view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\nThe `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). \n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file.\n\nRequires at least view access to the Answer.\n\n#### Usage guidelines\n\nIn the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV.\n\n**NOTE**:\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n* HTML rendering is not supported for PDF exports of Answers with tables.\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\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -21148,6 +21334,127 @@ } } }, + "Template_Properties_Input_Create": { + "type": "object", + "properties": { + "cta_button_bg_color": { + "type": "string", + "description": "Background color for call-to-action button in hex format", + "nullable": true + }, + "cta_text_font_color": { + "type": "string", + "description": "Text color for call-to-action button in hex format", + "nullable": true + }, + "primary_bg_color": { + "type": "string", + "description": "Primary background color in hex format", + "nullable": true + }, + "home_url": { + "type": "string", + "description": "Home page URL (HTTP/HTTPS only)", + "nullable": true + }, + "logo_url": { + "type": "string", + "description": "Logo image URL (HTTP/HTTPS only)", + "nullable": true + }, + "font_family": { + "type": "string", + "description": "Font family for email content (e.g., Arial, sans-serif)", + "nullable": true + }, + "product_name": { + "type": "string", + "description": "Product name to display", + "nullable": true + }, + "footer_address": { + "type": "string", + "description": "Footer address text", + "nullable": true + }, + "footer_phone": { + "type": "string", + "description": "Footer phone number", + "nullable": true + }, + "replacement_value_for_liveboard": { + "type": "string", + "description": "Replacement value for Liveboard", + "nullable": true + }, + "replacement_value_for_answer": { + "type": "string", + "description": "Replacement value for Answer", + "nullable": true + }, + "replacement_value_for_spot_iq": { + "type": "string", + "description": "Replacement value for SpotIQ", + "nullable": true + }, + "hide_footer_address": { + "type": "boolean", + "description": "Whether to hide footer address", + "nullable": true + }, + "hide_footer_phone": { + "type": "boolean", + "description": "Whether to hide footer phone number", + "nullable": true + }, + "hide_manage_notification": { + "type": "boolean", + "description": "Whether to hide manage notification link", + "nullable": true + }, + "hide_mobile_app_nudge": { + "type": "boolean", + "description": "Whether to hide mobile app nudge", + "nullable": true + }, + "hide_privacy_policy": { + "type": "boolean", + "description": "Whether to hide privacy policy link", + "nullable": true + }, + "hide_product_name": { + "type": "boolean", + "description": "Whether to hide product name", + "nullable": true + }, + "hide_ts_vocabulary_definitions": { + "type": "boolean", + "description": "Whether to hide ThoughtSpot vocabulary definitions", + "nullable": true + }, + "hide_notification_status": { + "type": "boolean", + "description": "Whether to hide notification status", + "nullable": true + }, + "hide_error_message": { + "type": "boolean", + "description": "Whether to hide error message", + "nullable": true + }, + "hide_unsubscribe_link": { + "type": "boolean", + "description": "Whether to hide unsubscribe link", + "nullable": true + }, + "hide_modify_alert": { + "type": "boolean", + "description": "Whether to hide modify alert", + "nullable": true + } + }, + "description": "Email customization configuration properties" + }, "ExternalTableInput": { "type": "object", "required": [ From 6e561c4de179c7db348e8a3d1c36297625f9283b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 29 Jul 2025 17:28:28 +0000 Subject: [PATCH 300/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 528716dc3..6620e86bc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5578,7 +5578,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -8421,7 +8422,8 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -8646,7 +8648,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -8803,7 +8806,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_WEBHOOKS" ] } } @@ -13304,7 +13308,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -17658,7 +17663,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_MANAGE_WEBHOOKS" ] }, "description": "Privileges granted to the role." @@ -20214,7 +20220,8 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "PREVIEW_THOUGHTSPOT_SAGE" + "PREVIEW_THOUGHTSPOT_SAGE", + "CAN_MANAGE_WEBHOOKS" ] }, "description": "Privileges granted to the role." From 9060eb63f11f19adcefefd6e3bcf31583d70338d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 31 Jul 2025 04:20:20 +0000 Subject: [PATCH 301/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6620e86bc..7aeb96184 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2447,7 +2447,8 @@ "KEY_PAIR", "OAUTH_WITH_PKCE", "EXTOAUTH_WITH_PKCE", - "OAUTH_WITH_PEZ" + "OAUTH_WITH_PEZ", + "OAUTH_CLIENT_CREDENTIALS" ] }, "show_resolved_parameters": { From c51d07023202352a9d4c57e4662ad9730cfc6923 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 4 Aug 2025 07:59:05 +0000 Subject: [PATCH 302/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7aeb96184..0a9dea45d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5243,7 +5243,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ] }, "user_identifiers": { @@ -5596,7 +5598,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ] }, "user_identifiers": { @@ -5798,7 +5802,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ] }, "user_identifiers": { @@ -15892,7 +15898,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ], "description": "Type of the group.", "nullable": true @@ -19260,7 +19268,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ], "description": "Type of the group.", "nullable": true From 8b52fa0c4dd7293b0ae0f936399f43f6f05f9377 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 6 Aug 2025 05:16:12 +0000 Subject: [PATCH 303/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0a9dea45d..7aeb96184 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5243,9 +5243,7 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP", - "TEAM_GROUP", - "TENANT_GROUP" + "LDAP_GROUP" ] }, "user_identifiers": { @@ -5598,9 +5596,7 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP", - "TEAM_GROUP", - "TENANT_GROUP" + "LDAP_GROUP" ] }, "user_identifiers": { @@ -5802,9 +5798,7 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP", - "TEAM_GROUP", - "TENANT_GROUP" + "LDAP_GROUP" ] }, "user_identifiers": { @@ -15898,9 +15892,7 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP", - "TEAM_GROUP", - "TENANT_GROUP" + "LDAP_GROUP" ], "description": "Type of the group.", "nullable": true @@ -19268,9 +19260,7 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP", - "TEAM_GROUP", - "TENANT_GROUP" + "LDAP_GROUP" ], "description": "Type of the group.", "nullable": true From ca3c24fa3fcb53a786b8549082279b664709b7ba Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 11 Aug 2025 04:13:50 +0000 Subject: [PATCH 304/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7aeb96184..c47ace1b7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1578,7 +1578,8 @@ "SERVICE_ACCOUNT", "KEY_PAIR", "PERSONAL_ACCESS_TOKEN", - "OAUTH_WITH_SERVICE_PRINCIPAL" + "OAUTH_WITH_SERVICE_PRINCIPAL", + "OAUTH_CLIENT_CREDENTIALS" ] }, "configuration": { @@ -1796,7 +1797,8 @@ "KEY_PAIR", "EXTOAUTH_WITH_PKCE", "OAUTH_WITH_PKCE", - "PERSONAL_ACCESS_TOKEN" + "PERSONAL_ACCESS_TOKEN", + "OAUTH_CLIENT_CREDENTIALS" ] }, "configuration": { @@ -2327,7 +2329,7 @@ "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", - "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only.\n - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only.\n - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.2.0.cl or later\n\nGets connection objects.\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n- To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body.\n- To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`.\n- To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match.\n- To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`.\n- To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request.\n Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`).\n\n```\n{\n \"connections\": [\n {\n \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\",\n \"data_warehouse_objects\": [\n {\n \"database\": \"NEBULADEV\",\n \"schema\": \"INFORMATION_SCHEMA\",\n \"table\": \"APPLICABLE_ROLES\",\n \"column\": \"ROLE_NAME\"\n }\n ]\n }\n ],\n \"data_warehouse_object_type\": \"COLUMN\"\n}\n```\n\n- To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`.\n- To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are:\n - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.\n - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type.\n - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.\n - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth).\n - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only.\n - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only.\n - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only.\n - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only.\n- To include more details about connection objects in the API response, set `include_details` to `true`.\n- You can also sort the output by field names and filter connections by tags.\n\n**NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "9.2.0.cl" @@ -5243,7 +5245,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ] }, "user_identifiers": { @@ -5596,7 +5600,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ] }, "user_identifiers": { @@ -5798,7 +5804,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ] }, "user_identifiers": { @@ -15892,7 +15900,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ], "description": "Type of the group.", "nullable": true @@ -19260,7 +19270,9 @@ "type": "string", "enum": [ "LOCAL_GROUP", - "LDAP_GROUP" + "LDAP_GROUP", + "TEAM_GROUP", + "TENANT_GROUP" ], "description": "Type of the group.", "nullable": true From 6b7e6483c22b523b0b539f1335c67a1fa937126b Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 13 Aug 2025 22:39:37 +0000 Subject: [PATCH 305/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 106 +++++++++++++++++++++----------- 1 file changed, 70 insertions(+), 36 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c47ace1b7..56c9c7122 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -228,10 +228,10 @@ } } }, - "/api/rest/2.0/ai/analytical-questions/v2/": { + "/api/rest/2.0/ai/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo enable accurate query decomposition, the request must include at least one of the following metadata identifiers within `context_metadata`: `answer_ids`, `liveboard_ids`, or `worksheet_ids`.\n\nYou can further enhance the quality and precision of decomposition by providing additional context such as:\n- `content`: user-supplied data like CSV or text\n- `instructions`: specific user directions for tailoring the decomposition\n- `conversation_id`: unique identifier to preserve context across interactions\n\nIf the API request is successful, ThoughtSpot returns a list of decomposed analytical queries, each aligned with the user's original question.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.11.0.cl" @@ -242,46 +242,41 @@ "schema": { "type": "object", "properties": { - "content": { - "description": "User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.", - "type": "array", - "items": { - "type": "string" - } - }, - "context_metadata": { - "description": "Context metadata to provide context for decomposing user query into analytical queries that can be run on them.", + "metadata": { + "description": "metadata for the query to enable generation of relevant sub-questions; at least one context identifier is required.", "allOf": [ { - "$ref": "#/components/schemas/ContextMetadata" + "$ref": "#/components/schemas/Metadata" } ] }, - "max_decomposed_queries": { - "description": "Maximum number of decomposed queries that is allowed in the response, default = 5.", + "limit_relevant_questions": { + "description": "Maximum number of relevant questions that is allowed in the response, default = 5.", "type": "integer", "format": "int32" }, "bypass_cache": { - "description": "List of worksheetIds to provide context for decomposing user query into analytical queries that can be run on them.", + "description": "If true, results are not returned from cache & calculated every time.", "type": "boolean", "nullable": true }, - "instructions": { - "description": "User specific instructions for processing the @query.", - "type": "array", - "items": { - "type": "string" - } - }, "query": { - "description": "User query which is a topical/goal oriented question that needs to be broken down into smaller simple analytical questions.", + "description": "A user query that requires breaking down into smaller, more manageable analytical questions to facilitate better understanding and analysis.", "type": "string" + }, + "context": { + "description": "Additional context to guide the response.", + "allOf": [ + { + "$ref": "#/components/schemas/Context" + } + ] } }, "required": [ - "context_metadata", - "query" + "metadata", + "query", + "context" ] } } @@ -17996,18 +17991,23 @@ }, "description": "MetadataType InputType used in Custom Action API's" }, - "ContextMetadata": { + "Metadata": { "type": "object", + "required": [ + "id", + "name", + "type" + ], "properties": { - "data_source_ids": { + "data_source_identifiers": { "type": "array", "items": { "type": "string" }, - "description": "List of data_source_ids to provide context for decomposing user query into analytical queries that can be run on them.", + "description": "List of data_source_identifiers to provide context for breaking down user query into analytical queries that can be run on them.", "nullable": true }, - "answer_ids": { + "answer_identifiers": { "type": "array", "items": { "type": "string" @@ -18015,18 +18015,52 @@ "description": "List of answer unique identifiers (GUIDs) whose data will be used to guide the response.", "nullable": true }, - "conversation_id": { + "conversation_identifier": { "type": "string", "description": "Unique identifier to denote current conversation.", "nullable": true }, - "liveboard_ids": { + "liveboard_identifiers": { "type": "array", "items": { "type": "string" }, "description": "List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response.", "nullable": true + }, + "id": { + "type": "string", + "description": "Unique ID of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the metadata." + }, + "type": { + "type": "string", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." + } + }, + "description": "Unique ID or name of the metadata." + }, + "Context": { + "type": "object", + "properties": { + "instructions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User specific text instructions sent to AI system for processing the query.", + "nullable": true + }, + "content": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.", + "nullable": true } } }, @@ -18038,7 +18072,7 @@ "items": { "$ref": "#/components/schemas/eureka_RelevantQuestion" }, - "description": "List of relevant questions that can be run on their respective worksheet/data sources.", + "description": "List of relevant questions that can be run on their respective data sources.", "nullable": true } } @@ -18051,14 +18085,14 @@ "description": "NL query that can be run using spotter aka natural language search to get an AI generated answer.", "nullable": true }, - "worksheet_id": { + "data_source_identifier": { "type": "string", - "description": "Unique identifier of the worksheet on which this query can be run on.", + "description": "Unique identifier of the data source on which this query can be run on.", "nullable": true }, - "worksheet_name": { + "data_source_name": { "type": "string", - "description": "Display name of the worksheet on which this query can be run on.", + "description": "Display name of the data source on which this query can be run on.", "nullable": true } } From 411d417fc95c591106c7a5fdb6b96ff824258c8d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 14 Aug 2025 01:37:32 +0000 Subject: [PATCH 306/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 134 ++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 56c9c7122..4ffe60b49 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13,6 +13,14 @@ ], "description": "Roles for version 10.4.0.cl" }, + { + "name": "10.13.0.cl", + "id": "10.13.0.cl", + "tags": [ + "10.13.0.cl" + ], + "description": "Roles for version 10.13.0.cl" + }, { "name": "10.11.0.cl", "id": "10.11.0.cl", @@ -228,6 +236,78 @@ } } }, + "/api/rest/2.0/ai/data-source-suggestions": { + "post": { + "operationId": "getDataSourceSuggestions", + "description": "\nBeta Version: 10.13.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "User query used to suggest data sources.", + "type": "string" + } + }, + "required": [ + "query" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_DataSourceSuggestionResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_DataSourceSuggestionResponse" + } + } + } + }, + "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", @@ -18169,6 +18249,60 @@ } } }, + "eureka_DataSourceSuggestionResponse": { + "type": "object", + "properties": { + "data_sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataSource" + }, + "description": "List of data sources suggested.", + "nullable": true + } + } + }, + "DataSource": { + "type": "object", + "properties": { + "confidence": { + "type": "number", + "format": "float", + "description": "Confidence score for the data source suggestion.", + "nullable": true + }, + "details": { + "$ref": "#/components/schemas/EntityHeader", + "description": "Details of the data source.", + "nullable": true + }, + "reasoning": { + "type": "string", + "description": "LLM reasoning for the data source.", + "nullable": true + } + } + }, + "EntityHeader": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the data source.", + "nullable": true + }, + "data_source_name": { + "type": "string", + "description": "Display name of the data source.", + "nullable": true + }, + "data_source_identifier": { + "type": "string", + "description": "Unique identifier of the data source.", + "nullable": true + } + } + }, "RiseGQLArgWrapper": { "type": "object", "required": [ From 402b8696f75250c884647dee42d25fd3c2440dea Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 15 Aug 2025 07:02:49 +0000 Subject: [PATCH 307/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 213 ++++++++++++++++++++++++++++++-- 1 file changed, 205 insertions(+), 8 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4ffe60b49..7bcf607f2 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5,14 +5,6 @@ "version": "2.0" }, "x-roles": [ - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, { "name": "10.13.0.cl", "id": "10.13.0.cl", @@ -21,6 +13,14 @@ ], "description": "Roles for version 10.13.0.cl" }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, { "name": "10.11.0.cl", "id": "10.11.0.cl", @@ -160,6 +160,91 @@ ], "tags": [], "paths": { + "/api/rest/2.0/ai/agent/conversation/create": { + "post": { + "operationId": "createAgentConversation", + "description": "Beta Version: 10.13.0.cl or later", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "context": { + "description": "Context for the conversation.", + "allOf": [ + { + "$ref": "#/components/schemas/ContextPayloadV2Input" + } + ] + }, + "conversation_settings": { + "description": "Conversation settings.", + "allOf": [ + { + "$ref": "#/components/schemas/ConversationSettingsInput" + } + ] + } + }, + "required": [ + "context", + "conversation_settings" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentConversation" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentConversation" + } + } + } + }, + "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/conversation/create": { "post": { "operationId": "createConversation", @@ -21423,6 +21508,118 @@ } } }, + "ContextPayloadV2Input": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "answer", + "liveboard", + "data_source" + ], + "description": "Type of the context.", + "nullable": true + }, + "answer_context": { + "$ref": "#/components/schemas/AnswerContextInput", + "description": "Answer context.", + "nullable": true + }, + "liveboard_context": { + "$ref": "#/components/schemas/LBContextInput", + "description": "Liveboard context.", + "nullable": true + }, + "data_source_context": { + "$ref": "#/components/schemas/DataSourceContextInput", + "description": "Data source context.", + "nullable": true + } + } + }, + "AnswerContextInput": { + "type": "object", + "required": [ + "session_identifier", + "generation_number" + ], + "properties": { + "session_identifier": { + "type": "string", + "description": "Unique identifier of the answer session." + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the answer." + } + } + }, + "LBContextInput": { + "type": "object", + "required": [ + "liveboard_identifier", + "visualization_identifier" + ], + "properties": { + "liveboard_identifier": { + "type": "string", + "description": "Unique identifier of the liveboard." + }, + "visualization_identifier": { + "type": "string", + "description": "Unique identifier of the visualization." + } + } + }, + "DataSourceContextInput": { + "type": "object", + "required": [ + "guid" + ], + "properties": { + "guid": { + "type": "string", + "description": "Unique identifier of the data source." + } + } + }, + "ConversationSettingsInput": { + "type": "object", + "properties": { + "enable_contextual_change_analysis": { + "type": "boolean", + "default": false, + "description": "Enable contextual change analysis.", + "nullable": true + }, + "enable_natural_language_answer_generation": { + "type": "boolean", + "default": true, + "description": "Enable natural language answer generation.", + "nullable": true + }, + "enable_reasoning": { + "type": "boolean", + "default": false, + "description": "Enable reasoning.", + "nullable": true + } + } + }, + "AgentConversation": { + "type": "object", + "required": [ + "conversation_id" + ], + "properties": { + "conversation_id": { + "type": "string", + "description": "Unique identifier of the conversation." + } + } + }, "InputVariableValue": { "type": "object", "required": [ From 170f3d818c24eb6e8a0f77d66089238a7451d4da Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sat, 16 Aug 2025 01:58:34 +0000 Subject: [PATCH 308/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 154 ++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7bcf607f2..050f38e78 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -603,6 +603,81 @@ } } }, + "/api/rest/2.0/ai/agent/conversation/converse": { + "post": { + "operationId": "sendAgentMessage", + "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "input": { + "allOf": [ + { + "$ref": "#/components/schemas/SendAgentMessageInput" + } + ] + } + }, + "required": [ + "input" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendAgentMessageResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendAgentMessageResponse" + } + } + } + }, + "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/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", @@ -21620,6 +21695,85 @@ } } }, + "SendAgentMessageInput": { + "type": "object", + "required": [ + "conversation_identifier", + "messages", + "settings" + ], + "properties": { + "conversation_identifier": { + "type": "string", + "description": "Unique identifier for the conversation (used to track context)" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AgentMessageInput" + }, + "description": "messages to be sent to the agent" + }, + "settings": { + "$ref": "#/components/schemas/AgentSettingsInput", + "description": "Settings that determine how the agent processes the message(s)" + } + } + }, + "AgentMessageInput": { + "type": "object", + "required": [ + "value", + "type" + ], + "properties": { + "value": { + "type": "string", + "description": "The message content" + }, + "type": { + "type": "string", + "description": "The message type (e.g., \"text\", \"image\")" + } + } + }, + "AgentSettingsInput": { + "type": "object", + "required": [ + "enable_contextual_change_analysis", + "enable_natural_language_answer_generation", + "enable_reasoning" + ], + "properties": { + "enable_contextual_change_analysis": { + "type": "boolean", + "description": "Should the agent detect contextual shifts?" + }, + "enable_natural_language_answer_generation": { + "type": "boolean", + "description": "Should the agent respond in natural language?" + }, + "enable_reasoning": { + "type": "boolean", + "description": "Should reasoning be applied in responses?" + } + } + }, + "SendAgentMessageResponse": { + "type": "object", + "required": [ + "success" + ], + "properties": { + "success": { + "type": "boolean" + }, + "message": { + "type": "string", + "nullable": true + } + } + }, "InputVariableValue": { "type": "object", "required": [ From 3c598ca4e80a2ba8b657319e22ed2e44371100f0 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sun, 17 Aug 2025 18:53:35 +0000 Subject: [PATCH 309/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 47 ++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 050f38e78..f623ddb42 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -174,7 +174,7 @@ "schema": { "type": "object", "properties": { - "context": { + "metadata_context": { "description": "Context for the conversation.", "allOf": [ { @@ -192,7 +192,7 @@ } }, "required": [ - "context", + "metadata_context", "conversation_settings" ] } @@ -249,6 +249,7 @@ "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -497,6 +498,7 @@ "post": { "operationId": "queryGetDecomposedQuery", "description": "Beta Version: 10.7.0.cl or later", + "deprecated": true, "tags": [ "AI", "10.7.0.cl" @@ -682,6 +684,7 @@ "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -5463,7 +5466,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -5819,7 +5824,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -6023,7 +6030,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -8667,7 +8676,9 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -8893,7 +8904,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -9051,7 +9064,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } } @@ -13553,7 +13568,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -17910,7 +17927,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges granted to the role." @@ -19580,7 +19599,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges that will be assigned to the group.", @@ -20562,7 +20583,9 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges granted to the role." From 97e446df2f48765e1319399e3ac673325bb39c0d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 18 Aug 2025 11:58:53 +0000 Subject: [PATCH 310/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 410 ++------------------------------ 1 file changed, 18 insertions(+), 392 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f623ddb42..4ffe60b49 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5,14 +5,6 @@ "version": "2.0" }, "x-roles": [ - { - "name": "10.13.0.cl", - "id": "10.13.0.cl", - "tags": [ - "10.13.0.cl" - ], - "description": "Roles for version 10.13.0.cl" - }, { "name": "10.4.0.cl", "id": "10.4.0.cl", @@ -21,6 +13,14 @@ ], "description": "Roles for version 10.4.0.cl" }, + { + "name": "10.13.0.cl", + "id": "10.13.0.cl", + "tags": [ + "10.13.0.cl" + ], + "description": "Roles for version 10.13.0.cl" + }, { "name": "10.11.0.cl", "id": "10.11.0.cl", @@ -160,96 +160,10 @@ ], "tags": [], "paths": { - "/api/rest/2.0/ai/agent/conversation/create": { - "post": { - "operationId": "createAgentConversation", - "description": "Beta Version: 10.13.0.cl or later", - "tags": [ - "AI", - "10.13.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_context": { - "description": "Context for the conversation.", - "allOf": [ - { - "$ref": "#/components/schemas/ContextPayloadV2Input" - } - ] - }, - "conversation_settings": { - "description": "Conversation settings.", - "allOf": [ - { - "$ref": "#/components/schemas/ConversationSettingsInput" - } - ] - } - }, - "required": [ - "metadata_context", - "conversation_settings" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentConversation" - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentConversation" - } - } - } - }, - "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/conversation/create": { "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -498,7 +412,6 @@ "post": { "operationId": "queryGetDecomposedQuery", "description": "Beta Version: 10.7.0.cl or later", - "deprecated": true, "tags": [ "AI", "10.7.0.cl" @@ -605,86 +518,10 @@ } } }, - "/api/rest/2.0/ai/agent/conversation/converse": { - "post": { - "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "10.13.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "input": { - "allOf": [ - { - "$ref": "#/components/schemas/SendAgentMessageInput" - } - ] - } - }, - "required": [ - "input" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SendAgentMessageResponse" - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SendAgentMessageResponse" - } - } - } - }, - "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/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -5466,9 +5303,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -5824,9 +5659,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -6030,9 +5863,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -8676,9 +8507,7 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -8904,9 +8733,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -9064,9 +8891,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } } @@ -13568,9 +13393,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -17927,9 +17750,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] }, "description": "Privileges granted to the role." @@ -19599,9 +19420,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_SETUP_VERSION_CONTROL" ] }, "description": "Privileges that will be assigned to the group.", @@ -20583,9 +20402,7 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] }, "description": "Privileges granted to the role." @@ -21606,197 +21423,6 @@ } } }, - "ContextPayloadV2Input": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "answer", - "liveboard", - "data_source" - ], - "description": "Type of the context.", - "nullable": true - }, - "answer_context": { - "$ref": "#/components/schemas/AnswerContextInput", - "description": "Answer context.", - "nullable": true - }, - "liveboard_context": { - "$ref": "#/components/schemas/LBContextInput", - "description": "Liveboard context.", - "nullable": true - }, - "data_source_context": { - "$ref": "#/components/schemas/DataSourceContextInput", - "description": "Data source context.", - "nullable": true - } - } - }, - "AnswerContextInput": { - "type": "object", - "required": [ - "session_identifier", - "generation_number" - ], - "properties": { - "session_identifier": { - "type": "string", - "description": "Unique identifier of the answer session." - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the answer." - } - } - }, - "LBContextInput": { - "type": "object", - "required": [ - "liveboard_identifier", - "visualization_identifier" - ], - "properties": { - "liveboard_identifier": { - "type": "string", - "description": "Unique identifier of the liveboard." - }, - "visualization_identifier": { - "type": "string", - "description": "Unique identifier of the visualization." - } - } - }, - "DataSourceContextInput": { - "type": "object", - "required": [ - "guid" - ], - "properties": { - "guid": { - "type": "string", - "description": "Unique identifier of the data source." - } - } - }, - "ConversationSettingsInput": { - "type": "object", - "properties": { - "enable_contextual_change_analysis": { - "type": "boolean", - "default": false, - "description": "Enable contextual change analysis.", - "nullable": true - }, - "enable_natural_language_answer_generation": { - "type": "boolean", - "default": true, - "description": "Enable natural language answer generation.", - "nullable": true - }, - "enable_reasoning": { - "type": "boolean", - "default": false, - "description": "Enable reasoning.", - "nullable": true - } - } - }, - "AgentConversation": { - "type": "object", - "required": [ - "conversation_id" - ], - "properties": { - "conversation_id": { - "type": "string", - "description": "Unique identifier of the conversation." - } - } - }, - "SendAgentMessageInput": { - "type": "object", - "required": [ - "conversation_identifier", - "messages", - "settings" - ], - "properties": { - "conversation_identifier": { - "type": "string", - "description": "Unique identifier for the conversation (used to track context)" - }, - "messages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AgentMessageInput" - }, - "description": "messages to be sent to the agent" - }, - "settings": { - "$ref": "#/components/schemas/AgentSettingsInput", - "description": "Settings that determine how the agent processes the message(s)" - } - } - }, - "AgentMessageInput": { - "type": "object", - "required": [ - "value", - "type" - ], - "properties": { - "value": { - "type": "string", - "description": "The message content" - }, - "type": { - "type": "string", - "description": "The message type (e.g., \"text\", \"image\")" - } - } - }, - "AgentSettingsInput": { - "type": "object", - "required": [ - "enable_contextual_change_analysis", - "enable_natural_language_answer_generation", - "enable_reasoning" - ], - "properties": { - "enable_contextual_change_analysis": { - "type": "boolean", - "description": "Should the agent detect contextual shifts?" - }, - "enable_natural_language_answer_generation": { - "type": "boolean", - "description": "Should the agent respond in natural language?" - }, - "enable_reasoning": { - "type": "boolean", - "description": "Should reasoning be applied in responses?" - } - } - }, - "SendAgentMessageResponse": { - "type": "object", - "required": [ - "success" - ], - "properties": { - "success": { - "type": "boolean" - }, - "message": { - "type": "string", - "nullable": true - } - } - }, "InputVariableValue": { "type": "object", "required": [ From 358312e09f9d4d8b46452eb05b0200b79adf05fc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 18 Aug 2025 16:46:41 +0000 Subject: [PATCH 311/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 409 +++++++++++++++++++++++++++++--- 1 file changed, 372 insertions(+), 37 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4ffe60b49..5a1ce408a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5,14 +5,6 @@ "version": "2.0" }, "x-roles": [ - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, { "name": "10.13.0.cl", "id": "10.13.0.cl", @@ -21,6 +13,14 @@ ], "description": "Roles for version 10.13.0.cl" }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, { "name": "10.11.0.cl", "id": "10.11.0.cl", @@ -160,10 +160,96 @@ ], "tags": [], "paths": { + "/api/rest/2.0/ai/agent/conversation/create": { + "post": { + "operationId": "createAgentConversation", + "description": "Beta Version: 10.13.0.cl or later", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_context": { + "description": "Context for the conversation.", + "allOf": [ + { + "$ref": "#/components/schemas/ContextPayloadV2Input" + } + ] + }, + "conversation_settings": { + "description": "Conversation settings.", + "allOf": [ + { + "$ref": "#/components/schemas/ConversationSettingsInput" + } + ] + } + }, + "required": [ + "metadata_context", + "conversation_settings" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentConversation" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentConversation" + } + } + } + }, + "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/conversation/create": { "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -311,7 +397,7 @@ "/api/rest/2.0/ai/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.11.0.cl" @@ -322,11 +408,11 @@ "schema": { "type": "object", "properties": { - "metadata": { + "metadata_context": { "description": "metadata for the query to enable generation of relevant sub-questions; at least one context identifier is required.", "allOf": [ { - "$ref": "#/components/schemas/Metadata" + "$ref": "#/components/schemas/MetadataContext" } ] }, @@ -344,19 +430,18 @@ "description": "A user query that requires breaking down into smaller, more manageable analytical questions to facilitate better understanding and analysis.", "type": "string" }, - "context": { + "ai_context": { "description": "Additional context to guide the response.", "allOf": [ { - "$ref": "#/components/schemas/Context" + "$ref": "#/components/schemas/AIContext" } ] } }, "required": [ - "metadata", - "query", - "context" + "metadata_context", + "query" ] } } @@ -412,6 +497,7 @@ "post": { "operationId": "queryGetDecomposedQuery", "description": "Beta Version: 10.7.0.cl or later", + "deprecated": true, "tags": [ "AI", "10.7.0.cl" @@ -518,10 +604,86 @@ } } }, + "/api/rest/2.0/ai/agent/conversation/converse": { + "post": { + "operationId": "sendAgentMessage", + "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "input": { + "allOf": [ + { + "$ref": "#/components/schemas/SendAgentMessageInput" + } + ] + } + }, + "required": [ + "input" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendAgentMessageResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendAgentMessageResponse" + } + } + } + }, + "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/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -18071,13 +18233,8 @@ }, "description": "MetadataType InputType used in Custom Action API's" }, - "Metadata": { + "MetadataContext": { "type": "object", - "required": [ - "id", - "name", - "type" - ], "properties": { "data_source_identifiers": { "type": "array", @@ -18107,23 +18264,10 @@ }, "description": "List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response.", "nullable": true - }, - "id": { - "type": "string", - "description": "Unique ID of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the metadata." - }, - "type": { - "type": "string", - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." } - }, - "description": "Unique ID or name of the metadata." + } }, - "Context": { + "AIContext": { "type": "object", "properties": { "instructions": { @@ -21423,6 +21567,197 @@ } } }, + "ContextPayloadV2Input": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "answer", + "liveboard", + "data_source" + ], + "description": "Type of the context.", + "nullable": true + }, + "answer_context": { + "$ref": "#/components/schemas/AnswerContextInput", + "description": "Answer context.", + "nullable": true + }, + "liveboard_context": { + "$ref": "#/components/schemas/LBContextInput", + "description": "Liveboard context.", + "nullable": true + }, + "data_source_context": { + "$ref": "#/components/schemas/DataSourceContextInput", + "description": "Data source context.", + "nullable": true + } + } + }, + "AnswerContextInput": { + "type": "object", + "required": [ + "session_identifier", + "generation_number" + ], + "properties": { + "session_identifier": { + "type": "string", + "description": "Unique identifier of the answer session." + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the answer." + } + } + }, + "LBContextInput": { + "type": "object", + "required": [ + "liveboard_identifier", + "visualization_identifier" + ], + "properties": { + "liveboard_identifier": { + "type": "string", + "description": "Unique identifier of the liveboard." + }, + "visualization_identifier": { + "type": "string", + "description": "Unique identifier of the visualization." + } + } + }, + "DataSourceContextInput": { + "type": "object", + "required": [ + "guid" + ], + "properties": { + "guid": { + "type": "string", + "description": "Unique identifier of the data source." + } + } + }, + "ConversationSettingsInput": { + "type": "object", + "properties": { + "enable_contextual_change_analysis": { + "type": "boolean", + "default": false, + "description": "Enable contextual change analysis.", + "nullable": true + }, + "enable_natural_language_answer_generation": { + "type": "boolean", + "default": true, + "description": "Enable natural language answer generation.", + "nullable": true + }, + "enable_reasoning": { + "type": "boolean", + "default": false, + "description": "Enable reasoning.", + "nullable": true + } + } + }, + "AgentConversation": { + "type": "object", + "required": [ + "conversation_id" + ], + "properties": { + "conversation_id": { + "type": "string", + "description": "Unique identifier of the conversation." + } + } + }, + "SendAgentMessageInput": { + "type": "object", + "required": [ + "conversation_identifier", + "messages", + "settings" + ], + "properties": { + "conversation_identifier": { + "type": "string", + "description": "Unique identifier for the conversation (used to track context)" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AgentMessageInput" + }, + "description": "messages to be sent to the agent" + }, + "settings": { + "$ref": "#/components/schemas/AgentSettingsInput", + "description": "Settings that determine how the agent processes the message(s)" + } + } + }, + "AgentMessageInput": { + "type": "object", + "required": [ + "value", + "type" + ], + "properties": { + "value": { + "type": "string", + "description": "The message content" + }, + "type": { + "type": "string", + "description": "The message type (e.g., \"text\", \"image\")" + } + } + }, + "AgentSettingsInput": { + "type": "object", + "required": [ + "enable_contextual_change_analysis", + "enable_natural_language_answer_generation", + "enable_reasoning" + ], + "properties": { + "enable_contextual_change_analysis": { + "type": "boolean", + "description": "Should the agent detect contextual shifts?" + }, + "enable_natural_language_answer_generation": { + "type": "boolean", + "description": "Should the agent respond in natural language?" + }, + "enable_reasoning": { + "type": "boolean", + "description": "Should reasoning be applied in responses?" + } + } + }, + "SendAgentMessageResponse": { + "type": "object", + "required": [ + "success" + ], + "properties": { + "success": { + "type": "boolean" + }, + "message": { + "type": "string", + "nullable": true + } + } + }, "InputVariableValue": { "type": "object", "required": [ From d763aab0bbacff3b392edde60780923394fd4fa5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 19 Aug 2025 02:18:47 +0000 Subject: [PATCH 312/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 50 +++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5a1ce408a..2c5592242 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -606,7 +606,7 @@ }, "/api/rest/2.0/ai/agent/conversation/converse": { "post": { - "operationId": "sendAgentMessage", + "operationId": "sendAgentMessageStreaming", "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", @@ -5465,7 +5465,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -5821,7 +5823,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -6025,7 +6029,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -8669,7 +8675,9 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -8895,7 +8903,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -9053,7 +9063,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } } @@ -13555,7 +13567,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -17912,7 +17926,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges granted to the role." @@ -19564,7 +19580,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges that will be assigned to the group.", @@ -20546,7 +20564,9 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges granted to the role." @@ -21656,7 +21676,7 @@ "enable_natural_language_answer_generation": { "type": "boolean", "default": true, - "description": "Enable natural language answer generation.", + "description": "Enable natural language to answer generation.", "nullable": true }, "enable_reasoning": { @@ -21731,15 +21751,15 @@ "properties": { "enable_contextual_change_analysis": { "type": "boolean", - "description": "Should the agent detect contextual shifts?" + "description": "Enable contextual change analysis." }, "enable_natural_language_answer_generation": { "type": "boolean", - "description": "Should the agent respond in natural language?" + "description": "Enable natural language to answer generation." }, "enable_reasoning": { "type": "boolean", - "description": "Should reasoning be applied in responses?" + "description": "Enable reasoning." } } }, From 78c8c46e8ba8f1168609a4340ffb8a93c7c02d93 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 19 Aug 2025 05:41:46 +0000 Subject: [PATCH 313/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2c5592242..d920cb580 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -606,7 +606,7 @@ }, "/api/rest/2.0/ai/agent/conversation/converse": { "post": { - "operationId": "sendAgentMessageStreaming", + "operationId": "sendAgentMessage", "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", @@ -21676,7 +21676,7 @@ "enable_natural_language_answer_generation": { "type": "boolean", "default": true, - "description": "Enable natural language to answer generation.", + "description": "Enable natural language answer generation.", "nullable": true }, "enable_reasoning": { @@ -21751,15 +21751,15 @@ "properties": { "enable_contextual_change_analysis": { "type": "boolean", - "description": "Enable contextual change analysis." + "description": "Should the agent detect contextual shifts?" }, "enable_natural_language_answer_generation": { "type": "boolean", - "description": "Enable natural language to answer generation." + "description": "Should the agent respond in natural language?" }, "enable_reasoning": { "type": "boolean", - "description": "Enable reasoning." + "description": "Should reasoning be applied in responses?" } } }, From b581287e478d73f7b2d68432f84dfec8d79a25c4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 19 Aug 2025 06:25:43 +0000 Subject: [PATCH 314/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 449 ++++---------------------------- 1 file changed, 47 insertions(+), 402 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d920cb580..4ffe60b49 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5,14 +5,6 @@ "version": "2.0" }, "x-roles": [ - { - "name": "10.13.0.cl", - "id": "10.13.0.cl", - "tags": [ - "10.13.0.cl" - ], - "description": "Roles for version 10.13.0.cl" - }, { "name": "10.4.0.cl", "id": "10.4.0.cl", @@ -21,6 +13,14 @@ ], "description": "Roles for version 10.4.0.cl" }, + { + "name": "10.13.0.cl", + "id": "10.13.0.cl", + "tags": [ + "10.13.0.cl" + ], + "description": "Roles for version 10.13.0.cl" + }, { "name": "10.11.0.cl", "id": "10.11.0.cl", @@ -160,96 +160,10 @@ ], "tags": [], "paths": { - "/api/rest/2.0/ai/agent/conversation/create": { - "post": { - "operationId": "createAgentConversation", - "description": "Beta Version: 10.13.0.cl or later", - "tags": [ - "AI", - "10.13.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata_context": { - "description": "Context for the conversation.", - "allOf": [ - { - "$ref": "#/components/schemas/ContextPayloadV2Input" - } - ] - }, - "conversation_settings": { - "description": "Conversation settings.", - "allOf": [ - { - "$ref": "#/components/schemas/ConversationSettingsInput" - } - ] - } - }, - "required": [ - "metadata_context", - "conversation_settings" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentConversation" - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AgentConversation" - } - } - } - }, - "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/conversation/create": { "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -397,7 +311,7 @@ "/api/rest/2.0/ai/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.11.0.cl" @@ -408,11 +322,11 @@ "schema": { "type": "object", "properties": { - "metadata_context": { + "metadata": { "description": "metadata for the query to enable generation of relevant sub-questions; at least one context identifier is required.", "allOf": [ { - "$ref": "#/components/schemas/MetadataContext" + "$ref": "#/components/schemas/Metadata" } ] }, @@ -430,18 +344,19 @@ "description": "A user query that requires breaking down into smaller, more manageable analytical questions to facilitate better understanding and analysis.", "type": "string" }, - "ai_context": { + "context": { "description": "Additional context to guide the response.", "allOf": [ { - "$ref": "#/components/schemas/AIContext" + "$ref": "#/components/schemas/Context" } ] } }, "required": [ - "metadata_context", - "query" + "metadata", + "query", + "context" ] } } @@ -497,7 +412,6 @@ "post": { "operationId": "queryGetDecomposedQuery", "description": "Beta Version: 10.7.0.cl or later", - "deprecated": true, "tags": [ "AI", "10.7.0.cl" @@ -604,86 +518,10 @@ } } }, - "/api/rest/2.0/ai/agent/conversation/converse": { - "post": { - "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "10.13.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "input": { - "allOf": [ - { - "$ref": "#/components/schemas/SendAgentMessageInput" - } - ] - } - }, - "required": [ - "input" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SendAgentMessageResponse" - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SendAgentMessageResponse" - } - } - } - }, - "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/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -5465,9 +5303,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -5823,9 +5659,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -6029,9 +5863,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_SETUP_VERSION_CONTROL" ] } }, @@ -8675,9 +8507,7 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -8903,9 +8733,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -9063,9 +8891,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } } @@ -13567,9 +13393,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] } }, @@ -17926,9 +17750,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] }, "description": "Privileges granted to the role." @@ -18249,8 +18071,13 @@ }, "description": "MetadataType InputType used in Custom Action API's" }, - "MetadataContext": { + "Metadata": { "type": "object", + "required": [ + "id", + "name", + "type" + ], "properties": { "data_source_identifiers": { "type": "array", @@ -18280,10 +18107,23 @@ }, "description": "List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response.", "nullable": true + }, + "id": { + "type": "string", + "description": "Unique ID of the metadata." + }, + "name": { + "type": "string", + "description": "Name of the metadata." + }, + "type": { + "type": "string", + "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." } - } + }, + "description": "Unique ID or name of the metadata." }, - "AIContext": { + "Context": { "type": "object", "properties": { "instructions": { @@ -19580,9 +19420,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_SETUP_VERSION_CONTROL" ] }, "description": "Privileges that will be assigned to the group.", @@ -20564,9 +20402,7 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS", - "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_MANAGE_WEBHOOKS" ] }, "description": "Privileges granted to the role." @@ -21587,197 +21423,6 @@ } } }, - "ContextPayloadV2Input": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "answer", - "liveboard", - "data_source" - ], - "description": "Type of the context.", - "nullable": true - }, - "answer_context": { - "$ref": "#/components/schemas/AnswerContextInput", - "description": "Answer context.", - "nullable": true - }, - "liveboard_context": { - "$ref": "#/components/schemas/LBContextInput", - "description": "Liveboard context.", - "nullable": true - }, - "data_source_context": { - "$ref": "#/components/schemas/DataSourceContextInput", - "description": "Data source context.", - "nullable": true - } - } - }, - "AnswerContextInput": { - "type": "object", - "required": [ - "session_identifier", - "generation_number" - ], - "properties": { - "session_identifier": { - "type": "string", - "description": "Unique identifier of the answer session." - }, - "generation_number": { - "type": "integer", - "format": "int32", - "description": "Generation number of the answer." - } - } - }, - "LBContextInput": { - "type": "object", - "required": [ - "liveboard_identifier", - "visualization_identifier" - ], - "properties": { - "liveboard_identifier": { - "type": "string", - "description": "Unique identifier of the liveboard." - }, - "visualization_identifier": { - "type": "string", - "description": "Unique identifier of the visualization." - } - } - }, - "DataSourceContextInput": { - "type": "object", - "required": [ - "guid" - ], - "properties": { - "guid": { - "type": "string", - "description": "Unique identifier of the data source." - } - } - }, - "ConversationSettingsInput": { - "type": "object", - "properties": { - "enable_contextual_change_analysis": { - "type": "boolean", - "default": false, - "description": "Enable contextual change analysis.", - "nullable": true - }, - "enable_natural_language_answer_generation": { - "type": "boolean", - "default": true, - "description": "Enable natural language answer generation.", - "nullable": true - }, - "enable_reasoning": { - "type": "boolean", - "default": false, - "description": "Enable reasoning.", - "nullable": true - } - } - }, - "AgentConversation": { - "type": "object", - "required": [ - "conversation_id" - ], - "properties": { - "conversation_id": { - "type": "string", - "description": "Unique identifier of the conversation." - } - } - }, - "SendAgentMessageInput": { - "type": "object", - "required": [ - "conversation_identifier", - "messages", - "settings" - ], - "properties": { - "conversation_identifier": { - "type": "string", - "description": "Unique identifier for the conversation (used to track context)" - }, - "messages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AgentMessageInput" - }, - "description": "messages to be sent to the agent" - }, - "settings": { - "$ref": "#/components/schemas/AgentSettingsInput", - "description": "Settings that determine how the agent processes the message(s)" - } - } - }, - "AgentMessageInput": { - "type": "object", - "required": [ - "value", - "type" - ], - "properties": { - "value": { - "type": "string", - "description": "The message content" - }, - "type": { - "type": "string", - "description": "The message type (e.g., \"text\", \"image\")" - } - } - }, - "AgentSettingsInput": { - "type": "object", - "required": [ - "enable_contextual_change_analysis", - "enable_natural_language_answer_generation", - "enable_reasoning" - ], - "properties": { - "enable_contextual_change_analysis": { - "type": "boolean", - "description": "Should the agent detect contextual shifts?" - }, - "enable_natural_language_answer_generation": { - "type": "boolean", - "description": "Should the agent respond in natural language?" - }, - "enable_reasoning": { - "type": "boolean", - "description": "Should reasoning be applied in responses?" - } - } - }, - "SendAgentMessageResponse": { - "type": "object", - "required": [ - "success" - ], - "properties": { - "success": { - "type": "boolean" - }, - "message": { - "type": "string", - "nullable": true - } - } - }, "InputVariableValue": { "type": "object", "required": [ From bf027f9c1e18c5e2aacf6824c7aa59f39de568e6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 19 Aug 2025 10:49:24 +0000 Subject: [PATCH 315/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 453 ++++++++++++++++++++++++++++---- 1 file changed, 404 insertions(+), 49 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4ffe60b49..91ddd0725 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5,14 +5,6 @@ "version": "2.0" }, "x-roles": [ - { - "name": "10.4.0.cl", - "id": "10.4.0.cl", - "tags": [ - "10.4.0.cl" - ], - "description": "Roles for version 10.4.0.cl" - }, { "name": "10.13.0.cl", "id": "10.13.0.cl", @@ -21,6 +13,14 @@ ], "description": "Roles for version 10.13.0.cl" }, + { + "name": "10.4.0.cl", + "id": "10.4.0.cl", + "tags": [ + "10.4.0.cl" + ], + "description": "Roles for version 10.4.0.cl" + }, { "name": "10.11.0.cl", "id": "10.11.0.cl", @@ -160,10 +160,96 @@ ], "tags": [], "paths": { + "/api/rest/2.0/ai/agent/conversation/create": { + "post": { + "operationId": "createAgentConversation", + "description": "Beta Version: 10.13.0.cl or later", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata_context": { + "description": "Context for the conversation.", + "allOf": [ + { + "$ref": "#/components/schemas/ContextPayloadV2Input" + } + ] + }, + "conversation_settings": { + "description": "Conversation settings.", + "allOf": [ + { + "$ref": "#/components/schemas/ConversationSettingsInput" + } + ] + } + }, + "required": [ + "metadata_context", + "conversation_settings" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentConversation" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentConversation" + } + } + } + }, + "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/conversation/create": { "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -311,7 +397,7 @@ "/api/rest/2.0/ai/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.11.0.cl" @@ -322,11 +408,11 @@ "schema": { "type": "object", "properties": { - "metadata": { + "metadata_context": { "description": "metadata for the query to enable generation of relevant sub-questions; at least one context identifier is required.", "allOf": [ { - "$ref": "#/components/schemas/Metadata" + "$ref": "#/components/schemas/MetadataContext" } ] }, @@ -344,19 +430,18 @@ "description": "A user query that requires breaking down into smaller, more manageable analytical questions to facilitate better understanding and analysis.", "type": "string" }, - "context": { + "ai_context": { "description": "Additional context to guide the response.", "allOf": [ { - "$ref": "#/components/schemas/Context" + "$ref": "#/components/schemas/AIContext" } ] } }, "required": [ - "metadata", - "query", - "context" + "metadata_context", + "query" ] } } @@ -412,6 +497,7 @@ "post": { "operationId": "queryGetDecomposedQuery", "description": "Beta Version: 10.7.0.cl or later", + "deprecated": true, "tags": [ "AI", "10.7.0.cl" @@ -518,10 +604,86 @@ } } }, + "/api/rest/2.0/ai/agent/conversation/converse": { + "post": { + "operationId": "sendAgentMessageStreaming", + "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "input": { + "allOf": [ + { + "$ref": "#/components/schemas/SendAgentMessageInput" + } + ] + } + }, + "required": [ + "input" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendAgentMessageResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendAgentMessageResponse" + } + } + } + }, + "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/conversation/{conversation_identifier}/converse": { "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -2695,7 +2857,7 @@ "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n* A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -5303,7 +5465,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -5659,7 +5823,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -5863,7 +6029,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -8300,7 +8468,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\n\n#### Endpoint URL\n", + "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", "tags": [ "Reports", "9.0.0.cl" @@ -8507,7 +8675,9 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -8733,7 +8903,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -8891,7 +9063,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } } @@ -13393,7 +13567,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] } }, @@ -17750,7 +17926,9 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges granted to the role." @@ -18071,13 +18249,8 @@ }, "description": "MetadataType InputType used in Custom Action API's" }, - "Metadata": { + "MetadataContext": { "type": "object", - "required": [ - "id", - "name", - "type" - ], "properties": { "data_source_identifiers": { "type": "array", @@ -18107,23 +18280,10 @@ }, "description": "List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response.", "nullable": true - }, - "id": { - "type": "string", - "description": "Unique ID of the metadata." - }, - "name": { - "type": "string", - "description": "Name of the metadata." - }, - "type": { - "type": "string", - "description": " Type of metadata.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier." } - }, - "description": "Unique ID or name of the metadata." + } }, - "Context": { + "AIContext": { "type": "object", "properties": { "instructions": { @@ -19420,7 +19580,9 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", - "CAN_SETUP_VERSION_CONTROL" + "CAN_SETUP_VERSION_CONTROL", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges that will be assigned to the group.", @@ -20402,7 +20564,9 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", - "CAN_MANAGE_WEBHOOKS" + "CAN_MANAGE_WEBHOOKS", + "CAN_DOWNLOAD_VISUALS", + "CAN_DOWNLOAD_DETAILED_DATA" ] }, "description": "Privileges granted to the role." @@ -21423,6 +21587,197 @@ } } }, + "ContextPayloadV2Input": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "answer", + "liveboard", + "data_source" + ], + "description": "Type of the context.", + "nullable": true + }, + "answer_context": { + "$ref": "#/components/schemas/AnswerContextInput", + "description": "Answer context.", + "nullable": true + }, + "liveboard_context": { + "$ref": "#/components/schemas/LBContextInput", + "description": "Liveboard context.", + "nullable": true + }, + "data_source_context": { + "$ref": "#/components/schemas/DataSourceContextInput", + "description": "Data source context.", + "nullable": true + } + } + }, + "AnswerContextInput": { + "type": "object", + "required": [ + "session_identifier", + "generation_number" + ], + "properties": { + "session_identifier": { + "type": "string", + "description": "Unique identifier of the answer session." + }, + "generation_number": { + "type": "integer", + "format": "int32", + "description": "Generation number of the answer." + } + } + }, + "LBContextInput": { + "type": "object", + "required": [ + "liveboard_identifier", + "visualization_identifier" + ], + "properties": { + "liveboard_identifier": { + "type": "string", + "description": "Unique identifier of the liveboard." + }, + "visualization_identifier": { + "type": "string", + "description": "Unique identifier of the visualization." + } + } + }, + "DataSourceContextInput": { + "type": "object", + "required": [ + "guid" + ], + "properties": { + "guid": { + "type": "string", + "description": "Unique identifier of the data source." + } + } + }, + "ConversationSettingsInput": { + "type": "object", + "properties": { + "enable_contextual_change_analysis": { + "type": "boolean", + "default": false, + "description": "Enable contextual change analysis.", + "nullable": true + }, + "enable_natural_language_answer_generation": { + "type": "boolean", + "default": true, + "description": "Enable natural language to answer generation.", + "nullable": true + }, + "enable_reasoning": { + "type": "boolean", + "default": false, + "description": "Enable reasoning.", + "nullable": true + } + } + }, + "AgentConversation": { + "type": "object", + "required": [ + "conversation_id" + ], + "properties": { + "conversation_id": { + "type": "string", + "description": "Unique identifier of the conversation." + } + } + }, + "SendAgentMessageInput": { + "type": "object", + "required": [ + "conversation_identifier", + "messages", + "settings" + ], + "properties": { + "conversation_identifier": { + "type": "string", + "description": "Unique identifier for the conversation (used to track context)" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AgentMessageInput" + }, + "description": "messages to be sent to the agent" + }, + "settings": { + "$ref": "#/components/schemas/AgentSettingsInput", + "description": "Settings that determine how the agent processes the message(s)" + } + } + }, + "AgentMessageInput": { + "type": "object", + "required": [ + "value", + "type" + ], + "properties": { + "value": { + "type": "string", + "description": "The message content" + }, + "type": { + "type": "string", + "description": "The message type (e.g., \"text\", \"image\")" + } + } + }, + "AgentSettingsInput": { + "type": "object", + "required": [ + "enable_contextual_change_analysis", + "enable_natural_language_answer_generation", + "enable_reasoning" + ], + "properties": { + "enable_contextual_change_analysis": { + "type": "boolean", + "description": "Enable contextual change analysis." + }, + "enable_natural_language_answer_generation": { + "type": "boolean", + "description": "Enable natural language to answer generation." + }, + "enable_reasoning": { + "type": "boolean", + "description": "Enable reasoning." + } + } + }, + "SendAgentMessageResponse": { + "type": "object", + "required": [ + "success" + ], + "properties": { + "success": { + "type": "boolean" + }, + "message": { + "type": "string", + "nullable": true + } + } + }, "InputVariableValue": { "type": "object", "required": [ From 4e31000a16a3fcd0ebb591b44f4b979a822d1b22 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 21 Aug 2025 06:47:19 +0000 Subject: [PATCH 316/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 91ddd0725..6756f3ad0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -19689,6 +19689,12 @@ "default": false, "description": "Boolean flag indicating whether to export column security rules of the object. This will only be respected when the object can have column security rules and export_associated is true.
Beta Version: 10.12.0.cl or later", "nullable": true + }, + "export_with_column_aliases": { + "type": "boolean", + "default": false, + "description": "Boolean flag indicating whether to export column aliases of the model. This will only be respected when the object can have column aliases.
Beta Version: 10.13.0.cl or later", + "nullable": true } }, "description": "Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled." @@ -21714,7 +21720,7 @@ "messages": { "type": "array", "items": { - "$ref": "#/components/schemas/AgentMessageInput" + "type": "string" }, "description": "messages to be sent to the agent" }, @@ -21724,23 +21730,6 @@ } } }, - "AgentMessageInput": { - "type": "object", - "required": [ - "value", - "type" - ], - "properties": { - "value": { - "type": "string", - "description": "The message content" - }, - "type": { - "type": "string", - "description": "The message type (e.g., \"text\", \"image\")" - } - } - }, "AgentSettingsInput": { "type": "object", "required": [ From 1363b353cd1d9d1bbcf560c927b40a5f96d22db1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 21 Aug 2025 14:53:26 +0000 Subject: [PATCH 317/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6756f3ad0..32ad2e704 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -19689,12 +19689,6 @@ "default": false, "description": "Boolean flag indicating whether to export column security rules of the object. This will only be respected when the object can have column security rules and export_associated is true.
Beta Version: 10.12.0.cl or later", "nullable": true - }, - "export_with_column_aliases": { - "type": "boolean", - "default": false, - "description": "Boolean flag indicating whether to export column aliases of the model. This will only be respected when the object can have column aliases.
Beta Version: 10.13.0.cl or later", - "nullable": true } }, "description": "Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled." From 7578bb54d8065145ee8fa10c15a4d72bc276660e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 21 Aug 2025 14:53:45 +0000 Subject: [PATCH 318/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 389 ++++++++++++++++++++++++++++++++ 1 file changed, 389 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 32ad2e704..2d20c1c08 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -149,6 +149,14 @@ ], "description": "Roles for version 9.5.0.cl" }, + { + "name": "10.14.0.cl", + "id": "10.14.0.cl", + "tags": [ + "10.14.0.cl" + ], + "description": "Roles for version 10.14.0.cl" + }, { "name": "9.7.0.cl", "id": "9.7.0.cl", @@ -11814,6 +11822,88 @@ } } }, + "/api/rest/2.0/system/preferences/communication-channels/configure": { + "post": { + "operationId": "configureCommunicationChannelPreferences", + "description": "\n Version: 10.14.0.cl or later\n\nConfigures communication channel preferences for the cluster or orgs. You can configure cluster-level preferences, org-specific preferences, or both. Cluster-level preferences serve as defaults, while org-specific preferences can override these defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**), `DEVELOPER` (**Has developer privilege**), or `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "10.14.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_preferences": { + "description": "Cluster-level default configurations.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EventChannelConfigInput" + } + }, + "org_preferences": { + "description": "Org-specific configurations.", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgChannelConfigInput" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Communication channel preferences successfully updated." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", @@ -12039,6 +12129,129 @@ } } }, + "/api/rest/2.0/system/preferences/communication-channels/search": { + "post": { + "operationId": "searchCommunicationChannelPreferences", + "description": "\n Version: 10.14.0.cl or later\n\nSearches and retrieves communication channel preferences for the cluster or orgs. You can search for cluster-level preferences, org-specific preferences, or both. Cluster-level preferences serve as defaults, while org-specific preferences can override these defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**), `DEVELOPER` (**Has developer privilege**), or `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "10.14.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_preferences": { + "description": "Event types to search for in cluster-level preferences.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + } + }, + "org_preferences": { + "description": "Org-specific search criteria.", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgPreferenceSearchCriteriaInput" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Communication channel preferences retrieved successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommunicationChannelPreferencesResponse" + }, + "examples": { + "example_1": { + "value": { + "cluster_preferences": [ + { + "event_type": "LIVEBOARD_SCHEDULE", + "channels": [ + "EMAIL", + "WEBHOOK" + ] + } + ], + "org_preferences": [ + { + "org": { + "id": "583464508", + "name": "test_org" + }, + "preferences": [ + { + "event_type": "LIVEBOARD_SCHEDULE", + "channels": [ + "EMAIL" + ] + } + ] + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -15890,6 +16103,114 @@ } } }, + "OrgPreferenceSearchCriteriaInput": { + "type": "object", + "required": [ + "org_identifier" + ], + "properties": { + "org_identifier": { + "type": "string", + "description": "Unique identifier or name of the org" + }, + "event_types": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + }, + "description": "Event types to search for. If not provided, all event types for this org are returned.", + "nullable": true + } + } + }, + "CommunicationChannelPreferencesResponse": { + "type": "object", + "properties": { + "cluster_preferences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EventChannelConfig" + }, + "description": "Cluster-level default configurations.", + "nullable": true + }, + "org_preferences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgChannelConfigResponse" + }, + "description": "Org-specific configurations.", + "nullable": true + } + } + }, + "EventChannelConfig": { + "type": "object", + "required": [ + "event_type", + "channels" + ], + "properties": { + "event_type": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ], + "description": "Type of event for which communication channels are configured" + }, + "channels": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "EMAIL", + "WEBHOOK" + ] + }, + "description": "Communication channels enabled for this event type. Empty array indicates no channels are enabled." + } + } + }, + "OrgChannelConfigResponse": { + "type": "object", + "required": [ + "org", + "preferences" + ], + "properties": { + "org": { + "$ref": "#/components/schemas/OrgDetails", + "description": "Org details" + }, + "preferences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EventChannelConfig" + }, + "description": "Event-specific communication channel configurations for this org" + } + } + }, + "OrgDetails": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique id of the org" + }, + "name": { + "type": "string", + "description": "Name of the org" + } + } + }, "OrgResponse": { "type": "object", "properties": { @@ -19497,6 +19818,74 @@ } } }, + "EventChannelConfigInput": { + "type": "object", + "required": [ + "event_type", + "channels" + ], + "properties": { + "event_type": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ], + "description": "Type of event for which communication channels are configured" + }, + "channels": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "EMAIL", + "WEBHOOK" + ] + }, + "description": "Communication channels enabled for this event type. Empty array disables all channels for this event." + } + } + }, + "OrgChannelConfigInput": { + "type": "object", + "required": [ + "org_identifier" + ], + "properties": { + "org_identifier": { + "type": "string", + "description": "Unique identifier or name of the org" + }, + "operation": { + "type": "string", + "enum": [ + "REPLACE", + "RESET" + ], + "default": "REPLACE", + "description": "Operation to perform. REPLACE: Update preferences (default). RESET: Remove org-specific configurations, causing fallback to cluster-level preferences.", + "nullable": true + }, + "preferences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EventChannelConfigInput" + }, + "description": "Event-specific configurations. Required for REPLACE operation.", + "nullable": true + }, + "reset_events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + }, + "description": "Event types to reset. Required for RESET operation. Org-specific configurations for these events will be removed, causing fallback to cluster-level preferences.", + "nullable": true + } + } + }, "TagMetadataTypeInput": { "type": "object", "required": [ From 85766fee2c541b17658475b26a90038c13e63ead Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 22 Aug 2025 16:28:25 +0000 Subject: [PATCH 319/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 2d20c1c08..1c66fcef9 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -20078,6 +20078,12 @@ "default": false, "description": "Boolean flag indicating whether to export column security rules of the object. This will only be respected when the object can have column security rules and export_associated is true.
Beta Version: 10.12.0.cl or later", "nullable": true + }, + "export_with_column_aliases": { + "type": "boolean", + "default": false, + "description": "Boolean flag indicating whether to export column aliases of the model. This will only be respected when the object can have column aliases.
Beta Version: 10.13.0.cl or later", + "nullable": true } }, "description": "Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled." From 6fb3164930cc98a450c93bcd4364aab920c490f8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 28 Aug 2025 11:38:40 +0000 Subject: [PATCH 320/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 52 +++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 1c66fcef9..e593d14d6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1046,6 +1046,13 @@ "$ref": "#/components/schemas/ParameterValues" } }, + "variable_values": { + "description": "Variable values.", + "type": "array", + "items": { + "$ref": "#/components/schemas/VariableValues" + } + }, "objects": { "description": "Objects on which the filter rules and parameters values should be applied to", "type": "array", @@ -4995,7 +5002,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 }\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 \"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", "tags": [ "Email Customization", "10.10.0.cl" @@ -5282,7 +5289,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 }\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 \"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", "tags": [ "Email Customization", "10.12.0.cl" @@ -19551,6 +19558,37 @@ }, "description": "Filter Rules to be applied on Objects." }, + "VariableValues": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the column to apply the variable on." + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + }, + "description": "The values to filter on." + } + }, + "description": "Variable values." + }, "TokenAccessScopeObject": { "type": "object", "required": [ @@ -22372,6 +22410,16 @@ "type": "boolean", "description": "Whether to hide modify alert", "nullable": true + }, + "company_privacy_policy_url": { + "type": "string", + "description": "Company privacy policy URL (HTTP/HTTPS only)", + "nullable": true + }, + "company_website_url": { + "type": "string", + "description": "Company website URL (HTTP/HTTPS only)", + "nullable": true } }, "description": "Email customization configuration properties" From 2c1ad3b7bca9c1a068792d4e2749792426e591b6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 28 Aug 2025 15:15:29 +0000 Subject: [PATCH 321/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e593d14d6..219fc50c0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5002,7 +5002,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 \"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 }\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.10.0.cl" @@ -5289,7 +5289,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 \"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 }\n}\n```\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.12.0.cl" @@ -22410,16 +22410,6 @@ "type": "boolean", "description": "Whether to hide modify alert", "nullable": true - }, - "company_privacy_policy_url": { - "type": "string", - "description": "Company privacy policy URL (HTTP/HTTPS only)", - "nullable": true - }, - "company_website_url": { - "type": "string", - "description": "Company website URL (HTTP/HTTPS only)", - "nullable": true } }, "description": "Email customization configuration properties" From 6269d83e535a591f6a7cc577cc49d7074da9a140 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 2 Sep 2025 06:37:17 +0000 Subject: [PATCH 322/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 219fc50c0..e593d14d6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5002,7 +5002,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 }\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 \"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", "tags": [ "Email Customization", "10.10.0.cl" @@ -5289,7 +5289,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 }\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 \"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", "tags": [ "Email Customization", "10.12.0.cl" @@ -22410,6 +22410,16 @@ "type": "boolean", "description": "Whether to hide modify alert", "nullable": true + }, + "company_privacy_policy_url": { + "type": "string", + "description": "Company privacy policy URL (HTTP/HTTPS only)", + "nullable": true + }, + "company_website_url": { + "type": "string", + "description": "Company website URL (HTTP/HTTPS only)", + "nullable": true } }, "description": "Email customization configuration properties" From 22ea00ba61ae41d2c94504ead1b301bad07f8ad4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 3 Sep 2025 10:13:03 +0000 Subject: [PATCH 323/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 1322 +++++++++++++++++++++++++++++-- 1 file changed, 1247 insertions(+), 75 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e593d14d6..9b2c8c1f1 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -11832,7 +11832,7 @@ "/api/rest/2.0/system/preferences/communication-channels/configure": { "post": { "operationId": "configureCommunicationChannelPreferences", - "description": "\n Version: 10.14.0.cl or later\n\nConfigures communication channel preferences for the cluster or orgs. You can configure cluster-level preferences, org-specific preferences, or both. Cluster-level preferences serve as defaults, while org-specific preferences can override these defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**), `DEVELOPER` (**Has developer privilege**), or `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.14.0.cl or later\n\nConfigure communication channel preferences.\n- Use `cluster_preferences` to update the default preferences for your ThoughtSpot application instance.\n- If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to specify Org-specific preferences that override the defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "10.14.0.cl" @@ -12139,7 +12139,7 @@ "/api/rest/2.0/system/preferences/communication-channels/search": { "post": { "operationId": "searchCommunicationChannelPreferences", - "description": "\n Version: 10.14.0.cl or later\n\nSearches and retrieves communication channel preferences for the cluster or orgs. You can search for cluster-level preferences, org-specific preferences, or both. Cluster-level preferences serve as defaults, while org-specific preferences can override these defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**), `DEVELOPER` (**Has developer privilege**), or `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privileges.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.14.0.cl or later\n\nFetch communication channel preferences.\n- Use `cluster_preferences` to fetch the default preferences for your ThoughtSpot application instance.\n- If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), use `org_preferences` to fetch any Org-specific preferences that override the defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `APPLICATION_ADMINISTRATION` (**Can manage application settings**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "10.14.0.cl" @@ -12189,7 +12189,6 @@ { "event_type": "LIVEBOARD_SCHEDULE", "channels": [ - "EMAIL", "WEBHOOK" ] } @@ -15516,6 +15515,696 @@ } } } + }, + "/api/rest/2.0/webhooks/create": { + "post": { + "operationId": "createWebhookConfiguration", + "description": "\nBeta Version: 10.14.0.cl or later\n\nCreates a new webhook configuration to receive notifications for specified events. The webhook will be triggered when the configured events occur in the system.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Webhooks", + "10.14.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the webhook configuration.", + "type": "string" + }, + "description": { + "description": "Description of the webhook configuration.", + "type": "string" + }, + "url": { + "description": "The webhook endpoint URL.", + "type": "string" + }, + "url_params": { + "description": "Additional URL parameters as key-value pairs.", + "type": "object" + }, + "events": { + "description": "List of events to subscribe to.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + } + }, + "authentication": { + "description": "Authorization configuration for the webhook.", + "allOf": [ + { + "$ref": "#/components/schemas/WebhookAuthenticationInput" + } + ] + }, + "signature_verification": { + "description": "Configuration for webhook signature verification.", + "allOf": [ + { + "$ref": "#/components/schemas/WebhookSignatureVerificationInput" + } + ] + } + }, + "required": [ + "name", + "url" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Webhook configuration created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookResponse" + }, + "examples": { + "example_1": { + "description": "Basic webhook with Bearer token authentication", + "value": { + "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "name": "My Liveboard Webhook", + "description": "Webhook to notify external system about liveboard schedules", + "org": { + "id": "0", + "name": "Primary" + }, + "url": "https://myapp.example.com/webhooks/thoughtspot", + "url_params": { + "api_key": "abc123", + "version": "v1" + }, + "events": [ + "LIVEBOARD_SCHEDULE" + ], + "authentication": { + "BEARER_TOKEN": "***" + }, + "signature_verification": { + "type": "HMAC_SHA256", + "header": "X-Webhook-Signature", + "algorithm": "SHA256", + "secret": "***" + }, + "created_at": "2025-08-21T21:57:10.243089030Z", + "last_modified_at": "2025-08-21T21:57:10.243089030Z", + "created_by": { + "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b", + "name": "sarah_chen" + }, + "last_modified_by": { + "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b", + "name": "sarah_chen" + } + } + }, + "example_2": { + "description": "Webhook with OAuth2 authentication", + "value": { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "name": "OAuth2 Webhook", + "description": "Webhook with OAuth2 client credentials", + "org": { + "id": "0", + "name": "Primary" + }, + "url": "https://api.example.com/webhooks", + "events": [ + "LIVEBOARD_SCHEDULE" + ], + "authentication": { + "OAUTH2": { + "authorization_url": "https://auth.example.com/oauth2/authorize", + "client_id": "client_123", + "client_secret": "***" + } + }, + "created_at": "2025-08-21T22:15:30.123456789Z", + "last_modified_at": "2025-08-21T22:15:30.123456789Z", + "created_by": { + "id": "7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d", + "name": "mike_rodriguez" + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/webhooks/delete": { + "post": { + "operationId": "deleteWebhookConfigurations", + "description": "\nBeta Version: 10.14.0.cl or later\n\nDeletes one or more webhook configurations by their unique id or name. Returns status of each deletion operation, including successfully deleted webhooks and any failures with error details.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Webhooks", + "10.14.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "webhook_identifiers": { + "description": "List of webhook identifiers to delete.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "webhook_identifiers" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Webhook configurations deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDeleteResponse" + }, + "examples": { + "example_1": { + "description": "Successful deletion of multiple webhooks", + "value": { + "deleted_count": 2, + "failed_count": 0, + "deleted_webhooks": [ + { + "id": "b9e3d8f2-4c7a-4e1b-8d3c-5f9a2b7e4c6d", + "name": "Old Webhook 1", + "description": "First webhook to be deleted", + "org": { + "id": "0", + "name": "Primary" + }, + "url": "https://old-service.example.com/webhook1", + "events": [ + "LIVEBOARD_SCHEDULE" + ], + "authentication": { + "BEARER_TOKEN": "***" + }, + "created_at": "2025-08-21T15:30:00.000000000Z", + "last_modified_at": "2025-08-21T15:30:00.000000000Z", + "created_by": { + "id": "1f4e7b2d-9c3a-4e6f-8b1d-3e7c5a9b2f4e", + "name": "jennifer_patel" + } + }, + { + "id": "e7c4a1f8-2b5d-4a9e-7c3f-8b1e5d4a7c9b", + "name": "Old Webhook 2", + "description": "Second webhook to be deleted", + "org": { + "id": "0", + "name": "Primary" + }, + "url": "https://old-service.example.com/webhook2", + "events": [ + "LIVEBOARD_SCHEDULE" + ], + "authentication": { + "API_KEY": { + "key": "X-API-Key", + "value": "***" + } + }, + "created_at": "2025-08-21T16:45:30.123456789Z", + "last_modified_at": "2025-08-21T16:45:30.123456789Z", + "created_by": { + "id": "9a5c2e8f-4b7d-4c1e-9f2a-6c8e3b5d7a4c", + "name": "david_thompson" + } + } + ], + "failed_webhooks": [] + } + }, + "example_2": { + "description": "Partial failure during deletion", + "value": { + "deleted_count": 1, + "failed_count": 1, + "deleted_webhooks": [ + { + "id": "c8f2a5e9-3d6b-4f1e-a8c2-7e4b1d9f5a3c", + "name": "Successfully Deleted Webhook", + "description": "This webhook was deleted successfully", + "org": { + "id": "0", + "name": "Primary" + }, + "url": "https://service.example.com/webhook", + "events": [ + "LIVEBOARD_SCHEDULE" + ], + "authentication": { + "NO_AUTH": "" + }, + "created_at": "2025-08-21T18:20:15.456789012Z", + "last_modified_at": "2025-08-21T18:20:15.456789012Z", + "created_by": { + "id": "6e9c4f2a-8b5d-4e1f-9c3a-5f8b2e7d4a6c", + "name": "emma_wang" + } + } + ], + "failed_webhooks": [ + { + "id": "a3f7c1e4-9b2d-4a6e-8f3c-1e5b7a9c4f2e", + "name": "Non-existent Webhook", + "error_message": "Webhook not found or access denied" + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/webhooks/search": { + "post": { + "operationId": "searchWebhookConfigurations", + "description": "\nBeta Version: 10.14.0.cl or later\n\nSearches for webhook configurations based on various criteria such as Org, webhook identifier, event type, with support for pagination and sorting. Returns matching webhook configurations with their complete details.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Webhooks", + "10.14.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "org_identifier": { + "description": "Unique ID or name of the org.", + "type": "string" + }, + "webhook_identifier": { + "description": "Unique ID or name of the webhook.", + "type": "string" + }, + "event_type": { + "description": "Type of webhook event to filter by.", + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + }, + "record_offset": { + "description": "The offset point, starting from where the webhooks should be included in the response.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of webhooks that should be included in the response starting from offset position.", + "default": 50, + "type": "integer", + "format": "int32" + }, + "sort_options": { + "description": "Sort option includes sort field and sort order.", + "allOf": [ + { + "$ref": "#/components/schemas/WebhookSortOptionsInput" + } + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Webhook configurations retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookSearchResponse" + }, + "examples": { + "example_1": { + "description": "Search results with multiple webhooks", + "value": { + "webhooks": [ + { + "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "name": "Liveboard Schedule Webhook", + "description": "Webhook for liveboard schedule notifications", + "org": { + "id": "0", + "name": "Primary" + }, + "url": "https://myapp.example.com/webhooks", + "url_params": { + "api_key": "abc123" + }, + "events": [ + "LIVEBOARD_SCHEDULE" + ], + "authentication": { + "BEARER_TOKEN": "***" + }, + "signature_verification": { + "type": "HMAC_SHA256", + "header": "X-Webhook-Signature", + "algorithm": "SHA256", + "secret": "***" + }, + "created_at": "2025-08-21T21:57:10.243089030Z", + "last_modified_at": "2025-08-21T22:10:15.123456789Z", + "created_by": { + "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b", + "name": "sarah_chen" + }, + "last_modified_by": { + "id": "2c9a7e4f-6b3d-4a8e-9f1c-5e7a3b9c2d6f", + "name": "alex_kim" + } + }, + { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "name": "API Key Webhook", + "description": "Webhook with API key authentication", + "org": { + "id": "0", + "name": "Primary" + }, + "url": "https://api.example.com/notifications", + "events": [ + "LIVEBOARD_SCHEDULE" + ], + "authentication": { + "API_KEY": { + "key": "X-API-Key", + "value": "***" + } + }, + "created_at": "2025-08-21T20:30:45.987654321Z", + "last_modified_at": "2025-08-21T20:30:45.987654321Z", + "created_by": { + "id": "7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d", + "name": "mike_rodriguez" + } + } + ], + "pagination": { + "record_offset": 0, + "record_size": 50, + "total_count": 2, + "has_more": false + } + } + }, + "example_2": { + "description": "Empty search results", + "value": { + "webhooks": [], + "pagination": { + "record_offset": 0, + "record_size": 50, + "total_count": 0, + "has_more": false + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/webhooks/{webhook_identifier}/update": { + "post": { + "operationId": "updateWebhookConfiguration", + "description": "\nBeta Version: 10.14.0.cl or later\n\nUpdates an existing webhook configuration by its unique id or name. Only the provided fields will be updated.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Webhooks", + "10.14.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the webhook configuration.", + "type": "string" + }, + "description": { + "description": "Description of the webhook configuration.", + "type": "string" + }, + "url": { + "description": "The webhook endpoint URL.", + "type": "string" + }, + "url_params": { + "description": "Additional URL parameters as key-value pairs.", + "type": "object" + }, + "events": { + "description": "List of events to subscribe to.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + } + }, + "authentication": { + "description": "Authorization configuration for the webhook.", + "allOf": [ + { + "$ref": "#/components/schemas/WebhookAuthenticationInput" + } + ] + }, + "signature_verification": { + "description": "Configuration for webhook signature verification.", + "allOf": [ + { + "$ref": "#/components/schemas/WebhookSignatureVerificationInput" + } + ] + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "webhook_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the webhook configuration." + } + ], + "responses": { + "204": { + "description": "Webhook configuration updated successfully" + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } } }, "components": { @@ -18979,111 +19668,418 @@ } } }, - "ConnectionConfigurationResponse": { + "ConnectionConfigurationResponse": { + "type": "object", + "properties": { + "configuration_identifier": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "configuration": { + "type": "object", + "nullable": true + }, + "policy_principals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserPrincipal" + }, + "nullable": true + }, + "policy_processes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "SAGE_INDEXING", + "ROW_COUNT_STATS" + ] + }, + "nullable": true + }, + "disabled": { + "type": "boolean", + "nullable": true + }, + "data_warehouse_type": { + "type": "string", + "enum": [ + "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" + ], + "nullable": true + }, + "policy_type": { + "type": "string", + "enum": [ + "NO_POLICY", + "PRINCIPALS", + "PROCESSES" + ], + "nullable": true + } + } + }, + "UserPrincipal": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + } + }, + "WebhookSortOptionsInput": { + "type": "object", + "properties": { + "field_name": { + "type": "string", + "enum": [ + "CREATED_AT", + "LAST_MODIFIED_AT", + "NAME" + ], + "default": "CREATED_AT", + "description": "Name of the field to apply the sort on.", + "nullable": true + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "default": "DESC", + "description": "Sort order: ASC (Ascending) or DESC (Descending).", + "nullable": true + } + } + }, + "WebhookSearchResponse": { + "type": "object", + "required": [ + "webhooks", + "pagination" + ], + "properties": { + "webhooks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookResponse" + }, + "description": "List of webhook configurations matching the search criteria." + }, + "pagination": { + "$ref": "#/components/schemas/WebhookPagination", + "description": "Pagination information." + } + } + }, + "WebhookResponse": { + "type": "object", + "required": [ + "id", + "name", + "org", + "url", + "created_at", + "last_modified_at" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the webhook configuration." + }, + "name": { + "type": "string", + "description": "Name of the webhook configuration." + }, + "description": { + "type": "string", + "description": "Description of the webhook configuration.", + "nullable": true + }, + "org": { + "$ref": "#/components/schemas/WebhookOrg", + "description": "Org details." + }, + "url": { + "type": "string", + "description": "The webhook endpoint URL." + }, + "url_params": { + "type": "object", + "description": "Additional URL parameters as key-value pairs.", + "nullable": true + }, + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + }, + "description": "List of events this webhook subscribes to.", + "nullable": true + }, + "authentication": { + "$ref": "#/components/schemas/WebhookAuthentication", + "description": "Redacted authorization configuration for the webhook.", + "nullable": true + }, + "signature_verification": { + "$ref": "#/components/schemas/WebhookSignatureVerification", + "description": "Redacted configuration for webhook signature verification.", + "nullable": true + }, + "created_at": { + "type": "string", + "description": "Timestamp when the webhook was created." + }, + "last_modified_at": { + "type": "string", + "description": "Timestamp when the webhook was last updated." + }, + "created_by": { + "$ref": "#/components/schemas/WebhookUser", + "description": "User who created the webhook.", + "nullable": true + }, + "last_modified_by": { + "$ref": "#/components/schemas/WebhookUser", + "description": "User who last modified the webhook.", + "nullable": true + } + } + }, + "WebhookOrg": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the org." + }, + "name": { + "type": "string", + "description": "Name of the org." + } + } + }, + "WebhookAuthentication": { "type": "object", "properties": { - "configuration_identifier": { + "NO_AUTH": { "type": "string", + "description": "No authentication required.", "nullable": true }, - "name": { - "type": "string", + "API_KEY": { + "$ref": "#/components/schemas/WebhookAuthApiKey", + "description": "Redacted API key authentication configuration.", "nullable": true }, - "description": { - "type": "string", + "BASIC_AUTH": { + "$ref": "#/components/schemas/WebhookAuthBasicAuth", + "description": "Redacted Basic authentication configuration.", "nullable": true }, - "configuration": { - "type": "object", + "BEARER_TOKEN": { + "type": "string", + "description": "Redacted Bearer token authentication configuration.", "nullable": true }, - "policy_principals": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserPrincipal" - }, + "OAUTH2": { + "$ref": "#/components/schemas/WebhookAuthOAuth2", + "description": "Redacted OAuth2 authentication configuration.", "nullable": true + } + } + }, + "WebhookAuthApiKey": { + "type": "object", + "required": [ + "key", + "value" + ], + "properties": { + "key": { + "type": "string", + "description": "The header or query parameter name for the API key." }, - "policy_processes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "SAGE_INDEXING", - "ROW_COUNT_STATS" - ] - }, - "nullable": true + "value": { + "type": "string", + "description": "The API key value." + } + } + }, + "WebhookAuthBasicAuth": { + "type": "object", + "required": [ + "username", + "password" + ], + "properties": { + "username": { + "type": "string", + "description": "Username for basic authentication." }, - "disabled": { - "type": "boolean", - "nullable": true + "password": { + "type": "string", + "description": "Password for basic authentication." + } + } + }, + "WebhookAuthOAuth2": { + "type": "object", + "required": [ + "authorization_url", + "client_id", + "client_secret" + ], + "properties": { + "authorization_url": { + "type": "string", + "description": "OAuth2 authorization server URL." }, - "data_warehouse_type": { + "client_id": { + "type": "string", + "description": "OAuth2 client identifier." + }, + "client_secret": { + "type": "string", + "description": "OAuth2 client secret key." + } + } + }, + "WebhookSignatureVerification": { + "type": "object", + "required": [ + "type", + "header", + "algorithm", + "secret" + ], + "properties": { + "type": { "type": "string", "enum": [ - "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" + "HMAC_SHA256" ], - "nullable": true + "description": "Signature verification method type." }, - "policy_type": { + "header": { + "type": "string", + "description": "HTTP header where the signature is sent." + }, + "algorithm": { "type": "string", "enum": [ - "NO_POLICY", - "PRINCIPALS", - "PROCESSES" + "SHA256" ], - "nullable": true + "description": "Hash algorithm used for signature verification." + }, + "secret": { + "type": "string", + "description": "Shared secret used for HMAC signature generation." } } }, - "UserPrincipal": { + "WebhookUser": { "type": "object", + "required": [ + "id", + "name" + ], "properties": { "id": { "type": "string", - "nullable": true + "description": "Unique identifier of the user." }, "name": { "type": "string", - "nullable": true + "description": "Name of the user." + } + } + }, + "WebhookPagination": { + "type": "object", + "required": [ + "record_offset", + "record_size", + "total_count", + "has_more" + ], + "properties": { + "record_offset": { + "type": "integer", + "format": "int32", + "description": "The starting record number from where the records are included." }, - "type": { - "type": "string", - "nullable": true + "record_size": { + "type": "integer", + "format": "int32", + "description": "The number of records included in the response." + }, + "total_count": { + "type": "integer", + "format": "int32", + "description": "Total number of webhook configurations available." + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether more records are available beyond the current response." } } }, @@ -22453,6 +23449,182 @@ } } }, + "WebhookAuthenticationInput": { + "type": "object", + "properties": { + "NO_AUTH": { + "type": "string", + "description": "No authentication required.", + "nullable": true + }, + "API_KEY": { + "$ref": "#/components/schemas/WebhookAuthApiKeyInput", + "description": "API key authentication configuration.", + "nullable": true + }, + "BASIC_AUTH": { + "$ref": "#/components/schemas/WebhookAuthBasicAuthInput", + "description": "Basic authentication configuration.", + "nullable": true + }, + "BEARER_TOKEN": { + "type": "string", + "description": "Bearer token authentication configuration.", + "nullable": true + }, + "OAUTH2": { + "$ref": "#/components/schemas/WebhookAuthOAuth2Input", + "description": "OAuth2 authentication configuration.", + "nullable": true + } + } + }, + "WebhookAuthApiKeyInput": { + "type": "object", + "required": [ + "key", + "value" + ], + "properties": { + "key": { + "type": "string", + "description": "The header or query parameter name for the API key." + }, + "value": { + "type": "string", + "description": "The API key value." + } + } + }, + "WebhookAuthBasicAuthInput": { + "type": "object", + "required": [ + "username", + "password" + ], + "properties": { + "username": { + "type": "string", + "description": "Username for basic authentication." + }, + "password": { + "type": "string", + "description": "Password for basic authentication." + } + } + }, + "WebhookAuthOAuth2Input": { + "type": "object", + "required": [ + "authorization_url", + "client_id", + "client_secret" + ], + "properties": { + "authorization_url": { + "type": "string", + "description": "OAuth2 authorization server URL." + }, + "client_id": { + "type": "string", + "description": "OAuth2 client identifier." + }, + "client_secret": { + "type": "string", + "description": "OAuth2 client secret key." + } + } + }, + "WebhookSignatureVerificationInput": { + "type": "object", + "required": [ + "type", + "header", + "algorithm", + "secret" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "HMAC_SHA256" + ], + "description": "Signature verification method type." + }, + "header": { + "type": "string", + "description": "HTTP header where the signature is sent." + }, + "algorithm": { + "type": "string", + "enum": [ + "SHA256" + ], + "description": "Hash algorithm used for signature verification." + }, + "secret": { + "type": "string", + "description": "Shared secret used for HMAC signature generation." + } + } + }, + "WebhookDeleteResponse": { + "type": "object", + "required": [ + "deleted_count", + "failed_count", + "deleted_webhooks", + "failed_webhooks" + ], + "properties": { + "deleted_count": { + "type": "integer", + "format": "int32", + "description": "Number of webhooks successfully deleted." + }, + "failed_count": { + "type": "integer", + "format": "int32", + "description": "Number of webhooks that failed to delete." + }, + "deleted_webhooks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookResponse" + }, + "description": "List of successfully deleted webhooks." + }, + "failed_webhooks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookDeleteFailure" + }, + "description": "List of webhooks that failed to delete with error details." + } + } + }, + "WebhookDeleteFailure": { + "type": "object", + "required": [ + "id", + "name", + "error" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the webhook that failed to delete." + }, + "name": { + "type": "string", + "description": "Name of the webhook that failed to delete." + }, + "error": { + "type": "string", + "description": "Error message describing why the deletion failed." + } + } + }, "Runtime_Filter": { "type": "object", "properties": { From 570c006a65710226dd6ae1b38faad7202ac4e6a3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 4 Sep 2025 09:41:29 +0000 Subject: [PATCH 324/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9b2c8c1f1..87a59ed15 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5479,6 +5479,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_DOWNLOAD_VISUALS", @@ -5837,6 +5839,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", @@ -6043,6 +6047,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_DOWNLOAD_VISUALS", @@ -8688,6 +8694,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_WEBHOOKS", @@ -8916,6 +8924,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", + "CAN_VIEW_FOLDERS", + "CAN_MODIDY_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -9076,6 +9086,8 @@ "CAN_CREATE_CATALOG", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_WEBHOOKS", @@ -13785,6 +13797,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", @@ -18941,6 +18955,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", + "CAN_VIEW_FOLDERS", + "CAN_MODIDY_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -21002,6 +21018,8 @@ "ALLOW_NON_EMBED_FULL_APP_ACCESS", "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_DOWNLOAD_VISUALS", @@ -21991,6 +22009,8 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", + "CAN_MODIFY_FOLDERS", + "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_WEBHOOKS", From 01fb468c472ba7d4802b86ff4b5cc90f88ba16b9 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Sep 2025 05:57:33 +0000 Subject: [PATCH 325/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 87a59ed15..438992b5e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4426,7 +4426,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { @@ -4551,7 +4551,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { @@ -4638,7 +4638,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { @@ -4647,11 +4647,9 @@ "type": "string" }, "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } + "description": "List of Models and their respective Tables\nExample: '[{\"model_name\": \"model_name\", \"tables\": [\"table_name\"]}]'", + "type": "string", + "format": "json" }, "import_worksheets": { "description": "Mention the worksheet tmls to import", @@ -4663,11 +4661,9 @@ ] }, "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED\nExample: [\"worksheet_name\"]", + "type": "string", + "format": "json" }, "file_content": { "description": "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’", @@ -4677,6 +4673,7 @@ }, "required": [ "dbt_connection_identifier", + "model_tables", "import_worksheets" ] } @@ -4881,7 +4878,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { From 21ab25519e578dd9b89b5044e688f1c6ada19258 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Sep 2025 06:04:59 +0000 Subject: [PATCH 326/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 211 ++++++++++++++++++-------------- 1 file changed, 120 insertions(+), 91 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 438992b5e..87e35e8b4 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4426,7 +4426,7 @@ ], "requestBody": { "content": { - "multipart/form-data": { + "application/json": { "schema": { "type": "object", "properties": { @@ -4551,7 +4551,7 @@ ], "requestBody": { "content": { - "multipart/form-data": { + "application/json": { "schema": { "type": "object", "properties": { @@ -4638,7 +4638,7 @@ ], "requestBody": { "content": { - "multipart/form-data": { + "application/json": { "schema": { "type": "object", "properties": { @@ -4647,9 +4647,11 @@ "type": "string" }, "model_tables": { - "description": "List of Models and their respective Tables\nExample: '[{\"model_name\": \"model_name\", \"tables\": [\"table_name\"]}]'", - "type": "string", - "format": "json" + "description": "List of Models and their respective Tables", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelTableList" + } }, "import_worksheets": { "description": "Mention the worksheet tmls to import", @@ -4661,9 +4663,11 @@ ] }, "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED\nExample: [\"worksheet_name\"]", - "type": "string", - "format": "json" + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", + "type": "array", + "items": { + "type": "string" + } }, "file_content": { "description": "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’", @@ -4673,7 +4677,6 @@ }, "required": [ "dbt_connection_identifier", - "model_tables", "import_worksheets" ] } @@ -4878,7 +4881,7 @@ ], "requestBody": { "content": { - "multipart/form-data": { + "application/json": { "schema": { "type": "object", "properties": { @@ -14171,10 +14174,10 @@ "/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.9.0.cl or later\n\nAllows creating a variable which can be used for parameterizing metadata objects in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n\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 variable values (optional)\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* The variable values are invalid for the specified type \n\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.\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\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\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14195,18 +14198,11 @@ "description": "Name of the variable. This is unique across the cluster.", "type": "string" }, - "sensitive": { + "is_sensitive": { "description": "If the variable contains sensitive values like passwords", "default": false, "type": "boolean", "nullable": true - }, - "values": { - "description": "Values of variable", - "type": "array", - "items": { - "$ref": "#/components/schemas/InputVariableValue" - } } }, "required": [ @@ -14276,10 +14272,10 @@ "/api/rest/2.0/template/variables/{identifier}/delete": { "post": { "operationId": "deleteVariable", - "description": "\nDelete a variable
Beta Version: 10.9.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", + "description": "\nDelete a variable
Beta Version: 10.14.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "parameters": [ { @@ -14342,10 +14338,10 @@ "/api/rest/2.0/template/variables/search": { "post": { "operationId": "searchVariables", - "description": "\nSearch variables
Beta Version: 10.9.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14360,6 +14356,13 @@ "$ref": "#/components/schemas/VariableDetailInput" } }, + "value_scope": { + "description": "Array of scope filters", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueScopeInput" + } + }, "record_offset": { "description": "The starting record number from where the records should be included", "default": 0, @@ -14449,10 +14452,10 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's properties
Beta Version: 10.9.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n* The variable values\n\nWhen updating variable values, you need to specify:\n* The operation to perform (ADD, REPLACE, REMOVE)\n* The new values to add/replace/remove\n\nWhen the operation is ADD, a value any pre-existing value with the same set of constraints will be replaced.\nWhen the operation is REPLACE, all values of the variable are replaced with the values specified.\nWhen the operation is REMOVE, all values with the given set of conditions are removed.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14461,27 +14464,13 @@ "type": "object", "properties": { "name": { - "description": "New name of the variable if we want to rename.", + "description": "New name of the variable.", "type": "string" - }, - "operation": { - "description": "Operation to perform on the values.", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "values": { - "description": "Values of variable to be updated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/InputVariableValue" - } } - } + }, + "required": [ + "name" + ] } } }, @@ -14500,7 +14489,7 @@ ], "responses": { "204": { - "description": "Updating the variable is successful." + "description": "Variable name updated successfully." }, "400": { "description": "Invalid request.", @@ -14545,13 +14534,13 @@ } } }, - "/api/rest/2.0/template/variables/update": { + "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.9.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable. Any pre-existing values with the same conditions are replaced.\n* REPLACE - Replaces all values of a given org with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14559,26 +14548,24 @@ "schema": { "type": "object", "properties": { - "variable_updates": { - "description": "Variables and values", + "variable_assignment": { + "description": "Variables and values to update", "type": "array", "items": { - "$ref": "#/components/schemas/VariableValueInput" + "$ref": "#/components/schemas/VariableUpdateAssignmentInput" } }, - "operation": { - "description": "Type of update operation", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] + "variable_value_scope": { + "description": "Variables and values to update", + "type": "array", + "items": { + "$ref": "#/components/schemas/VariableUpdateScopeInput" + } } }, "required": [ - "variable_updates", - "operation" + "variable_assignment", + "variable_value_scope" ] } } @@ -14588,7 +14575,7 @@ "parameters": [], "responses": { "204": { - "description": "Updating variable values is successful." + "description": "Variable values updated successfully." }, "400": { "description": "Invalid request.", @@ -19534,6 +19521,36 @@ }, "description": "Input for variable details in search" }, + "ValueScopeInput": { + "type": "object", + "properties": { + "org_identifier": { + "type": "string", + "description": "The unique name of the org", + "nullable": true + }, + "principal_type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type", + "nullable": true + }, + "principal_identifier": { + "type": "string", + "description": "Unique ID or name of the principal", + "nullable": true + }, + "model_identifier": { + "type": "string", + "description": "Model Identifier", + "nullable": true + } + }, + "description": "Input for variable scope in search" + }, "Variable": { "type": "object", "required": [ @@ -23207,17 +23224,44 @@ } } }, - "InputVariableValue": { + "VariableUpdateAssignmentInput": { "type": "object", "required": [ - "value", - "org_identifier" + "variable_identifier", + "variable_values", + "operation" ], "properties": { - "value": { + "variable_identifier": { "type": "string", - "description": "The connection property value" + "description": "ID or Name of the variable" + }, + "variable_values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Values of the variable" }, + "operation": { + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE", + "CLEAR" + ], + "description": "Operation to perform" + } + }, + "description": "Input for variable value update in batch operations" + }, + "VariableUpdateScopeInput": { + "type": "object", + "required": [ + "org_identifier" + ], + "properties": { "org_identifier": { "type": "string", "description": "The unique name of the org" @@ -23236,34 +23280,19 @@ "description": "Unique ID or name of the principal", "nullable": true }, + "model_identifier": { + "type": "string", + "description": "Unique ID of the model", + "nullable": true + }, "priority": { "type": "integer", "format": "int32", - "description": "The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked.", + "description": "Priority level", "nullable": true } - } - }, - "VariableValueInput": { - "type": "object", - "required": [ - "variable_identifier", - "variable_values" - ], - "properties": { - "variable_identifier": { - "type": "string", - "description": "ID or Name of the variable" - }, - "variable_values": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InputVariableValue" - }, - "description": "Values of the variable" - } }, - "description": "Input for variable value update" + "description": "Input for variable value update in batch operations" }, "CreateEmailCustomizationResponse": { "type": "object", From f0472df61044aea6029480f6e3cd71db0ac15bc5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 10 Sep 2025 08:40:34 +0000 Subject: [PATCH 327/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 188 ++++++++++++++------------------ 1 file changed, 81 insertions(+), 107 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 87e35e8b4..c18e2c9e4 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6377,7 +6377,7 @@ "/api/rest/2.0/metadata/copyobject": { "post": { "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nMakes a copy of an Answer or Liveboard
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.3.0.cl" @@ -14174,10 +14174,10 @@ "/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.\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\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\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.9.0.cl or later\n\nAllows creating a variable which can be used for parameterizing metadata objects in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n\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 variable values (optional)\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* The variable values are invalid for the specified type \n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.14.0.cl" + "10.9.0.cl" ], "requestBody": { "content": { @@ -14198,11 +14198,18 @@ "description": "Name of the variable. This is unique across the cluster.", "type": "string" }, - "is_sensitive": { + "sensitive": { "description": "If the variable contains sensitive values like passwords", "default": false, "type": "boolean", "nullable": true + }, + "values": { + "description": "Values of variable", + "type": "array", + "items": { + "$ref": "#/components/schemas/InputVariableValue" + } } }, "required": [ @@ -14272,10 +14279,10 @@ "/api/rest/2.0/template/variables/{identifier}/delete": { "post": { "operationId": "deleteVariable", - "description": "\nDelete a variable
Beta Version: 10.14.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", + "description": "\nDelete a variable
Beta Version: 10.9.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.14.0.cl" + "10.9.0.cl" ], "parameters": [ { @@ -14338,10 +14345,10 @@ "/api/rest/2.0/template/variables/search": { "post": { "operationId": "searchVariables", - "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch variables
Beta Version: 10.9.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.14.0.cl" + "10.9.0.cl" ], "requestBody": { "content": { @@ -14356,13 +14363,6 @@ "$ref": "#/components/schemas/VariableDetailInput" } }, - "value_scope": { - "description": "Array of scope filters", - "type": "array", - "items": { - "$ref": "#/components/schemas/ValueScopeInput" - } - }, "record_offset": { "description": "The starting record number from where the records should be included", "default": 0, @@ -14452,10 +14452,10 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's properties
Beta Version: 10.9.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n* The variable values\n\nWhen updating variable values, you need to specify:\n* The operation to perform (ADD, REPLACE, REMOVE)\n* The new values to add/replace/remove\n\nWhen the operation is ADD, a value any pre-existing value with the same set of constraints will be replaced.\nWhen the operation is REPLACE, all values of the variable are replaced with the values specified.\nWhen the operation is REMOVE, all values with the given set of conditions are removed.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.14.0.cl" + "10.9.0.cl" ], "requestBody": { "content": { @@ -14464,13 +14464,27 @@ "type": "object", "properties": { "name": { - "description": "New name of the variable.", + "description": "New name of the variable if we want to rename.", "type": "string" + }, + "operation": { + "description": "Operation to perform on the values.", + "default": "REPLACE", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] + }, + "values": { + "description": "Values of variable to be updated.", + "type": "array", + "items": { + "$ref": "#/components/schemas/InputVariableValue" + } } - }, - "required": [ - "name" - ] + } } } }, @@ -14489,7 +14503,7 @@ ], "responses": { "204": { - "description": "Variable name updated successfully." + "description": "Updating the variable is successful." }, "400": { "description": "Invalid request.", @@ -14534,13 +14548,13 @@ } } }, - "/api/rest/2.0/template/variables/update-values": { + "/api/rest/2.0/template/variables/update": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.9.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable. Any pre-existing values with the same conditions are replaced.\n* REPLACE - Replaces all values of a given org with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.14.0.cl" + "10.9.0.cl" ], "requestBody": { "content": { @@ -14548,24 +14562,26 @@ "schema": { "type": "object", "properties": { - "variable_assignment": { - "description": "Variables and values to update", + "variable_updates": { + "description": "Variables and values", "type": "array", "items": { - "$ref": "#/components/schemas/VariableUpdateAssignmentInput" + "$ref": "#/components/schemas/VariableValueInput" } }, - "variable_value_scope": { - "description": "Variables and values to update", - "type": "array", - "items": { - "$ref": "#/components/schemas/VariableUpdateScopeInput" - } + "operation": { + "description": "Type of update operation", + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE" + ] } }, "required": [ - "variable_assignment", - "variable_value_scope" + "variable_updates", + "operation" ] } } @@ -14575,7 +14591,7 @@ "parameters": [], "responses": { "204": { - "description": "Variable values updated successfully." + "description": "Updating variable values is successful." }, "400": { "description": "Invalid request.", @@ -19521,36 +19537,6 @@ }, "description": "Input for variable details in search" }, - "ValueScopeInput": { - "type": "object", - "properties": { - "org_identifier": { - "type": "string", - "description": "The unique name of the org", - "nullable": true - }, - "principal_type": { - "type": "string", - "enum": [ - "USER", - "USER_GROUP" - ], - "description": "Principal type", - "nullable": true - }, - "principal_identifier": { - "type": "string", - "description": "Unique ID or name of the principal", - "nullable": true - }, - "model_identifier": { - "type": "string", - "description": "Model Identifier", - "nullable": true - } - }, - "description": "Input for variable scope in search" - }, "Variable": { "type": "object", "required": [ @@ -23224,44 +23210,17 @@ } } }, - "VariableUpdateAssignmentInput": { + "InputVariableValue": { "type": "object", "required": [ - "variable_identifier", - "variable_values", - "operation" + "value", + "org_identifier" ], "properties": { - "variable_identifier": { + "value": { "type": "string", - "description": "ID or Name of the variable" - }, - "variable_values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Values of the variable" + "description": "The connection property value" }, - "operation": { - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE", - "CLEAR" - ], - "description": "Operation to perform" - } - }, - "description": "Input for variable value update in batch operations" - }, - "VariableUpdateScopeInput": { - "type": "object", - "required": [ - "org_identifier" - ], - "properties": { "org_identifier": { "type": "string", "description": "The unique name of the org" @@ -23280,19 +23239,34 @@ "description": "Unique ID or name of the principal", "nullable": true }, - "model_identifier": { - "type": "string", - "description": "Unique ID of the model", - "nullable": true - }, "priority": { "type": "integer", "format": "int32", - "description": "Priority level", + "description": "The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked.", "nullable": true } + } + }, + "VariableValueInput": { + "type": "object", + "required": [ + "variable_identifier", + "variable_values" + ], + "properties": { + "variable_identifier": { + "type": "string", + "description": "ID or Name of the variable" + }, + "variable_values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputVariableValue" + }, + "description": "Values of the variable" + } }, - "description": "Input for variable value update in batch operations" + "description": "Input for variable value update" }, "CreateEmailCustomizationResponse": { "type": "object", From 29e417534a79d7b17cba46948c7af0d387eb9ca8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 10 Sep 2025 10:52:57 +0000 Subject: [PATCH 328/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 220 ++++++++++++++++++-------------- 1 file changed, 122 insertions(+), 98 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c18e2c9e4..eee42b30f 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -4426,7 +4426,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { @@ -4551,7 +4551,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { @@ -4638,7 +4638,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { @@ -4647,11 +4647,9 @@ "type": "string" }, "model_tables": { - "description": "List of Models and their respective Tables", - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelTableList" - } + "description": "List of Models and their respective Tables\nExample: '[{\"model_name\": \"model_name\", \"tables\": [\"table_name\"]}]'", + "type": "string", + "format": "json" }, "import_worksheets": { "description": "Mention the worksheet tmls to import", @@ -4663,11 +4661,9 @@ ] }, "worksheets": { - "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED", - "type": "array", - "items": { - "type": "string" - } + "description": "List of worksheets is mandatory when import_Worksheets is type SELECTED\nExample: [\"worksheet_name\"]", + "type": "string", + "format": "json" }, "file_content": { "description": "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’", @@ -4677,6 +4673,7 @@ }, "required": [ "dbt_connection_identifier", + "model_tables", "import_worksheets" ] } @@ -4881,7 +4878,7 @@ ], "requestBody": { "content": { - "application/json": { + "multipart/form-data": { "schema": { "type": "object", "properties": { @@ -6377,7 +6374,7 @@ "/api/rest/2.0/metadata/copyobject": { "post": { "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.3.0.cl" @@ -14174,10 +14171,10 @@ "/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.9.0.cl or later\n\nAllows creating a variable which can be used for parameterizing metadata objects in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n\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 variable values (optional)\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* The variable values are invalid for the specified type \n\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.\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\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\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14198,18 +14195,11 @@ "description": "Name of the variable. This is unique across the cluster.", "type": "string" }, - "sensitive": { + "is_sensitive": { "description": "If the variable contains sensitive values like passwords", "default": false, "type": "boolean", "nullable": true - }, - "values": { - "description": "Values of variable", - "type": "array", - "items": { - "$ref": "#/components/schemas/InputVariableValue" - } } }, "required": [ @@ -14279,10 +14269,10 @@ "/api/rest/2.0/template/variables/{identifier}/delete": { "post": { "operationId": "deleteVariable", - "description": "\nDelete a variable
Beta Version: 10.9.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", + "description": "\nDelete a variable
Beta Version: 10.14.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "parameters": [ { @@ -14345,10 +14335,10 @@ "/api/rest/2.0/template/variables/search": { "post": { "operationId": "searchVariables", - "description": "\nSearch variables
Beta Version: 10.9.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14363,6 +14353,13 @@ "$ref": "#/components/schemas/VariableDetailInput" } }, + "value_scope": { + "description": "Array of scope filters", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueScopeInput" + } + }, "record_offset": { "description": "The starting record number from where the records should be included", "default": 0, @@ -14452,10 +14449,10 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's properties
Beta Version: 10.9.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n* The variable values\n\nWhen updating variable values, you need to specify:\n* The operation to perform (ADD, REPLACE, REMOVE)\n* The new values to add/replace/remove\n\nWhen the operation is ADD, a value any pre-existing value with the same set of constraints will be replaced.\nWhen the operation is REPLACE, all values of the variable are replaced with the values specified.\nWhen the operation is REMOVE, all values with the given set of conditions are removed.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14464,27 +14461,13 @@ "type": "object", "properties": { "name": { - "description": "New name of the variable if we want to rename.", + "description": "New name of the variable.", "type": "string" - }, - "operation": { - "description": "Operation to perform on the values.", - "default": "REPLACE", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] - }, - "values": { - "description": "Values of variable to be updated.", - "type": "array", - "items": { - "$ref": "#/components/schemas/InputVariableValue" - } } - } + }, + "required": [ + "name" + ] } } }, @@ -14503,7 +14486,7 @@ ], "responses": { "204": { - "description": "Updating the variable is successful." + "description": "Variable name updated successfully." }, "400": { "description": "Invalid request.", @@ -14548,13 +14531,13 @@ } } }, - "/api/rest/2.0/template/variables/update": { + "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.9.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable. Any pre-existing values with the same conditions are replaced.\n* REPLACE - Replaces all values of a given org with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", - "10.9.0.cl" + "10.14.0.cl" ], "requestBody": { "content": { @@ -14562,26 +14545,24 @@ "schema": { "type": "object", "properties": { - "variable_updates": { - "description": "Variables and values", + "variable_assignment": { + "description": "Variables and values to update", "type": "array", "items": { - "$ref": "#/components/schemas/VariableValueInput" + "$ref": "#/components/schemas/VariableUpdateAssignmentInput" } }, - "operation": { - "description": "Type of update operation", - "type": "string", - "enum": [ - "ADD", - "REMOVE", - "REPLACE" - ] + "variable_value_scope": { + "description": "Variables and values to update", + "type": "array", + "items": { + "$ref": "#/components/schemas/VariableUpdateScopeInput" + } } }, "required": [ - "variable_updates", - "operation" + "variable_assignment", + "variable_value_scope" ] } } @@ -14591,7 +14572,7 @@ "parameters": [], "responses": { "204": { - "description": "Updating variable values is successful." + "description": "Variable values updated successfully." }, "400": { "description": "Invalid request.", @@ -15589,7 +15570,8 @@ }, "required": [ "name", - "url" + "url", + "events" ] } } @@ -19537,6 +19519,36 @@ }, "description": "Input for variable details in search" }, + "ValueScopeInput": { + "type": "object", + "properties": { + "org_identifier": { + "type": "string", + "description": "The unique name of the org", + "nullable": true + }, + "principal_type": { + "type": "string", + "enum": [ + "USER", + "USER_GROUP" + ], + "description": "Principal type", + "nullable": true + }, + "principal_identifier": { + "type": "string", + "description": "Unique ID or name of the principal", + "nullable": true + }, + "model_identifier": { + "type": "string", + "description": "Model Identifier", + "nullable": true + } + }, + "description": "Input for variable scope in search" + }, "Variable": { "type": "object", "required": [ @@ -19845,6 +19857,7 @@ "name", "org", "url", + "events", "created_at", "last_modified_at" ], @@ -19883,8 +19896,7 @@ "LIVEBOARD_SCHEDULE" ] }, - "description": "List of events this webhook subscribes to.", - "nullable": true + "description": "List of events this webhook subscribes to." }, "authentication": { "$ref": "#/components/schemas/WebhookAuthentication", @@ -23210,17 +23222,44 @@ } } }, - "InputVariableValue": { + "VariableUpdateAssignmentInput": { "type": "object", "required": [ - "value", - "org_identifier" + "variable_identifier", + "variable_values", + "operation" ], "properties": { - "value": { + "variable_identifier": { "type": "string", - "description": "The connection property value" + "description": "ID or Name of the variable" + }, + "variable_values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Values of the variable" }, + "operation": { + "type": "string", + "enum": [ + "ADD", + "REMOVE", + "REPLACE", + "CLEAR" + ], + "description": "Operation to perform" + } + }, + "description": "Input for variable value update in batch operations" + }, + "VariableUpdateScopeInput": { + "type": "object", + "required": [ + "org_identifier" + ], + "properties": { "org_identifier": { "type": "string", "description": "The unique name of the org" @@ -23239,34 +23278,19 @@ "description": "Unique ID or name of the principal", "nullable": true }, + "model_identifier": { + "type": "string", + "description": "Unique ID of the model", + "nullable": true + }, "priority": { "type": "integer", "format": "int32", - "description": "The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked.", + "description": "Priority level", "nullable": true } - } - }, - "VariableValueInput": { - "type": "object", - "required": [ - "variable_identifier", - "variable_values" - ], - "properties": { - "variable_identifier": { - "type": "string", - "description": "ID or Name of the variable" - }, - "variable_values": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InputVariableValue" - }, - "description": "Values of the variable" - } }, - "description": "Input for variable value update" + "description": "Input for variable value update in batch operations" }, "CreateEmailCustomizationResponse": { "type": "object", From 6fd53d622fdec31a633377c375ed5c934c4a0c69 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 11 Sep 2025 06:51:21 +0000 Subject: [PATCH 329/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index eee42b30f..d320fe4b1 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6374,7 +6374,7 @@ "/api/rest/2.0/metadata/copyobject": { "post": { "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nMakes a copy of an Answer or Liveboard
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.3.0.cl" @@ -19858,8 +19858,8 @@ "org", "url", "events", - "created_at", - "last_modified_at" + "creation_time_in_millis", + "modification_time_in_millis" ], "properties": { "id": { @@ -19908,13 +19908,15 @@ "description": "Redacted configuration for webhook signature verification.", "nullable": true }, - "created_at": { - "type": "string", - "description": "Timestamp when the webhook was created." + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the webhook configuration in milliseconds." }, - "last_modified_at": { - "type": "string", - "description": "Timestamp when the webhook was last updated." + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the webhook configuration in milliseconds." }, "created_by": { "$ref": "#/components/schemas/WebhookUser", From cba23d8ad93550f4b990375bd9ea3827ac766a97 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 11 Sep 2025 10:28:33 +0000 Subject: [PATCH 330/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d320fe4b1..a3ae96d7b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -19950,11 +19950,6 @@ "WebhookAuthentication": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKey", "description": "Redacted API key authentication configuration.", @@ -23498,11 +23493,6 @@ "WebhookAuthenticationInput": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKeyInput", "description": "API key authentication configuration.", From 0ea480f93e59578904c8afd19d92a0c6a8f337e1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 11 Sep 2025 15:56:49 +0000 Subject: [PATCH 331/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a3ae96d7b..eb81d6ac0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -19810,11 +19810,11 @@ "field_name": { "type": "string", "enum": [ - "CREATED_AT", - "LAST_MODIFIED_AT", + "CREATED", + "MODIFIED", "NAME" ], - "default": "CREATED_AT", + "default": "CREATED", "description": "Name of the field to apply the sort on.", "nullable": true }, @@ -19950,6 +19950,11 @@ "WebhookAuthentication": { "type": "object", "properties": { + "NO_AUTH": { + "type": "string", + "description": "No authentication required.", + "nullable": true + }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKey", "description": "Redacted API key authentication configuration.", @@ -23493,6 +23498,11 @@ "WebhookAuthenticationInput": { "type": "object", "properties": { + "NO_AUTH": { + "type": "string", + "description": "No authentication required.", + "nullable": true + }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKeyInput", "description": "API key authentication configuration.", From 7b21de23f9fb01a04c8cd2dd818e69a04c88a909 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 12 Sep 2025 09:48:11 +0000 Subject: [PATCH 332/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index eb81d6ac0..3b865974d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16538,6 +16538,11 @@ "type": "object", "description": "Access Control Properties which are specified for the user via JWToken", "nullable": true + }, + "variable_values": { + "type": "object", + "description": "Formula Variables which are specified for the user via JWToken", + "nullable": true } } }, @@ -19950,11 +19955,6 @@ "WebhookAuthentication": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKey", "description": "Redacted API key authentication configuration.", @@ -23498,11 +23498,6 @@ "WebhookAuthenticationInput": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKeyInput", "description": "API key authentication configuration.", From d1be49f744eaebc69b44abd49b504165f3f55cd3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 15 Sep 2025 06:11:22 +0000 Subject: [PATCH 333/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 37 +++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3b865974d..975c6cb65 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14171,7 +14171,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.\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\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\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.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n* FORMULA_VARIABLE - For Formula variables\n\nWhen creating a variable, you need to specify:\n* The variable type\n* A unique name for the variable\n* Whether the variable contains sensitive values (defaults to false)\n* The data type of the variable, only specify for fomula variables (defaults to null)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14188,7 +14188,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ] }, "name": { @@ -14200,11 +14201,24 @@ "default": false, "type": "boolean", "nullable": true + }, + "data_type": { + "description": "", + "type": "string", + "enum": [ + "VARCHAR", + "INT32", + "INT64", + "DOUBLE", + "DATE", + "DATE_TIME" + ] } }, "required": [ "type", - "name" + "name", + "data_type" ] } } @@ -16538,11 +16552,6 @@ "type": "object", "description": "Access Control Properties which are specified for the user via JWToken", "nullable": true - }, - "variable_values": { - "type": "object", - "description": "Formula Variables which are specified for the user via JWToken", - "nullable": true } } }, @@ -19511,7 +19520,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of variable", "nullable": true @@ -19574,7 +19584,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of the variable", "nullable": true @@ -19815,11 +19826,11 @@ "field_name": { "type": "string", "enum": [ - "CREATED", - "MODIFIED", + "CREATED_AT", + "LAST_MODIFIED_AT", "NAME" ], - "default": "CREATED", + "default": "CREATED_AT", "description": "Name of the field to apply the sort on.", "nullable": true }, From d1b6953110a1b5b53002120ea19b5060eab34dbc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 15 Sep 2025 08:24:54 +0000 Subject: [PATCH 334/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 62 ++++++++++++++------------------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 975c6cb65..d602a379e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14171,7 +14171,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.\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.\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\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\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" @@ -14188,8 +14188,7 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL", - "FORMULA_VARIABLE" + "CONNECTION_PROPERTY_PER_PRINCIPAL" ] }, "name": { @@ -14201,24 +14200,11 @@ "default": false, "type": "boolean", "nullable": true - }, - "data_type": { - "description": "", - "type": "string", - "enum": [ - "VARCHAR", - "INT32", - "INT64", - "DOUBLE", - "DATE", - "DATE_TIME" - ] } }, "required": [ "type", - "name", - "data_type" + "name" ] } } @@ -18158,17 +18144,17 @@ "ColumnSecurityRuleResponse": { "type": "object", "properties": { - "guid": { + "table_guid": { "type": "string", "description": "GUID of the table for which the column security rules are fetched", "nullable": true }, - "objId": { + "obj_id": { "type": "string", "description": "Object ID of the table for which the column security rules are fetched", "nullable": true }, - "columnSecurityRules": { + "column_security_rules": { "type": "array", "items": { "$ref": "#/components/schemas/ColumnSecurityRule" @@ -18196,7 +18182,7 @@ "description": "Array of groups that have access to this column", "nullable": true }, - "sourceTableDetails": { + "source_table_details": { "$ref": "#/components/schemas/ColumnSecurityRuleSourceTable", "description": "Information about the source table", "nullable": true @@ -19520,8 +19506,7 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL", - "FORMULA_VARIABLE" + "CONNECTION_PROPERTY_PER_PRINCIPAL" ], "description": "Type of variable", "nullable": true @@ -19584,8 +19569,7 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL", - "FORMULA_VARIABLE" + "CONNECTION_PROPERTY_PER_PRINCIPAL" ], "description": "Type of the variable", "nullable": true @@ -19874,8 +19858,8 @@ "org", "url", "events", - "creation_time_in_millis", - "modification_time_in_millis" + "created_at", + "last_modified_at" ], "properties": { "id": { @@ -19924,15 +19908,13 @@ "description": "Redacted configuration for webhook signature verification.", "nullable": true }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the webhook configuration in milliseconds." + "created_at": { + "type": "string", + "description": "Timestamp when the webhook was created." }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the webhook configuration in milliseconds." + "last_modified_at": { + "type": "string", + "description": "Timestamp when the webhook was last updated." }, "created_by": { "$ref": "#/components/schemas/WebhookUser", @@ -19966,6 +19948,11 @@ "WebhookAuthentication": { "type": "object", "properties": { + "NO_AUTH": { + "type": "string", + "description": "No authentication required.", + "nullable": true + }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKey", "description": "Redacted API key authentication configuration.", @@ -23509,6 +23496,11 @@ "WebhookAuthenticationInput": { "type": "object", "properties": { + "NO_AUTH": { + "type": "string", + "description": "No authentication required.", + "nullable": true + }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKeyInput", "description": "API key authentication configuration.", From ea4afb7e7f9ffa7b9ca5c9852de19431b39d9fff Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 15 Sep 2025 21:32:34 +0000 Subject: [PATCH 335/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 69 ++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d602a379e..1fad98119 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14171,7 +14171,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.\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\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\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.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n* FORMULA_VARIABLE - For Formula variables\n\nWhen creating a variable, you need to specify:\n* The variable type\n* A unique name for the variable\n* Whether the variable contains sensitive values (defaults to false)\n* The data type of the variable, only specify for fomula variables (defaults to null)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14188,7 +14188,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ] }, "name": { @@ -14200,11 +14201,24 @@ "default": false, "type": "boolean", "nullable": true + }, + "data_type": { + "description": "", + "type": "string", + "enum": [ + "VARCHAR", + "INT32", + "INT64", + "DOUBLE", + "DATE", + "DATE_TIME" + ] } }, "required": [ "type", - "name" + "name", + "data_type" ] } } @@ -16538,6 +16552,11 @@ "type": "object", "description": "Access Control Properties which are specified for the user via JWToken", "nullable": true + }, + "variable_values": { + "type": "object", + "description": "Formula Variables which are specified for the user via JWToken", + "nullable": true } } }, @@ -19506,7 +19525,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of variable", "nullable": true @@ -19569,7 +19589,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of the variable", "nullable": true @@ -19810,11 +19831,11 @@ "field_name": { "type": "string", "enum": [ - "CREATED_AT", - "LAST_MODIFIED_AT", + "CREATED", + "MODIFIED", "NAME" ], - "default": "CREATED_AT", + "default": "CREATED", "description": "Name of the field to apply the sort on.", "nullable": true }, @@ -19855,11 +19876,10 @@ "required": [ "id", "name", - "org", "url", "events", - "created_at", - "last_modified_at" + "creation_time_in_millis", + "modification_time_in_millis" ], "properties": { "id": { @@ -19877,7 +19897,8 @@ }, "org": { "$ref": "#/components/schemas/WebhookOrg", - "description": "Org details." + "description": "Org details.", + "nullable": true }, "url": { "type": "string", @@ -19908,13 +19929,15 @@ "description": "Redacted configuration for webhook signature verification.", "nullable": true }, - "created_at": { - "type": "string", - "description": "Timestamp when the webhook was created." + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the webhook configuration in milliseconds." }, - "last_modified_at": { - "type": "string", - "description": "Timestamp when the webhook was last updated." + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the webhook configuration in milliseconds." }, "created_by": { "$ref": "#/components/schemas/WebhookUser", @@ -19948,11 +19971,6 @@ "WebhookAuthentication": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKey", "description": "Redacted API key authentication configuration.", @@ -23496,11 +23514,6 @@ "WebhookAuthenticationInput": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKeyInput", "description": "API key authentication configuration.", From 06263104972f12575683d3e924128f23df825bfd Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 15 Sep 2025 23:32:30 +0000 Subject: [PATCH 336/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 168 ++++++++++---------------------- 1 file changed, 51 insertions(+), 117 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 1fad98119..d08166037 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -21,14 +21,6 @@ ], "description": "Roles for version 10.4.0.cl" }, - { - "name": "10.11.0.cl", - "id": "10.11.0.cl", - "tags": [ - "10.11.0.cl" - ], - "description": "Roles for version 10.11.0.cl" - }, { "name": "10.7.0.cl", "id": "10.7.0.cl", @@ -257,7 +249,6 @@ "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -405,10 +396,10 @@ "/api/rest/2.0/ai/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.13.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.11.0.cl" + "10.13.0.cl" ], "requestBody": { "content": { @@ -612,7 +603,7 @@ } } }, - "/api/rest/2.0/ai/agent/conversation/converse": { + "/api/rest/2.0/ai/agent/converse/sse": { "post": { "operationId": "sendAgentMessageStreaming", "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", @@ -626,16 +617,21 @@ "schema": { "type": "object", "properties": { - "input": { - "allOf": [ - { - "$ref": "#/components/schemas/SendAgentMessageInput" - } - ] + "conversation_identifier": { + "description": "Unique identifier for the conversation (used to track context)", + "type": "string" + }, + "messages": { + "description": "messages to be sent to the agent", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "input" + "conversation_identifier", + "messages" ] } } @@ -691,7 +687,6 @@ "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -6374,7 +6369,7 @@ "/api/rest/2.0/metadata/copyobject": { "post": { "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.3.0.cl" @@ -14171,7 +14166,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.\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.\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\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\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" @@ -14188,8 +14183,7 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL", - "FORMULA_VARIABLE" + "CONNECTION_PROPERTY_PER_PRINCIPAL" ] }, "name": { @@ -14201,24 +14195,11 @@ "default": false, "type": "boolean", "nullable": true - }, - "data_type": { - "description": "", - "type": "string", - "enum": [ - "VARCHAR", - "INT32", - "INT64", - "DOUBLE", - "DATE", - "DATE_TIME" - ] } }, "required": [ "type", - "name", - "data_type" + "name" ] } } @@ -15584,8 +15565,7 @@ }, "required": [ "name", - "url", - "events" + "url" ] } } @@ -16552,11 +16532,6 @@ "type": "object", "description": "Access Control Properties which are specified for the user via JWToken", "nullable": true - }, - "variable_values": { - "type": "object", - "description": "Formula Variables which are specified for the user via JWToken", - "nullable": true } } }, @@ -18163,17 +18138,17 @@ "ColumnSecurityRuleResponse": { "type": "object", "properties": { - "table_guid": { + "guid": { "type": "string", "description": "GUID of the table for which the column security rules are fetched", "nullable": true }, - "obj_id": { + "objId": { "type": "string", "description": "Object ID of the table for which the column security rules are fetched", "nullable": true }, - "column_security_rules": { + "columnSecurityRules": { "type": "array", "items": { "$ref": "#/components/schemas/ColumnSecurityRule" @@ -18201,7 +18176,7 @@ "description": "Array of groups that have access to this column", "nullable": true }, - "source_table_details": { + "sourceTableDetails": { "$ref": "#/components/schemas/ColumnSecurityRuleSourceTable", "description": "Information about the source table", "nullable": true @@ -19525,8 +19500,7 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL", - "FORMULA_VARIABLE" + "CONNECTION_PROPERTY_PER_PRINCIPAL" ], "description": "Type of variable", "nullable": true @@ -19589,8 +19563,7 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL", - "FORMULA_VARIABLE" + "CONNECTION_PROPERTY_PER_PRINCIPAL" ], "description": "Type of the variable", "nullable": true @@ -19831,11 +19804,11 @@ "field_name": { "type": "string", "enum": [ - "CREATED", - "MODIFIED", + "CREATED_AT", + "LAST_MODIFIED_AT", "NAME" ], - "default": "CREATED", + "default": "CREATED_AT", "description": "Name of the field to apply the sort on.", "nullable": true }, @@ -19876,10 +19849,10 @@ "required": [ "id", "name", + "org", "url", - "events", - "creation_time_in_millis", - "modification_time_in_millis" + "created_at", + "last_modified_at" ], "properties": { "id": { @@ -19897,8 +19870,7 @@ }, "org": { "$ref": "#/components/schemas/WebhookOrg", - "description": "Org details.", - "nullable": true + "description": "Org details." }, "url": { "type": "string", @@ -19917,7 +19889,8 @@ "LIVEBOARD_SCHEDULE" ] }, - "description": "List of events this webhook subscribes to." + "description": "List of events this webhook subscribes to.", + "nullable": true }, "authentication": { "$ref": "#/components/schemas/WebhookAuthentication", @@ -19929,15 +19902,13 @@ "description": "Redacted configuration for webhook signature verification.", "nullable": true }, - "creation_time_in_millis": { - "type": "number", - "format": "float", - "description": "Creation time of the webhook configuration in milliseconds." + "created_at": { + "type": "string", + "description": "Timestamp when the webhook was created." }, - "modification_time_in_millis": { - "type": "number", - "format": "float", - "description": "Last modified time of the webhook configuration in milliseconds." + "last_modified_at": { + "type": "string", + "description": "Timestamp when the webhook was last updated." }, "created_by": { "$ref": "#/components/schemas/WebhookUser", @@ -19971,6 +19942,11 @@ "WebhookAuthentication": { "type": "object", "properties": { + "NO_AUTH": { + "type": "string", + "description": "No authentication required.", + "nullable": true + }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKey", "description": "Redacted API key authentication configuration.", @@ -23178,53 +23154,6 @@ } } }, - "SendAgentMessageInput": { - "type": "object", - "required": [ - "conversation_identifier", - "messages", - "settings" - ], - "properties": { - "conversation_identifier": { - "type": "string", - "description": "Unique identifier for the conversation (used to track context)" - }, - "messages": { - "type": "array", - "items": { - "type": "string" - }, - "description": "messages to be sent to the agent" - }, - "settings": { - "$ref": "#/components/schemas/AgentSettingsInput", - "description": "Settings that determine how the agent processes the message(s)" - } - } - }, - "AgentSettingsInput": { - "type": "object", - "required": [ - "enable_contextual_change_analysis", - "enable_natural_language_answer_generation", - "enable_reasoning" - ], - "properties": { - "enable_contextual_change_analysis": { - "type": "boolean", - "description": "Enable contextual change analysis." - }, - "enable_natural_language_answer_generation": { - "type": "boolean", - "description": "Enable natural language to answer generation." - }, - "enable_reasoning": { - "type": "boolean", - "description": "Enable reasoning." - } - } - }, "SendAgentMessageResponse": { "type": "object", "required": [ @@ -23514,6 +23443,11 @@ "WebhookAuthenticationInput": { "type": "object", "properties": { + "NO_AUTH": { + "type": "string", + "description": "No authentication required.", + "nullable": true + }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKeyInput", "description": "API key authentication configuration.", From 2a9f8d310e5067984a9a8e456ed74ecf06a96f12 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 16 Sep 2025 12:36:22 +0000 Subject: [PATCH 337/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 86 +++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 36 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index d08166037..17f9e0713 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -6369,7 +6369,7 @@ "/api/rest/2.0/metadata/copyobject": { "post": { "operationId": "copyObject", - "description": "\nMakes a copy of an Answer or Liveboard saved in Atlas
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nMakes a copy of an Answer or Liveboard
Version: 10.3.0.cl or later\n\nCreates a copy of a metadata object.\n\nRequires at least view access to the metadata object being copied.\n\nUpon successful execution, the API creates a copy of the metadata object specified in the API request and returns the ID of the new object.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.3.0.cl" @@ -14166,7 +14166,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.\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\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\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.\n\nThe API endpoint supports the following types of variables:\n* CONNECTION_PROPERTY - For connection properties\n* TABLE_MAPPING - For table mappings\n* CONNECTION_PROPERTY_PER_PRINCIPAL - For connection properties per principal. In order to use this please contact support to enable this.\n* FORMULA_VARIABLE - For Formula variables\n\nWhen creating a variable, you need to specify:\n* The variable type\n* A unique name for the variable\n* Whether the variable contains sensitive values (defaults to false)\n* The data type of the variable, only specify for fomula variables (defaults to null)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14183,7 +14183,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ] }, "name": { @@ -14195,11 +14196,24 @@ "default": false, "type": "boolean", "nullable": true + }, + "data_type": { + "description": "", + "type": "string", + "enum": [ + "VARCHAR", + "INT32", + "INT64", + "DOUBLE", + "DATE", + "DATE_TIME" + ] } }, "required": [ "type", - "name" + "name", + "data_type" ] } } @@ -15565,7 +15579,8 @@ }, "required": [ "name", - "url" + "url", + "events" ] } } @@ -16532,6 +16547,11 @@ "type": "object", "description": "Access Control Properties which are specified for the user via JWToken", "nullable": true + }, + "variable_values": { + "type": "object", + "description": "Formula Variables which are specified for the user via JWToken", + "nullable": true } } }, @@ -18138,17 +18158,17 @@ "ColumnSecurityRuleResponse": { "type": "object", "properties": { - "guid": { + "table_guid": { "type": "string", "description": "GUID of the table for which the column security rules are fetched", "nullable": true }, - "objId": { + "obj_id": { "type": "string", "description": "Object ID of the table for which the column security rules are fetched", "nullable": true }, - "columnSecurityRules": { + "column_security_rules": { "type": "array", "items": { "$ref": "#/components/schemas/ColumnSecurityRule" @@ -18176,7 +18196,7 @@ "description": "Array of groups that have access to this column", "nullable": true }, - "sourceTableDetails": { + "source_table_details": { "$ref": "#/components/schemas/ColumnSecurityRuleSourceTable", "description": "Information about the source table", "nullable": true @@ -19500,7 +19520,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of variable", "nullable": true @@ -19563,7 +19584,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of the variable", "nullable": true @@ -19804,11 +19826,11 @@ "field_name": { "type": "string", "enum": [ - "CREATED_AT", - "LAST_MODIFIED_AT", + "CREATED", + "MODIFIED", "NAME" ], - "default": "CREATED_AT", + "default": "CREATED", "description": "Name of the field to apply the sort on.", "nullable": true }, @@ -19849,10 +19871,10 @@ "required": [ "id", "name", - "org", "url", - "created_at", - "last_modified_at" + "events", + "creation_time_in_millis", + "modification_time_in_millis" ], "properties": { "id": { @@ -19870,7 +19892,8 @@ }, "org": { "$ref": "#/components/schemas/WebhookOrg", - "description": "Org details." + "description": "Org details.", + "nullable": true }, "url": { "type": "string", @@ -19889,8 +19912,7 @@ "LIVEBOARD_SCHEDULE" ] }, - "description": "List of events this webhook subscribes to.", - "nullable": true + "description": "List of events this webhook subscribes to." }, "authentication": { "$ref": "#/components/schemas/WebhookAuthentication", @@ -19902,13 +19924,15 @@ "description": "Redacted configuration for webhook signature verification.", "nullable": true }, - "created_at": { - "type": "string", - "description": "Timestamp when the webhook was created." + "creation_time_in_millis": { + "type": "number", + "format": "float", + "description": "Creation time of the webhook configuration in milliseconds." }, - "last_modified_at": { - "type": "string", - "description": "Timestamp when the webhook was last updated." + "modification_time_in_millis": { + "type": "number", + "format": "float", + "description": "Last modified time of the webhook configuration in milliseconds." }, "created_by": { "$ref": "#/components/schemas/WebhookUser", @@ -19942,11 +19966,6 @@ "WebhookAuthentication": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKey", "description": "Redacted API key authentication configuration.", @@ -23443,11 +23462,6 @@ "WebhookAuthenticationInput": { "type": "object", "properties": { - "NO_AUTH": { - "type": "string", - "description": "No authentication required.", - "nullable": true - }, "API_KEY": { "$ref": "#/components/schemas/WebhookAuthApiKeyInput", "description": "API key authentication configuration.", From 94e7afdf1160391a6e678bc67cf0359992f5c1c3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 16 Sep 2025 18:47:52 +0000 Subject: [PATCH 338/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 85 +++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 17f9e0713..960b06011 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -603,6 +603,91 @@ } } }, + "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { + "post": { + "operationId": "sendAgentMessage", + "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "messages": { + "description": "messages to be sent to the agent", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "messages" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "conversation_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique identifier for the conversation (used to track context)" + } + ], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/ai/agent/converse/sse": { "post": { "operationId": "sendAgentMessageStreaming", From 17ea781429680c58aed2bb4dab8507ca1bdd0241 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 17 Sep 2025 06:14:14 +0000 Subject: [PATCH 339/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 184 ++++++++++++++------------------ 1 file changed, 79 insertions(+), 105 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 960b06011..9ea1a9fb2 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.11.0.cl", + "id": "10.11.0.cl", + "tags": [ + "10.11.0.cl" + ], + "description": "Roles for version 10.11.0.cl" + }, { "name": "10.7.0.cl", "id": "10.7.0.cl", @@ -249,6 +257,7 @@ "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -396,10 +405,10 @@ "/api/rest/2.0/ai/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.13.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.13.0.cl" + "10.11.0.cl" ], "requestBody": { "content": { @@ -603,92 +612,7 @@ } } }, - "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { - "post": { - "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", - "tags": [ - "AI", - "10.13.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "messages": { - "description": "messages to be sent to the agent", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "messages" - ] - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "conversation_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique identifier for the conversation (used to track context)" - } - ], - "responses": { - "200": { - "description": "Common successful response", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "201": { - "description": "Common error response", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "400": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Operation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, - "/api/rest/2.0/ai/agent/converse/sse": { + "/api/rest/2.0/ai/agent/conversation/converse": { "post": { "operationId": "sendAgentMessageStreaming", "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", @@ -702,21 +626,16 @@ "schema": { "type": "object", "properties": { - "conversation_identifier": { - "description": "Unique identifier for the conversation (used to track context)", - "type": "string" - }, - "messages": { - "description": "messages to be sent to the agent", - "type": "array", - "items": { - "type": "string" - } + "input": { + "allOf": [ + { + "$ref": "#/components/schemas/SendAgentMessageInput" + } + ] } }, "required": [ - "conversation_identifier", - "messages" + "input" ] } } @@ -772,6 +691,7 @@ "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -14283,7 +14203,7 @@ "nullable": true }, "data_type": { - "description": "", + "description": "Variable Data Type", "type": "string", "enum": [ "VARCHAR", @@ -14297,8 +14217,7 @@ }, "required": [ "type", - "name", - "data_type" + "name" ] } } @@ -19702,6 +19621,14 @@ "description": "The value of the variable", "nullable": true }, + "value_list": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The value of the variable if it is a list type", + "nullable": true + }, "org_identifier": { "type": "string", "description": "The unique name of the org" @@ -19956,6 +19883,7 @@ "required": [ "id", "name", + "org", "url", "events", "creation_time_in_millis", @@ -19977,8 +19905,7 @@ }, "org": { "$ref": "#/components/schemas/WebhookOrg", - "description": "Org details.", - "nullable": true + "description": "Org details." }, "url": { "type": "string", @@ -23258,6 +23185,53 @@ } } }, + "SendAgentMessageInput": { + "type": "object", + "required": [ + "conversation_identifier", + "messages", + "settings" + ], + "properties": { + "conversation_identifier": { + "type": "string", + "description": "Unique identifier for the conversation (used to track context)" + }, + "messages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "messages to be sent to the agent" + }, + "settings": { + "$ref": "#/components/schemas/AgentSettingsInput", + "description": "Settings that determine how the agent processes the message(s)" + } + } + }, + "AgentSettingsInput": { + "type": "object", + "required": [ + "enable_contextual_change_analysis", + "enable_natural_language_answer_generation", + "enable_reasoning" + ], + "properties": { + "enable_contextual_change_analysis": { + "type": "boolean", + "description": "Enable contextual change analysis." + }, + "enable_natural_language_answer_generation": { + "type": "boolean", + "description": "Enable natural language to answer generation." + }, + "enable_reasoning": { + "type": "boolean", + "description": "Enable reasoning." + } + } + }, "SendAgentMessageResponse": { "type": "object", "required": [ From 6053eed81d244c520f8ed6644b7bab08896defed Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 29 Sep 2025 06:07:32 +0000 Subject: [PATCH 340/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 171 +++++++++++++++++++------------- 1 file changed, 102 insertions(+), 69 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9ea1a9fb2..c416dd7f9 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -21,14 +21,6 @@ ], "description": "Roles for version 10.4.0.cl" }, - { - "name": "10.11.0.cl", - "id": "10.11.0.cl", - "tags": [ - "10.11.0.cl" - ], - "description": "Roles for version 10.11.0.cl" - }, { "name": "10.7.0.cl", "id": "10.7.0.cl", @@ -257,7 +249,6 @@ "post": { "operationId": "createConversation", "description": "\nBeta Version: 10.4.0.cl or later\n\nCreates a Conversation object to start an AI-driven conversation based on a specific data model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThis API requires the `metadata_identifier` parameter to define the context for the conversation.\n\nYou can also specify the tokens to initiate the conversation as shown in this example:\n\n`\"tokens\": \"[tea],[sales],[type]\"`\n\nIf the API request is successful, ThoughtSpot returns the ID of the conversation.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -405,10 +396,10 @@ "/api/rest/2.0/ai/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", - "description": "\nBeta Version: 10.11.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.13.0.cl or later\n\nBreaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata.\n\nTo use this API, the user must have at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nTo accurately generate relevant questions, the request must include at least one of the following metadata identifiers within `metadata_context` : `conversation_identifier`, `answer_identifiers`, `liveboard_identifiers`, or `data_source_identifiers`.\n\nYou can further enhance the quality and precision of breakdown by providing additional `ai_context` such as:\n\n- `content`: User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response.\n- `instructions`: User specific text instructions sent to AI system for processing the query.\n\nAdditional optional parameters include:\n\n- `limit_relevant_questions`: Controls the maximum number of relevant questions returned. Defaults to 5 if not specified.\n- `bypass_cache`: If set to true, forces fresh computation instead of returning cached results.\n\nIf the API request is successful, ThoughtSpot returns a list of relevant analytical queries, each aligned with the user's original question. Each returned question includes the query string, along with the identifier and name of the corresponding data source.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.11.0.cl" + "10.13.0.cl" ], "requestBody": { "content": { @@ -612,7 +603,92 @@ } } }, - "/api/rest/2.0/ai/agent/conversation/converse": { + "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { + "post": { + "operationId": "sendAgentMessage", + "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.13.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "messages": { + "description": "messages to be sent to the agent", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "messages" + ] + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "conversation_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique identifier for the conversation (used to track context)" + } + ], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Operation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/api/rest/2.0/ai/agent/converse/sse": { "post": { "operationId": "sendAgentMessageStreaming", "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nAdditionally, user can specify what tool can be included `conversation_settings` parameter, which supports:\n- `enable_contextual_change_analysis` (default: false)\n- `enable_natural_language_answer_generation` (default: true)\n- `enable_reasoning` (default: false)\n\nIf the request is valid, the API returns a stream of messages in real time, including:\n- `ack`: confirms receipt of the request\n- `text / text-chunk`: content chunks, optionally formatted (e.g., markdown)\n- `answer`: the final structured response with metadata and analytics\n- `error`: if a failure occurs\n- `notification`: notification messages for operation being performed\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n> * The streaming protocol uses Server-Sent Events (SSE)\n\n\n\n#### Endpoint URL\n", @@ -626,16 +702,21 @@ "schema": { "type": "object", "properties": { - "input": { - "allOf": [ - { - "$ref": "#/components/schemas/SendAgentMessageInput" - } - ] + "conversation_identifier": { + "description": "Unique identifier for the conversation (used to track context)", + "type": "string" + }, + "messages": { + "description": "messages to be sent to the agent", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "input" + "conversation_identifier", + "messages" ] } } @@ -691,7 +772,6 @@ "post": { "operationId": "sendMessage", "description": "\nBeta Version: 10.4.0.cl or later\n\nAllows sending a follow-up message to an ongoing conversation within the context of the metadata model.\n\nRequires at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body.\n\nIf the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", - "deprecated": true, "tags": [ "AI", "10.4.0.cl" @@ -19883,7 +19963,6 @@ "required": [ "id", "name", - "org", "url", "events", "creation_time_in_millis", @@ -19905,7 +19984,8 @@ }, "org": { "$ref": "#/components/schemas/WebhookOrg", - "description": "Org details." + "description": "Org details.", + "nullable": true }, "url": { "type": "string", @@ -23185,53 +23265,6 @@ } } }, - "SendAgentMessageInput": { - "type": "object", - "required": [ - "conversation_identifier", - "messages", - "settings" - ], - "properties": { - "conversation_identifier": { - "type": "string", - "description": "Unique identifier for the conversation (used to track context)" - }, - "messages": { - "type": "array", - "items": { - "type": "string" - }, - "description": "messages to be sent to the agent" - }, - "settings": { - "$ref": "#/components/schemas/AgentSettingsInput", - "description": "Settings that determine how the agent processes the message(s)" - } - } - }, - "AgentSettingsInput": { - "type": "object", - "required": [ - "enable_contextual_change_analysis", - "enable_natural_language_answer_generation", - "enable_reasoning" - ], - "properties": { - "enable_contextual_change_analysis": { - "type": "boolean", - "description": "Enable contextual change analysis." - }, - "enable_natural_language_answer_generation": { - "type": "boolean", - "description": "Enable natural language to answer generation." - }, - "enable_reasoning": { - "type": "boolean", - "description": "Enable reasoning." - } - } - }, "SendAgentMessageResponse": { "type": "object", "required": [ From 9f768719fba3fe37c41c544986ea9d5dd82dd14e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 6 Oct 2025 21:40:19 +0000 Subject: [PATCH 341/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c416dd7f9..0312c2e1d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1067,7 +1067,7 @@ "/api/rest/2.0/auth/token/custom": { "post": { "operationId": "getCustomAccessToken", - "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. \n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. If `auto_create` is set to `true`, it won't create formula variables and hence won't be applicable for `variable_values`.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n##### Formula Variables\nBefore using variables_values, variables must be created using Create Variable API with type as Formula_Variable (/api/rest/2.0/template/variables/create)\nThe persist_option RESET and NONE cannot be used when variable_values are provided in the request.\nIf you are working with variable_values, you must use other (APPEND, REPLACE) supported modes.\nIf you want to use RESET or NONE, do not pass any variable_values. In such cases, variable_values will remain unaffected.\nWhen using object_id with variable_values, models are supported. \n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "10.4.0.cl" @@ -1103,7 +1103,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", @@ -1127,7 +1127,7 @@ } }, "variable_values": { - "description": "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" @@ -1156,7 +1156,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 @@ -20356,7 +20356,7 @@ "enum": [ "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.", "nullable": true }, "identifier": { @@ -20696,7 +20696,7 @@ "properties": { "name": { "type": "string", - "description": "The name of the column to apply the variable on." + "description": "The name of the existing formula variable." }, "values": { "type": "array", @@ -20729,7 +20729,7 @@ "enum": [ "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.", "nullable": true }, "identifier": { From 8404ceb605163bf15a1b3b4536a25886fd206bc5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 10 Oct 2025 05:39:57 +0000 Subject: [PATCH 342/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0312c2e1d..c416dd7f9 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1067,7 +1067,7 @@ "/api/rest/2.0/auth/token/custom": { "post": { "operationId": "getCustomAccessToken", - "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. \n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. If `auto_create` is set to `true`, it won't create formula variables and hence won't be applicable for `variable_values`.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n##### Formula Variables\nBefore using variables_values, variables must be created using Create Variable API with type as Formula_Variable (/api/rest/2.0/template/variables/create)\nThe persist_option RESET and NONE cannot be used when variable_values are provided in the request.\nIf you are working with variable_values, you must use other (APPEND, REPLACE) supported modes.\nIf you want to use RESET or NONE, do not pass any variable_values. In such cases, variable_values will remain unaffected.\nWhen using object_id with variable_values, models are supported. \n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "10.4.0.cl" @@ -1103,7 +1103,7 @@ "type": "string" }, "persist_option": { - "description": "Indicates whether the specified attributes should be persisted or not. RESET and NONE are not applicable if you are setting variable_values.", + "description": "Indicates whether the specified attributes should be persisted or not.", "type": "string", "enum": [ "REPLACE", @@ -1127,7 +1127,7 @@ } }, "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", + "description": "Variable values.", "type": "array", "items": { "$ref": "#/components/schemas/VariableValues" @@ -1156,7 +1156,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. New formula variables won't be created.
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.
Version: 10.5.0.cl or later", "default": true, "type": "boolean", "nullable": true @@ -20356,7 +20356,7 @@ "enum": [ "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", "nullable": true }, "identifier": { @@ -20696,7 +20696,7 @@ "properties": { "name": { "type": "string", - "description": "The name of the existing formula variable." + "description": "The name of the column to apply the variable on." }, "values": { "type": "array", @@ -20729,7 +20729,7 @@ "enum": [ "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", "nullable": true }, "identifier": { From cad6a7f14414ccb6e798093dae84455cc99a8cde Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 10 Oct 2025 11:30:29 +0000 Subject: [PATCH 343/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c416dd7f9..0312c2e1d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1067,7 +1067,7 @@ "/api/rest/2.0/auth/token/custom": { "post": { "operationId": "getCustomAccessToken", - "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.\n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nGets an authentication token with custom rules and security attributes and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins.\n\nTo add a new user and assign privileges during auto creation, you need `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\nTo assign security attributes with filter rules and Parameters to the JWT token, you'll need administrator privileges and edit access to the data source (Worksheet or Model). If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled, the `CONTROL_TRUSTED_AUTH`(**Can Enable or Disable Trusted Authentication**) privilege and edit access to the data source is required.\n\n#### Usage guidelines\n\nYou can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key`.\n\nTo generate a `secret_key` on your cluster, the administrator must enable [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable) in the **Develop** > **Customizations** > **Security Settings** page.\n\n**Note**: When both `password` and `secret_key` are included in the API request, `password` takes precedence.\n\nIf Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. You can switch to token-based authentication with `secret_key` or contact ThoughtSpot Support for assistance.\n\n##### Attribute-Based Access Control (ABAC) with tokens\n\nTo implement Attribute-Based Access Control (ABAC) and assign security entitlements to users during session creation, you can generate a token with custom filtering rules and Parameters in the `filter_rules` and `parameter_values` array respectively. These attributes can be configured to persist on a specific set of objects for user sessions initiated using the token. Once defined, the rules are added to the user's `access_control_properties` object, after which all sessions will use the persisted values.\n\nSpecify the object type as `LOGICAL_TABLE`. \n\nFor more information, see [ABAC via tokens Documentation](https://developers.thoughtspot.com/docs/api-authv2#_get_tokens_with_custom_rules_and_filter_conditions).\n\n##### Just-in-time provisioning\n\nFor just-in-time user creation and provisioning, define the following attributes:\n\n* `auto_create`\n* `username`\n* `display_name`\n* `email`\n* `groups`\n\nSet `auto_create` to `true` if the user is not available in ThoughtSpot. If the user already exists in ThoughtSpot and the `auto_create` parameter is set to `true` in the API request, the user properties such as the display name, email, Org and group assignment will not be updated with new values. If `auto_create` is set to `true`, it won't create formula variables and hence won't be applicable for `variable_values`.\n\nFor more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning).\n\n##### Important point to note\nAll options in the token creation APIs that define access to the content in ThoughtSpot will do so during the token creation and not when the token is being used for authentication. For example, `auto_create:true` will create the user when the authentication token is created. Persist options such as `APPEND`, `REPLACE`, `RESET` will persist security parameters on the user profile when the token is created, while Persist option `NONE` will not persist anything but will be honoured in the session.\n\n##### Formula Variables\nBefore using variables_values, variables must be created using Create Variable API with type as Formula_Variable (/api/rest/2.0/template/variables/create)\nThe persist_option RESET and NONE cannot be used when variable_values are provided in the request.\nIf you are working with variable_values, you must use other (APPEND, REPLACE) supported modes.\nIf you want to use RESET or NONE, do not pass any variable_values. In such cases, variable_values will remain unaffected.\nWhen using object_id with variable_values, models are supported. \n\n\n\n#### Endpoint URL\n", "tags": [ "Authentication", "10.4.0.cl" @@ -1103,7 +1103,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", @@ -1127,7 +1127,7 @@ } }, "variable_values": { - "description": "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" @@ -1156,7 +1156,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 @@ -20356,7 +20356,7 @@ "enum": [ "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.", "nullable": true }, "identifier": { @@ -20696,7 +20696,7 @@ "properties": { "name": { "type": "string", - "description": "The name of the column to apply the variable on." + "description": "The name of the existing formula variable." }, "values": { "type": "array", @@ -20729,7 +20729,7 @@ "enum": [ "LOGICAL_TABLE" ], - "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`. The `LIVEBOARD` and `ANSWER` object types are not supported.", + "description": " Type of object.\n \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.\n \n\n Specify the object type as `LOGICAL_TABLE`.", "nullable": true }, "identifier": { From 373e71d307760a5d670adf1f3aab76f02ae3b965 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 15 Oct 2025 13:20:34 +0000 Subject: [PATCH 344/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 235 ++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0312c2e1d..853dbe855 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\nTo 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\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` or `WORKSHEET_USER`)\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context\n\n\n\n> ###### Note:\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\nTo 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\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` or `WORKSHEET_USER`). Currently only `GLOBAL` is supported.\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context for that data-model\n\n\n> ###### Note:\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", @@ -19576,6 +19736,45 @@ } } }, + "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": [ + "WORKSHEET_USER", + "GLOBAL" + ], + "description": "Scope of the instruction." + } + } + }, "RiseGQLArgWrapper": { "type": "object", "required": [ @@ -23280,6 +23479,42 @@ } } }, + "NLInstructionsInfoInput": { + "type": "object", + "required": [ + "instructions", + "scope" + ], + "properties": { + "instructions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User instructions for natural language processing." + }, + "scope": { + "type": "string", + "enum": [ + "WORKSHEET_USER", + "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": [ From 0f7492d4c13d98bd0e480e0ad5c22c6c86d52836 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 17 Oct 2025 07:25:58 +0000 Subject: [PATCH 345/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 853dbe855..05e517e8b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -404,7 +404,7 @@ "/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\nTo 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\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` or `WORKSHEET_USER`)\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context\n\n\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.\n\n\n\n#### Endpoint URL\n", + "description": "\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" @@ -944,7 +944,7 @@ "/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\nTo 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\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` or `WORKSHEET_USER`). Currently only `GLOBAL` is supported.\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context for that data-model\n\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.\n\n\n\n\n#### Endpoint URL\n", + "description": "\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" @@ -19768,7 +19768,6 @@ "scope": { "type": "string", "enum": [ - "WORKSHEET_USER", "GLOBAL" ], "description": "Scope of the instruction." @@ -23496,7 +23495,6 @@ "scope": { "type": "string", "enum": [ - "WORKSHEET_USER", "GLOBAL" ], "description": "Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL." From 9b777818ea64f4ac2df5cfceaed8106799ebe593 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 17 Oct 2025 10:44:02 +0000 Subject: [PATCH 346/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 05e517e8b..8b3144774 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -404,7 +404,7 @@ "/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", + "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\nTo 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\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` or `WORKSHEET_USER`)\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context\n\n\n\n> ###### Note:\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" @@ -944,7 +944,7 @@ "/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", + "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\nTo 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\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` or `WORKSHEET_USER`). Currently only `GLOBAL` is supported.\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context for that data-model\n\n\n> ###### Note:\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" @@ -14588,7 +14588,7 @@ "/api/rest/2.0/template/variables/search": { "post": { "operationId": "searchVariables", - "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14625,14 +14625,13 @@ "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_AND_VALUES", - "EDITABLE_METADATA_AND_VALUES" + "METADATA", + "METADATA_AND_VALUES" ] } } @@ -19768,6 +19767,7 @@ "scope": { "type": "string", "enum": [ + "WORKSHEET_USER", "GLOBAL" ], "description": "Scope of the instruction." @@ -23495,6 +23495,7 @@ "scope": { "type": "string", "enum": [ + "WORKSHEET_USER", "GLOBAL" ], "description": "Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL." @@ -23538,7 +23539,7 @@ "ADD", "REMOVE", "REPLACE", - "CLEAR" + "RESET" ], "description": "Operation to perform" } From 769420b4c2618dfbbb4dad7e37cf7e7a22e48595 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 22 Oct 2025 17:51:07 +0000 Subject: [PATCH 347/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 248 +------------------------------- 1 file changed, 7 insertions(+), 241 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 8b3144774..0312c2e1d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -21,14 +21,6 @@ ], "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", @@ -401,78 +393,6 @@ } } }, - "/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\nTo 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\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` or `WORKSHEET_USER`)\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context\n\n\n\n> ###### Note:\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", @@ -941,86 +861,6 @@ } } }, - "/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\nTo 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\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` or `WORKSHEET_USER`). Currently only `GLOBAL` is supported.\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- **WORKSHEET_USER**: Instructions that apply only to the specific user context for that data-model\n\n\n> ###### Note:\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", @@ -14588,7 +14428,7 @@ "/api/rest/2.0/template/variables/search": { "post": { "operationId": "searchVariables", - "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14625,13 +14465,14 @@ "type": "integer", "format": "int32" }, - "response_content": { + "output_format": { "description": "Format in which we want the output", - "default": "METADATA", + "default": "METADATA_ONLY", "type": "string", "enum": [ - "METADATA", - "METADATA_AND_VALUES" + "METADATA_ONLY", + "METADATA_AND_VALUES", + "EDITABLE_METADATA_AND_VALUES" ] } } @@ -19735,45 +19576,6 @@ } } }, - "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": [ - "WORKSHEET_USER", - "GLOBAL" - ], - "description": "Scope of the instruction." - } - } - }, "RiseGQLArgWrapper": { "type": "object", "required": [ @@ -23478,42 +23280,6 @@ } } }, - "NLInstructionsInfoInput": { - "type": "object", - "required": [ - "instructions", - "scope" - ], - "properties": { - "instructions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User instructions for natural language processing." - }, - "scope": { - "type": "string", - "enum": [ - "WORKSHEET_USER", - "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": [ @@ -23539,7 +23305,7 @@ "ADD", "REMOVE", "REPLACE", - "RESET" + "CLEAR" ], "description": "Operation to perform" } From 0ae40fae0c82023a060a1c019f1626bbe1374d9c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 23 Oct 2025 07:17:51 +0000 Subject: [PATCH 348/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 248 ++++++++++++++++++++++++++++++-- 1 file changed, 240 insertions(+), 8 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 0312c2e1d..89662f6b6 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", @@ -2952,7 +3112,7 @@ "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n * This is an example of updating a single table in a empty connection:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"DEMORENAME\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"Col1\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col2\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col3\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col312\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col4\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n \n* This is an example of updating a single table in an existing connection with tables:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"CUSTOMER\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [],\n \"relationships\": []\n },\n {\n \"name\": \"tpch5k_falcon_default_schema_users\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"user_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"product_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"user_cost\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -14428,7 +14588,7 @@ "/api/rest/2.0/template/variables/search": { "post": { "operationId": "searchVariables", - "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA_ONLY - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n* EDITABLE_METADATA_AND_VALUES - Returns only editable variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14465,14 +14625,13 @@ "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_AND_VALUES", - "EDITABLE_METADATA_AND_VALUES" + "METADATA", + "METADATA_AND_VALUES" ] } } @@ -19576,6 +19735,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": [ @@ -23280,6 +23477,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": [ @@ -23305,7 +23537,7 @@ "ADD", "REMOVE", "REPLACE", - "CLEAR" + "RESET" ], "description": "Operation to perform" } From df1ec566ac82003b93171bf3f9302d0656d2db44 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 27 Oct 2025 20:27:10 +0000 Subject: [PATCH 349/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 89662f6b6..a998c8a9d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -332,10 +332,10 @@ "/api/rest/2.0/ai/data-source-suggestions": { "post": { "operationId": "getDataSourceSuggestions", - "description": "\nBeta Version: 10.13.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.15.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.13.0.cl" + "10.15.0.cl" ], "requestBody": { "content": { @@ -686,10 +686,10 @@ "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { "post": { "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.15.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.13.0.cl" + "10.15.0.cl" ], "requestBody": { "content": { From 99641b2712c45fa91f6b8f50be61709607b99432 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 28 Oct 2025 04:50:32 +0000 Subject: [PATCH 350/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a998c8a9d..89662f6b6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -332,10 +332,10 @@ "/api/rest/2.0/ai/data-source-suggestions": { "post": { "operationId": "getDataSourceSuggestions", - "description": "\nBeta Version: 10.15.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.13.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.15.0.cl" + "10.13.0.cl" ], "requestBody": { "content": { @@ -686,10 +686,10 @@ "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { "post": { "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.15.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.15.0.cl" + "10.13.0.cl" ], "requestBody": { "content": { From f2e2e13106d5ee4b9d32dbf008a54f83d674ae7d Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 29 Oct 2025 00:30:54 -0700 Subject: [PATCH 351/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 89662f6b6..a998c8a9d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -332,10 +332,10 @@ "/api/rest/2.0/ai/data-source-suggestions": { "post": { "operationId": "getDataSourceSuggestions", - "description": "\nBeta Version: 10.13.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.15.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.13.0.cl" + "10.15.0.cl" ], "requestBody": { "content": { @@ -686,10 +686,10 @@ "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { "post": { "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.15.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.13.0.cl" + "10.15.0.cl" ], "requestBody": { "content": { From 62b02e369c466d4d4d7d9dcfa2e19acf670911c3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 29 Oct 2025 15:32:52 +0000 Subject: [PATCH 352/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a998c8a9d..b443e36f5 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -332,10 +332,10 @@ "/api/rest/2.0/ai/data-source-suggestions": { "post": { "operationId": "getDataSourceSuggestions", - "description": "\nBeta Version: 10.15.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.13.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.15.0.cl" + "10.13.0.cl" ], "requestBody": { "content": { @@ -686,10 +686,10 @@ "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { "post": { "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.15.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.15.0.cl" + "10.13.0.cl" ], "requestBody": { "content": { @@ -3112,7 +3112,7 @@ "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n * This is an example of updating a single table in a empty connection:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"DEMORENAME\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"Col1\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col2\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col3\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col312\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col4\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n \n* This is an example of updating a single table in an existing connection with tables:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"CUSTOMER\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [],\n \"relationships\": []\n },\n {\n \"name\": \"tpch5k_falcon_default_schema_users\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"user_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"product_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"user_cost\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -5717,6 +5717,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", @@ -6077,6 +6078,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -6285,6 +6287,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", @@ -8931,6 +8934,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", @@ -9163,6 +9167,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "CAN_VIEW_FOLDERS", "CAN_MODIDY_FOLDERS", + "CAN_MANAGE_VARIABLES", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -9324,6 +9329,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", @@ -14035,6 +14041,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -19196,6 +19203,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "CAN_VIEW_FOLDERS", "CAN_MODIDY_FOLDERS", + "CAN_MANAGE_VARIABLES", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -21333,6 +21341,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", @@ -22323,6 +22332,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", From fd58754144548ab840b6eb80040dfdd2704897ce Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 30 Oct 2025 21:31:40 +0000 Subject: [PATCH 353/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b443e36f5..7d087ee73 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -332,10 +332,10 @@ "/api/rest/2.0/ai/data-source-suggestions": { "post": { "operationId": "getDataSourceSuggestions", - "description": "\nBeta Version: 10.13.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.15.0.cl or later\n\nProvides relevant data source recommendations for a user-submitted natural language query.\n\nTo use this API, the user must have at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include a `query` string via the request body.\n\nThe returned results include metadata such as:\n- `confidence`: a float indicating the model's confidence in the relevance of each recommendation\n- `details`: includes `data_source_identifier`, `data_source_name`, and `description` of each recommended data source\n- `reasoning`: rationale provided by the LLM to explain why each data source was recommended\n\nIf the API request is successful, ThoughtSpot returns a ranked list of data sources, each annotated with relevant reasoning.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before it is made Generally Available.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.13.0.cl" + "10.15.0.cl" ], "requestBody": { "content": { @@ -686,10 +686,10 @@ "/api/rest/2.0/ai/agent/{conversation_identifier}/converse": { "post": { "operationId": "sendAgentMessage", - "description": "\nBeta Version: 10.13.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.15.0.cl or later\n\nThis API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. \nTo use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message.\n\n\n#### Usage guidelines\n\nTo initiate or continue a conversation, the request must include:\n- `conversation_identifier`: a unique session ID for continuity and message tracking\n- `messages`: an array of one or more text messages, each with a value and type\n\nThe API returns a array of object with a type, message, and metadata.\n- `type`: Type of the message — text, answer, or error.\n- `message`: Main content of the response.\n- `metadata`: Additional info depending on the message type.\n\n> ###### Note:\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster.\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", - "10.13.0.cl" + "10.15.0.cl" ], "requestBody": { "content": { @@ -3112,7 +3112,7 @@ "/api/rest/2.0/connections/{connection_identifier}/update": { "post": { "operationId": "updateConnectionV2", - "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n {\n \"name\":\"AllDatatypes\",\n \"isAutoCreated\":false,\n \"schemas\":[\n {\n \"name\":\"alldatatypes\",\n \"tables\":[\n {\n \"name\":\"allDatatypes\",\n \"type\":\"TABLE\",\n \"description\":\"\",\n \"selected\":true,\n \"linked\":true,\n \"columns\":[\n {\n \"name\":\"CNUMBER\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n },\n {\n \"name\":\"CDECIMAL\",\n \"type\":\"INT64\",\n \"canImport\":true,\n \"selected\":true,\n \"isLinkedActive\":true,\n \"isImported\":false,\n \"tableName\":\"allDatatypes\",\n \"schemaName\":\"alldatatypes\",\n \"dbName\":\"AllDatatypes\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.4.0.cl or later\n\nUpdates a connection object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\nTo update a connection object, pass these parameters in your API request:\n\n1. GUID of the connection object.\n2. If you are updating tables or database schema of a connection object:\n a. Add the updated JSON map of metadata with database, schema, and tables in `data_warehouse_config`.\n b. Set `validate` to `true`.\n \n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example:\n * This is an example of updating a single table in a empty connection:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"DEMORENAME\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"Col1\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col2\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col3\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col312\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"Col4\",\n \"type\": \"VARCHAR\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n \n* This is an example of updating a single table in an existing connection with tables:\n \n ```\n {\n \"authenticationType\": \"SERVICE_ACCOUNT\",\n \"externalDatabases\": [\n {\n \"name\": \"DEVELOPMENT\",\n \"isAutoCreated\": false,\n \"schemas\": [\n {\n \"name\": \"TS_dataset\",\n \"tables\": [\n {\n \"name\": \"CUSTOMER\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [],\n \"relationships\": []\n },\n {\n \"name\": \"tpch5k_falcon_default_schema_users\",\n \"type\": \"TABLE\",\n \"description\": \"\",\n \"selected\": true,\n \"linked\": true,\n \"gid\": 0,\n \"datasetId\": \"-1\",\n \"subType\": \"\",\n \"reportId\": \"\",\n \"viewId\": \"\",\n \"columns\": [\n {\n \"name\": \"user_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"product_id\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n },\n {\n \"name\": \"user_cost\",\n \"type\": \"INT64\",\n \"canImport\": true,\n \"selected\": true,\n \"description\": \"\",\n \"isLinkedActive\": true,\n \"isAggregate\": false\n }\n ],\n \"relationships\": []\n }\n ]\n }\n ]\n }\n ],\n \"configuration\": {\n \"password\": \"\",\n \"database\": \"DEVELOPMENT\",\n \"role\": \"DEV\",\n \"accountName\": \"thoughtspot_partner\",\n \"warehouse\": \"DEMO_WH\",\n \"user\": \"DEV_USER\"\n }\n }\n ```\n\n3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`.\n\n **NOTE:** If the `authentication_type` is anything other than SERVICE_ACCOUNT, you must explicitly provide the authenticationType property in the payload. If you do not specify authenticationType, the API will default to SERVICE_ACCOUNT as the authentication type.\n\n * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a Snowflake connection:\n ```\n {\n \"configuration\":{\n \"accountName\":\"thoughtspot_partner\",\n \"user\":\"tsadmin\",\n \"password\":\"TestConn123\",\n \"role\":\"sysadmin\",\n \"warehouse\":\"MEDIUM_WH\"\n },\n \"externalDatabases\":[\n\n ]\n }\n ```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connections", "10.4.0.cl" @@ -14418,7 +14418,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.\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\n\nWhen creating a variable, you need to specify:\n* The variable type\n* A unique name for the variable\n* Whether the variable contains sensitive values (defaults to false)\n* The data type of the variable, only specify for fomula variables (defaults to null)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable name already exists\n* The variable type is invalid\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14529,7 +14529,7 @@ "/api/rest/2.0/template/variables/{identifier}/delete": { "post": { "operationId": "deleteVariable", - "description": "\nDelete a variable
Beta Version: 10.14.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", + "description": "\nDelete a variable
Beta Version: 10.14.0.cl or later\n\nAllows deleting a variable from ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint requires:\n* The variable identifier (ID or name)\n\nThe operation will fail if:\n* The user lacks required permissions\n* The variable doesn't exist\n* The variable is being used by other objects \n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14595,7 +14595,7 @@ "/api/rest/2.0/template/variables/search": { "post": { "operationId": "searchVariables", - "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", + "description": "\nSearch variables
Beta Version: 10.14.0.cl or later\n\nAllows searching for variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint supports searching variables by:\n* Variable identifier (ID or name)\n* Variable type\n* Name pattern (case-insensitive, supports % for wildcard)\n\nThe search results can be formatted in three ways:\n* METADATA - Returns only variable metadata (default)\n* METADATA_AND_VALUES - Returns variable metadata and values\n\nThe values can be filtered by scope:\n* org_identifier\n* principal_identifier\n* model_identifier\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14708,7 +14708,7 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -14793,7 +14793,7 @@ "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" From 7ce35935cf206af5864c13fb9f79a0a5a2458de1 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 4 Nov 2025 13:49:31 +0000 Subject: [PATCH 354/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7d087ee73..c693c8503 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1446,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": [ @@ -1575,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": [ From fda25caa33e2d70dac9edc0f4333eb1a4f4894cd Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 5 Nov 2025 14:41:00 +0530 Subject: [PATCH 355/410] option to hide fields in apis (#306) Co-authored-by: Piyush Tayal --- api-playground/README.md | 13 ++ api-playground/api-playground-config.json | 6 + api-playground/build.sh | 4 + api-playground/processSpec.js | 170 ++++++++++++++++++++++ 4 files changed, 193 insertions(+) create mode 100644 api-playground/api-playground-config.json create mode 100644 api-playground/processSpec.js diff --git a/api-playground/README.md b/api-playground/README.md index f0f9662e0..d5aca62ed 100644 --- a/api-playground/README.md +++ b/api-playground/README.md @@ -5,6 +5,19 @@ Please go [here](https://try-everywhere.thoughtspot.cloud/v2/#/everywhere/api/re ## Background The Rest API playground is generated using APIMatic's [portal generation API](https://portal-api-docs.apimatic.io/#/http/getting-started/overview-apimatic-portal-generation) and deployed directly on Vercel +## Hiding Fields + +To hide specific fields from the API playground UI: + +Add configuration to `api-playground-config.json`: +```json +{ + "hideApiFields": [ + { "operationId": "APIOperantionId", "fields": ["field.refSchemaField"] } + ] +} +``` + ## Local development Prepare the build folder diff --git a/api-playground/api-playground-config.json b/api-playground/api-playground-config.json new file mode 100644 index 000000000..71827750c --- /dev/null +++ b/api-playground/api-playground-config.json @@ -0,0 +1,6 @@ +{ + "hideApiFields": [ + { "operationId": "getFullAccessToken", "fields": ["user_parameters"] }, + { "operationId": "getObjectAccessToken", "fields": ["user_parameters"] } + ] +} \ No newline at end of file diff --git a/api-playground/build.sh b/api-playground/build.sh index ac3d8d68c..eea8af757 100644 --- a/api-playground/build.sh +++ b/api-playground/build.sh @@ -7,6 +7,10 @@ mkdir $PWD/build $PWD/spec # prepare spec cp ../api-spec/* spec/ +if [ -f $PWD/processSpec.js ]; then + npx node processSpec.js +fi + # native zip and unzip unavailable npx bestzip $PWD/build/portal-input.zip . diff --git a/api-playground/processSpec.js b/api-playground/processSpec.js new file mode 100644 index 000000000..0b152c62c --- /dev/null +++ b/api-playground/processSpec.js @@ -0,0 +1,170 @@ +const fs = require('fs'); + +const SPEC_PATH = './spec/openapiSpecv3-2_0.json'; +const CONFIG_PATH = './api-playground-config.json'; + +function isObject(value) { + return value !== null && typeof value === 'object' && !Array.isArray(value); +} + +//Resolves a JSON reference pointer (e.g., "#/components/schemas/MySchema") to the actual object in the spec. +function resolveRef(root, ref) { + if (typeof ref !== 'string' || !ref.startsWith('#/')) return null; + const parts = ref.slice(2).split('/').map((p) => p.replace(/~1/g, '/').replace(/~0/g, '~')); + let node = root; + for (const part of parts) { + if (!isObject(node) || !(part in node)) return null; + node = node[part]; + } + return node; +} + +//Recursively traverses a schema and removes the specified field. +function hideFieldInSchema(root, schemaNode, fieldPathParts) { + if (!isObject(schemaNode)) return false; + + if (schemaNode.$ref && typeof schemaNode.$ref === 'string') { + const target = resolveRef(root, schemaNode.$ref); + if (isObject(target)) { + return hideFieldInSchema(root, target, fieldPathParts); + } + return false; + } + + if (isObject(schemaNode.items)) { + if (hideFieldInSchema(root, schemaNode.items, fieldPathParts)) return true; + } + + let modified = false; + for (const keyword of ['allOf', 'oneOf', 'anyOf']) { + const variants = schemaNode[keyword]; + if (Array.isArray(variants)) { + for (const variant of variants) { + if (hideFieldInSchema(root, variant, fieldPathParts)) modified = true; + } + } + } + + if (!isObject(schemaNode.properties)) return modified; + + const [current, ...rest] = fieldPathParts; + + if (rest.length === 0) { + if (schemaNode.properties[current]) { + delete schemaNode.properties[current]; + return true; + } + return modified; + } + + const child = schemaNode.properties[current]; + if (!child || typeof child !== 'object') return modified; + return hideFieldInSchema(root, child, rest) || modified; +} + +//Processes all operations in the spec and hides fields based on the configuration. +function hideApiFields(spec, config) { + const hideApiFieldsConfig = config.hideApiFields || []; + + if (hideApiFieldsConfig.length === 0) { + console.log('No API fields specified to hide'); + return; + } + + const fieldsMap = new Map(); + for (const { operationId, fields } of hideApiFieldsConfig) { + if (operationId && fields && fields.length > 0) { + fieldsMap.set(operationId, fields); + } + } + + for (const [pathKey, pathItem] of Object.entries(spec.paths)) { + for (const [method, operation] of Object.entries(pathItem)) { + if (!operation.operationId) continue; + + const fields = fieldsMap.get(operation.operationId); + if (!fields) continue; + + console.log(`\nProcessing operation: ${operation.operationId} (${method.toUpperCase()} ${pathKey})`); + + hideFieldsInOperation(spec, operation, fields); + + } + } +} + +//Hides specified fields from a single operation's parameters and request body. +function hideFieldsInOperation(spec, op, fields) { + const hidden = { parameters: [], requestBody: [] }; + + if (op.parameters) { + const simpleFields = new Set(fields.filter((f) => !f.includes('.'))); + op.parameters = op.parameters.filter((p) => { + if (p.name && simpleFields.has(p.name)) { + hidden.parameters.push(p.name); + return false; + } + return true; + }); + } + + const requestBody = op.requestBody; + + if (requestBody && requestBody.content) { + for (const media of Object.values(requestBody.content)) { + if (media && media.schema) { + for (const field of fields) { + const parts = field.split('.').filter(Boolean); + if (parts.length && hideFieldInSchema(spec, media.schema, parts)) { + hidden.requestBody.push(field); + } + } + } + } + } + + return hidden; +} + +async function processOpenApiSpec() { + try { + if (!fs.existsSync(CONFIG_PATH)) { + console.error(`Config file not found: ${CONFIG_PATH}`); + process.exit(1); + } + + const specContent = fs.readFileSync(SPEC_PATH, 'utf8'); + const spec = JSON.parse(specContent); + + const configContent = fs.readFileSync(CONFIG_PATH, 'utf8'); + const config = JSON.parse(configContent); + + if (config.hideApiFields && config.hideApiFields.length > 0) { + console.log('\n=== Hiding API Fields in Spec ==='); + hideApiFields(spec, config); + } + + let updatedSpecContent = JSON.stringify(spec, null, 2); + if (!updatedSpecContent.endsWith('\n')) { + updatedSpecContent += '\n'; + } + fs.writeFileSync(SPEC_PATH, updatedSpecContent, 'utf8'); + + console.log('\n=== Processing Complete ==='); + console.log('Successfully updated OpenAPI specification file'); + + } catch (error) { + console.error('Error processing files:', error.message); + process.exit(1); + } +} + +if (require.main === module) { + processOpenApiSpec(); +} + +module.exports = { + processOpenApiSpec, + hideApiFields +}; + From 56401882084b145366b220ecf12737bc6c3d3f21 Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Wed, 5 Nov 2025 21:21:47 +0530 Subject: [PATCH 356/410] Update embedded.js (#313) * Update embedded.js * Update embedded.js --- api-playground/static/js/embedded.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/api-playground/static/js/embedded.js b/api-playground/static/js/embedded.js index d3632fcbc..8c89bfa01 100644 --- a/api-playground/static/js/embedded.js +++ b/api-playground/static/js/embedded.js @@ -81,7 +81,7 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => { if(isApiMaticPortalReady) { _setConfig((defaultConfig) => { return { - ...defaultConfig, + // ...defaultConfig, showFullCode: false, auth: { bearerAuth: { @@ -89,9 +89,10 @@ const setPlaygroundConfig = ({ baseUrl, accessToken }) => { }, }, config: { - ...defaultConfig.config, + // ...defaultConfig.config, "base-url": baseUrl, }, + environment: "production", }; }); } From 4ace8d5d170b7af03afcfa481606f5424a41c5ca Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 17 Nov 2025 07:05:50 +0000 Subject: [PATCH 357/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c693c8503..7c3a13c23 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14434,7 +14434,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" @@ -14466,7 +14466,7 @@ "nullable": true }, "data_type": { - "description": "Variable Data Type", + "description": "Variable Data Type, only for formula_variable type, leave empty for others
Version: 10.15.0.cl or later", "type": "string", "enum": [ "VARCHAR", From a0efc072d0c7fe5c7a02e605496b3029c2e5e929 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 18 Nov 2025 05:12:16 +0000 Subject: [PATCH 358/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7c3a13c23..4115f1a29 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5255,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" @@ -5542,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" @@ -14434,7 +14434,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, 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", + "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", "tags": [ "Variable", "10.14.0.cl" @@ -14466,7 +14466,7 @@ "nullable": true }, "data_type": { - "description": "Variable Data Type, only for formula_variable type, leave empty for others
Version: 10.15.0.cl or later", + "description": "Variable Data Type", "type": "string", "enum": [ "VARCHAR", @@ -23776,6 +23776,16 @@ "type": "string", "description": "Company website URL (HTTP/HTTPS only)", "nullable": true + }, + "contact_support_url": { + "type": "string", + "description": "Contact support url (HTTP/HTTPS only).", + "nullable": true + }, + "hide_contact_support_url": { + "type": "boolean", + "description": "Whether to hide contact support url.", + "nullable": true } }, "description": "Email customization configuration properties" From 8f571f22bd8fd0012ae50379d84ec300fa704dc6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 20 Nov 2025 14:02:15 +0000 Subject: [PATCH 359/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4115f1a29..bb9ebe473 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14434,7 +14434,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" @@ -14466,7 +14466,7 @@ "nullable": true }, "data_type": { - "description": "Variable Data Type", + "description": "Variable Data Type, only for formula_variable type, leave empty for others
Version: 10.15.0.cl or later", "type": "string", "enum": [ "VARCHAR", From 24d6cef2729714119e6b74f883814c5507c2ad29 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 24 Nov 2025 06:54:55 +0000 Subject: [PATCH 360/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index bb9ebe473..8db594e61 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12202,7 +12202,9 @@ "examples": { "example_1": { "value": { - "onboarding_content_url": "" + "onboarding_content_url": "", + "saml_enabled": false, + "okta_enabled": false } } } @@ -17063,6 +17065,14 @@ "onboarding_content_url": { "type": "string", "nullable": true + }, + "saml_enabled": { + "type": "boolean", + "nullable": true + }, + "okta_enabled": { + "type": "boolean", + "nullable": true } } }, From a349acde003788125245a10ffdf3e1b8e0e02a84 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 27 Nov 2025 23:02:53 -0800 Subject: [PATCH 361/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 8db594e61..c99e57030 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8745,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, or CSV 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 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\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -8788,7 +8788,8 @@ "type": "string", "enum": [ "PDF", - "PNG" + "PNG", + "CSV" ] }, "runtime_filter": { From b7ca081eae26a2722ea07acab8ba67c85f556432 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 1 Dec 2025 15:05:50 +0000 Subject: [PATCH 362/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 58 +++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c99e57030..58fcb6766 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2055,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" @@ -2078,6 +2078,20 @@ "description": "Unique ID or name of the connection.", "type": "string" }, + "same_as_parent": { + "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", + "default": false, + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/PolicyProcessOptionsInput" + } + ] + }, "authentication_type": { "description": "Type of authentication used for the connection.", "default": "SERVICE_ACCOUNT", @@ -2271,7 +2285,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" @@ -2294,6 +2308,20 @@ "description": "Description of the configuration.", "type": "string" }, + "same_as_parent": { + "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", + "default": false, + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/PolicyProcessOptionsInput" + } + ] + }, "authentication_type": { "description": "Type of authentication.", "type": "string", @@ -20124,6 +20152,14 @@ "PROCESSES" ], "nullable": true + }, + "same_as_parent": { + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "$ref": "#/components/schemas/PolicyProcessOptions", + "nullable": true } } }, @@ -20144,6 +20180,15 @@ } } }, + "PolicyProcessOptions": { + "type": "object", + "properties": { + "impersonate_user": { + "type": "string", + "nullable": true + } + } + }, "WebhookSortOptionsInput": { "type": "object", "properties": { @@ -23830,6 +23875,15 @@ } } }, + "PolicyProcessOptionsInput": { + "type": "object", + "properties": { + "impersonate_user": { + "type": "string", + "nullable": true + } + } + }, "WebhookAuthenticationInput": { "type": "object", "properties": { From 14a63f179f3dfb92b821ee27c421f791265ab258 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 2 Dec 2025 09:31:07 +0000 Subject: [PATCH 363/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 63 +++------------------------------ 1 file changed, 5 insertions(+), 58 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 58fcb6766..c05e60383 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2055,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#### 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", + "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", "tags": [ "Connection Configurations", "10.12.0.cl" @@ -2078,20 +2078,6 @@ "description": "Unique ID or name of the connection.", "type": "string" }, - "same_as_parent": { - "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", - "default": false, - "type": "boolean", - "nullable": true - }, - "policy_process_options": { - "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyProcessOptionsInput" - } - ] - }, "authentication_type": { "description": "Type of authentication used for the connection.", "default": "SERVICE_ACCOUNT", @@ -2285,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#### 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", + "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", "tags": [ "Connection Configurations", "10.12.0.cl" @@ -2308,20 +2294,6 @@ "description": "Description of the configuration.", "type": "string" }, - "same_as_parent": { - "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", - "default": false, - "type": "boolean", - "nullable": true - }, - "policy_process_options": { - "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyProcessOptionsInput" - } - ] - }, "authentication_type": { "description": "Type of authentication.", "type": "string", @@ -8773,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, PNG, or CSV 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 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\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" @@ -8817,7 +8789,8 @@ "enum": [ "PDF", "PNG", - "CSV" + "CSV", + "XLSX" ] }, "runtime_filter": { @@ -20152,14 +20125,6 @@ "PROCESSES" ], "nullable": true - }, - "same_as_parent": { - "type": "boolean", - "nullable": true - }, - "policy_process_options": { - "$ref": "#/components/schemas/PolicyProcessOptions", - "nullable": true } } }, @@ -20180,15 +20145,6 @@ } } }, - "PolicyProcessOptions": { - "type": "object", - "properties": { - "impersonate_user": { - "type": "string", - "nullable": true - } - } - }, "WebhookSortOptionsInput": { "type": "object", "properties": { @@ -23875,15 +23831,6 @@ } } }, - "PolicyProcessOptionsInput": { - "type": "object", - "properties": { - "impersonate_user": { - "type": "string", - "nullable": true - } - } - }, "WebhookAuthenticationInput": { "type": "object", "properties": { From 423930105cb2182ff21a78ba15dab8c471707599 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 2 Dec 2025 18:51:53 +0000 Subject: [PATCH 364/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 58 +++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c05e60383..7e05359dd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2055,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" @@ -2078,6 +2078,20 @@ "description": "Unique ID or name of the connection.", "type": "string" }, + "same_as_parent": { + "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", + "default": false, + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/PolicyProcessOptionsInput" + } + ] + }, "authentication_type": { "description": "Type of authentication used for the connection.", "default": "SERVICE_ACCOUNT", @@ -2271,7 +2285,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" @@ -2294,6 +2308,20 @@ "description": "Description of the configuration.", "type": "string" }, + "same_as_parent": { + "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", + "default": false, + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/PolicyProcessOptionsInput" + } + ] + }, "authentication_type": { "description": "Type of authentication.", "type": "string", @@ -20125,6 +20153,14 @@ "PROCESSES" ], "nullable": true + }, + "same_as_parent": { + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "$ref": "#/components/schemas/PolicyProcessOptions", + "nullable": true } } }, @@ -20145,6 +20181,15 @@ } } }, + "PolicyProcessOptions": { + "type": "object", + "properties": { + "impersonate_user": { + "type": "string", + "nullable": true + } + } + }, "WebhookSortOptionsInput": { "type": "object", "properties": { @@ -23831,6 +23876,15 @@ } } }, + "PolicyProcessOptionsInput": { + "type": "object", + "properties": { + "impersonate_user": { + "type": "string", + "nullable": true + } + } + }, "WebhookAuthenticationInput": { "type": "object", "properties": { From f5f527eaad326c2bddd06d144a87ee7e6affbe00 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 3 Dec 2025 10:55:08 +0000 Subject: [PATCH 365/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 146 ++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7e05359dd..b9a6d85a7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -85,6 +85,14 @@ ], "description": "Roles for version 9.9.0.cl" }, + { + "name": "26.2.0.cl", + "id": "26.2.0.cl", + "tags": [ + "26.2.0.cl" + ], + "description": "Roles for version 26.2.0.cl" + }, { "name": "9.6.0.cl", "id": "9.6.0.cl", @@ -2862,6 +2870,132 @@ } } }, + "/api/rest/2.0/connections/{connection_identifier}/revoke-refresh-tokens": { + "post": { + "operationId": "revokeRefreshTokens", + "description": "\n Version: 26.2.0.cl or later\n\nRevokes OAuth refresh tokens for users who no longer require access to a data warehouse connection.\nWhen a token is revoked, the affected user's session for that connection is terminated, and they must re-authenticate to regain access.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on the ThoughtSpot instance, users with `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege can also make API requests to revoke tokens for connection users.\n\n#### Usage guidelines\n\nYou can specify different combinations of identifiers to control which refresh tokens are revoked.\n\n- **connection_identifier**: Revokes refresh tokens for all users of the connection, except the connection author.\n- **connection_identifier** and **user_identifiers**: Revokes refresh tokens only for the users specified in the request. If the name or ID of the connection author is included in the request, their token will also be revoked.\n- **connection_identifier** and **configuration_identifiers**: Revokes refresh tokens for all users on the specified configurations, except the configuration author.\n- **connection_identifier**, **configuration_identifiers**, and **user_identifiers**: Revokes refresh tokens for the specified users on the specified configurations.\n- **connection_identifier** and **org_identifiers**: Revokes refresh tokens for the specified Orgs. Applicable only for published connections.\n- **connection_identifier**, **org_identifiers**, and **user_identifiers**: Revokes refresh tokens for the specified users in the specified Orgs. Applicable only for published connections.\n\n**NOTE**: The `org_identifiers` parameter is only applicable for published connections. Using this parameter for unpublished connections will result in an error. Ensure that the connections are published before making the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration_identifiers": { + "description": "Unique ID or name of the configuration. When provided, the refresh tokens of the users associated with the connection configuration will be revoked.", + "type": "array", + "items": { + "type": "string" + } + }, + "user_identifiers": { + "description": "Unique ID or name of the users. When provided, the refresh tokens of the specified users will be revoked. If the request includes the user ID or name of the connection author, their token will also be revoked.", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique ID or name of the Org. When provided, the refresh tokens of all users associated with the published connection in the Org will be revoked. This parameter is valid only for published connections. Using it with unpublished connections will result in an error.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection whose refresh tokens need to be revoked. All the users associated with the connection will have their refresh tokens revoked except the author." + } + ], + "responses": { + "200": { + "description": "Token(s) successfully revoked.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevokeRefreshTokensResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Object not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", @@ -22326,6 +22460,18 @@ } } }, + "RevokeRefreshTokensResponse": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "string", + "description": "Result message describing the outcome of the refresh token revocation operation." + } + } + }, "RoleResponse": { "type": "object", "required": [ From 7c1a723fab1d3e617825f25df94ab5816d90933a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 4 Dec 2025 14:51:22 +0000 Subject: [PATCH 366/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 146 -------------------------------- 1 file changed, 146 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b9a6d85a7..7e05359dd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -85,14 +85,6 @@ ], "description": "Roles for version 9.9.0.cl" }, - { - "name": "26.2.0.cl", - "id": "26.2.0.cl", - "tags": [ - "26.2.0.cl" - ], - "description": "Roles for version 26.2.0.cl" - }, { "name": "9.6.0.cl", "id": "9.6.0.cl", @@ -2870,132 +2862,6 @@ } } }, - "/api/rest/2.0/connections/{connection_identifier}/revoke-refresh-tokens": { - "post": { - "operationId": "revokeRefreshTokens", - "description": "\n Version: 26.2.0.cl or later\n\nRevokes OAuth refresh tokens for users who no longer require access to a data warehouse connection.\nWhen a token is revoked, the affected user's session for that connection is terminated, and they must re-authenticate to regain access.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on the ThoughtSpot instance, users with `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege can also make API requests to revoke tokens for connection users.\n\n#### Usage guidelines\n\nYou can specify different combinations of identifiers to control which refresh tokens are revoked.\n\n- **connection_identifier**: Revokes refresh tokens for all users of the connection, except the connection author.\n- **connection_identifier** and **user_identifiers**: Revokes refresh tokens only for the users specified in the request. If the name or ID of the connection author is included in the request, their token will also be revoked.\n- **connection_identifier** and **configuration_identifiers**: Revokes refresh tokens for all users on the specified configurations, except the configuration author.\n- **connection_identifier**, **configuration_identifiers**, and **user_identifiers**: Revokes refresh tokens for the specified users on the specified configurations.\n- **connection_identifier** and **org_identifiers**: Revokes refresh tokens for the specified Orgs. Applicable only for published connections.\n- **connection_identifier**, **org_identifiers**, and **user_identifiers**: Revokes refresh tokens for the specified users in the specified Orgs. Applicable only for published connections.\n\n**NOTE**: The `org_identifiers` parameter is only applicable for published connections. Using this parameter for unpublished connections will result in an error. Ensure that the connections are published before making the API request.\n\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Connections", - "26.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "configuration_identifiers": { - "description": "Unique ID or name of the configuration. When provided, the refresh tokens of the users associated with the connection configuration will be revoked.", - "type": "array", - "items": { - "type": "string" - } - }, - "user_identifiers": { - "description": "Unique ID or name of the users. When provided, the refresh tokens of the specified users will be revoked. If the request includes the user ID or name of the connection author, their token will also be revoked.", - "type": "array", - "items": { - "type": "string" - } - }, - "org_identifiers": { - "description": "Unique ID or name of the Org. When provided, the refresh tokens of all users associated with the published connection in the Org will be revoked. This parameter is valid only for published connections. Using it with unpublished connections will result in an error.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "in": "path", - "name": "connection_identifier", - "required": true, - "schema": { - "type": "string" - }, - "description": "Unique ID or name of the connection whose refresh tokens need to be revoked. All the users associated with the connection will have their refresh tokens revoked except the author." - } - ], - "responses": { - "200": { - "description": "Token(s) successfully revoked.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevokeRefreshTokensResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "404": { - "description": "Object not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", @@ -22460,18 +22326,6 @@ } } }, - "RevokeRefreshTokensResponse": { - "type": "object", - "required": [ - "data" - ], - "properties": { - "data": { - "type": "string", - "description": "Result message describing the outcome of the refresh token revocation operation." - } - } - }, "RoleResponse": { "type": "object", "required": [ From ad101f7f727e18f65e3a1a89e0b6272b9670f018 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 5 Dec 2025 17:07:39 +0000 Subject: [PATCH 367/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 78 ++++++--------------------------- 1 file changed, 14 insertions(+), 64 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7e05359dd..db02c258d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -2055,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#### 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", + "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", "tags": [ "Connection Configurations", "10.12.0.cl" @@ -2078,20 +2078,6 @@ "description": "Unique ID or name of the connection.", "type": "string" }, - "same_as_parent": { - "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", - "default": false, - "type": "boolean", - "nullable": true - }, - "policy_process_options": { - "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyProcessOptionsInput" - } - ] - }, "authentication_type": { "description": "Type of authentication used for the connection.", "default": "SERVICE_ACCOUNT", @@ -2285,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#### 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", + "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", "tags": [ "Connection Configurations", "10.12.0.cl" @@ -2308,20 +2294,6 @@ "description": "Description of the configuration.", "type": "string" }, - "same_as_parent": { - "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", - "default": false, - "type": "boolean", - "nullable": true - }, - "policy_process_options": { - "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyProcessOptionsInput" - } - ] - }, "authentication_type": { "description": "Type of authentication.", "type": "string", @@ -8773,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, 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", + "description": "\n Version: 9.0.0.cl or later\n\nExports a Liveboard and its visualizations in PDF, PNG, or CSV 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 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\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -8817,8 +8789,7 @@ "enum": [ "PDF", "PNG", - "CSV", - "XLSX" + "CSV" ] }, "runtime_filter": { @@ -13506,7 +13477,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -14388,7 +14360,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -18309,7 +18282,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "number_format_locale": { @@ -18343,7 +18317,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "date_format_locale": { @@ -18377,7 +18352,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] } } @@ -20153,14 +20129,6 @@ "PROCESSES" ], "nullable": true - }, - "same_as_parent": { - "type": "boolean", - "nullable": true - }, - "policy_process_options": { - "$ref": "#/components/schemas/PolicyProcessOptions", - "nullable": true } } }, @@ -20181,15 +20149,6 @@ } } }, - "PolicyProcessOptions": { - "type": "object", - "properties": { - "impersonate_user": { - "type": "string", - "nullable": true - } - } - }, "WebhookSortOptionsInput": { "type": "object", "properties": { @@ -23876,15 +23835,6 @@ } } }, - "PolicyProcessOptionsInput": { - "type": "object", - "properties": { - "impersonate_user": { - "type": "string", - "nullable": true - } - } - }, "WebhookAuthenticationInput": { "type": "object", "properties": { From 4aac202cfcdf476ef05f05558f516c4210c6e012 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sun, 7 Dec 2025 20:49:42 -0800 Subject: [PATCH 368/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 224 ++++++++++++++++++++++++++++++-- 1 file changed, 210 insertions(+), 14 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index db02c258d..b9a6d85a7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -85,6 +85,14 @@ ], "description": "Roles for version 9.9.0.cl" }, + { + "name": "26.2.0.cl", + "id": "26.2.0.cl", + "tags": [ + "26.2.0.cl" + ], + "description": "Roles for version 26.2.0.cl" + }, { "name": "9.6.0.cl", "id": "9.6.0.cl", @@ -2055,7 +2063,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" @@ -2078,6 +2086,20 @@ "description": "Unique ID or name of the connection.", "type": "string" }, + "same_as_parent": { + "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", + "default": false, + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/PolicyProcessOptionsInput" + } + ] + }, "authentication_type": { "description": "Type of authentication used for the connection.", "default": "SERVICE_ACCOUNT", @@ -2271,7 +2293,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" @@ -2294,6 +2316,20 @@ "description": "Description of the configuration.", "type": "string" }, + "same_as_parent": { + "description": "Specifies whether the connection configuration should inherit all properties and authentication\ntype from its parent connection. This attribute is only applicable to parameterized connections.\nWhen set to true, the configuration uses only the connection properties and authentication type\ninherited from the parent.
Version: 26.2.0.cl or later", + "default": false, + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "description": "This attribute is only applicable to parameterized connections. Ensure that the policy is\nset to Processes to allow the configuration to be used exclusively for system processes.
Version: 26.2.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/PolicyProcessOptionsInput" + } + ] + }, "authentication_type": { "description": "Type of authentication.", "type": "string", @@ -2834,6 +2870,132 @@ } } }, + "/api/rest/2.0/connections/{connection_identifier}/revoke-refresh-tokens": { + "post": { + "operationId": "revokeRefreshTokens", + "description": "\n Version: 26.2.0.cl or later\n\nRevokes OAuth refresh tokens for users who no longer require access to a data warehouse connection.\nWhen a token is revoked, the affected user's session for that connection is terminated, and they must re-authenticate to regain access.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data**) privileges.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on the ThoughtSpot instance, users with `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege can also make API requests to revoke tokens for connection users.\n\n#### Usage guidelines\n\nYou can specify different combinations of identifiers to control which refresh tokens are revoked.\n\n- **connection_identifier**: Revokes refresh tokens for all users of the connection, except the connection author.\n- **connection_identifier** and **user_identifiers**: Revokes refresh tokens only for the users specified in the request. If the name or ID of the connection author is included in the request, their token will also be revoked.\n- **connection_identifier** and **configuration_identifiers**: Revokes refresh tokens for all users on the specified configurations, except the configuration author.\n- **connection_identifier**, **configuration_identifiers**, and **user_identifiers**: Revokes refresh tokens for the specified users on the specified configurations.\n- **connection_identifier** and **org_identifiers**: Revokes refresh tokens for the specified Orgs. Applicable only for published connections.\n- **connection_identifier**, **org_identifiers**, and **user_identifiers**: Revokes refresh tokens for the specified users in the specified Orgs. Applicable only for published connections.\n\n**NOTE**: The `org_identifiers` parameter is only applicable for published connections. Using this parameter for unpublished connections will result in an error. Ensure that the connections are published before making the API request.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Connections", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "configuration_identifiers": { + "description": "Unique ID or name of the configuration. When provided, the refresh tokens of the users associated with the connection configuration will be revoked.", + "type": "array", + "items": { + "type": "string" + } + }, + "user_identifiers": { + "description": "Unique ID or name of the users. When provided, the refresh tokens of the specified users will be revoked. If the request includes the user ID or name of the connection author, their token will also be revoked.", + "type": "array", + "items": { + "type": "string" + } + }, + "org_identifiers": { + "description": "Unique ID or name of the Org. When provided, the refresh tokens of all users associated with the published connection in the Org will be revoked. This parameter is valid only for published connections. Using it with unpublished connections will result in an error.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "parameters": [ + { + "in": "path", + "name": "connection_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the connection whose refresh tokens need to be revoked. All the users associated with the connection will have their refresh tokens revoked except the author." + } + ], + "responses": { + "200": { + "description": "Token(s) successfully revoked.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevokeRefreshTokensResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "404": { + "description": "Object not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/connection/search": { "post": { "operationId": "searchConnection", @@ -8745,7 +8907,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, PNG, or CSV 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 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\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" @@ -8789,7 +8951,8 @@ "enum": [ "PDF", "PNG", - "CSV" + "CSV", + "XLSX" ] }, "runtime_filter": { @@ -13477,8 +13640,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -14360,8 +14522,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -18282,8 +18443,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "number_format_locale": { @@ -18317,8 +18477,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "date_format_locale": { @@ -18352,8 +18511,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] } } @@ -20129,6 +20287,14 @@ "PROCESSES" ], "nullable": true + }, + "same_as_parent": { + "type": "boolean", + "nullable": true + }, + "policy_process_options": { + "$ref": "#/components/schemas/PolicyProcessOptions", + "nullable": true } } }, @@ -20149,6 +20315,15 @@ } } }, + "PolicyProcessOptions": { + "type": "object", + "properties": { + "impersonate_user": { + "type": "string", + "nullable": true + } + } + }, "WebhookSortOptionsInput": { "type": "object", "properties": { @@ -22285,6 +22460,18 @@ } } }, + "RevokeRefreshTokensResponse": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "string", + "description": "Result message describing the outcome of the refresh token revocation operation." + } + } + }, "RoleResponse": { "type": "object", "required": [ @@ -23835,6 +24022,15 @@ } } }, + "PolicyProcessOptionsInput": { + "type": "object", + "properties": { + "impersonate_user": { + "type": "string", + "nullable": true + } + } + }, "WebhookAuthenticationInput": { "type": "object", "properties": { From 904ca1e2fd6b8d7531ee7a96ff500bbba2b8d443 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 8 Dec 2025 07:07:14 +0000 Subject: [PATCH 369/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b9a6d85a7..69c423b49 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13640,7 +13640,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -14522,7 +14523,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -18443,7 +18445,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "number_format_locale": { @@ -18477,7 +18480,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "date_format_locale": { @@ -18511,7 +18515,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] } } From 924c43ad3a3a24ae8e4a37b46da4ef443d54c2ce Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 8 Dec 2025 13:45:27 +0000 Subject: [PATCH 370/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 622 ++++++++++++++++++++++++++++++++ 1 file changed, 622 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 69c423b49..9151394dc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12346,6 +12346,89 @@ } } }, + "/api/rest/2.0/system/security-settings/configure": { + "post": { + "operationId": "configureSecuritySettings", + "description": "\nBeta Version: 26.2.0.cl or later\n\nConfigure security settings for your ThoughtSpot application instance.\n- Use `cluster_preferences` to update cluster-level security settings including CORS whitelisted URLs, CSP settings, SAML redirect URLs, partitioned cookies, and non-embed access configuration.\n- Use `org_preferences` to configure Org-specific security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this allows configuring CORS and non-embed access settings specific to the Org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. Cluster-level SAML and script-src settings require `ADMINISTRATION` privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_preferences": { + "description": "Cluster-level security preferences.", + "allOf": [ + { + "$ref": "#/components/schemas/SecuritySettingsClusterPreferencesInput" + } + ] + }, + "org_preferences": { + "description": "Org-level security preferences for the current org.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SecuritySettingsOrgPreferencesInput" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully configured the security settings." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", @@ -12695,6 +12778,153 @@ } } }, + "/api/rest/2.0/system/security-settings/search": { + "post": { + "operationId": "searchSecuritySettings", + "description": "\nBeta Version: 26.2.0.cl or later\n\nFetch security settings for your ThoughtSpot application instance.\n- Use `scope: CLUSTER` to retrieve cluster-level security settings, including CORS and CSP allowlists, SAML redirect URLs, and settings that control access to non-embedded pages.\n- Use `scope: ORG` to retrieve Org-level security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this returns CORS and non-embed access settings specific to the Org.\n- If `scope` is not specified, returns both cluster and Org-specific settings based on user privileges.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "scope": { + "description": "Scope of security settings to retrieve. CLUSTER returns cluster-level settings,\nORG returns org-level settings for the current org.\nIf not specified, returns both cluster and org settings based on user privileges.", + "type": "string", + "enum": [ + "CLUSTER", + "ORG" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully retrieved the list of security settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecuritySettingsResponse" + }, + "examples": { + "example_1": { + "value": { + "cluster_preferences": { + "enable_partitioned_cookies": false, + "cors_whitelisted_urls": [ + "example.com" + ], + "csp_settings": { + "connect_src_urls": [ + "https://connect.example.com" + ], + "font_src_urls": [ + "https://font.example.com" + ], + "visual_embed_hosts": [ + "https://embed.example.com" + ], + "iframe_src_urls": [ + "https://embed.example.com" + ], + "img_src_urls": [ + "https://img.example.com" + ], + "script_src_urls": { + "enabled": true, + "urls": [ + "https://script.example.com" + ] + }, + "style_src_urls": [ + "https://style.example.com" + ] + }, + "saml_redirect_urls": [ + "https://saml.example.com" + ], + "non_embed_access": { + "block_full_app_access": true + } + }, + "org_preferences": [ + { + "org": { + "id": 0, + "name": "Primary" + }, + "cors_whitelisted_urls": [ + "https://cors.example.com" + ], + "non_embed_access": { + "block_full_app_access": true, + "groups_with_access": [ + { + "id": "1234567890", + "name": "Group Name" + } + ] + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -17359,6 +17589,227 @@ } } }, + "SecuritySettingsResponse": { + "type": "object", + "properties": { + "cluster_preferences": { + "$ref": "#/components/schemas/SecuritySettingsClusterPreferences", + "description": "Cluster-level security preferences.", + "nullable": true + }, + "org_preferences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SecuritySettingsOrgPreferences" + }, + "description": "Org-level security preferences.", + "nullable": true + } + }, + "description": "Response type for security settings search." + }, + "SecuritySettingsClusterPreferences": { + "type": "object", + "properties": { + "enable_partitioned_cookies": { + "type": "boolean", + "description": "Support embedded access when third-party cookies are blocked.", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS.", + "nullable": true + }, + "csp_settings": { + "$ref": "#/components/schemas/CspSettings", + "description": "CSP (Content Security Policy) settings.", + "nullable": true + }, + "saml_redirect_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed redirect hosts for SAML login.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/ClusterNonEmbedAccess", + "description": "Non-embed access configuration at cluster level.", + "nullable": true + } + }, + "description": "Cluster-level security preferences." + }, + "CspSettings": { + "type": "object", + "properties": { + "connect_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for connect-src directive.", + "nullable": true + }, + "font_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for font-src directive.", + "nullable": true + }, + "visual_embed_hosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed hosts for visual embed (frame-ancestors directive).", + "nullable": true + }, + "iframe_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for frame-src directive.", + "nullable": true + }, + "img_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for img-src directive.", + "nullable": true + }, + "script_src_urls": { + "$ref": "#/components/schemas/ScriptSrcUrls", + "description": "Script-src settings including URLs and enabled flag.", + "nullable": true + }, + "style_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for style-src directive.", + "nullable": true + } + }, + "description": "CSP (Content Security Policy) settings." + }, + "ScriptSrcUrls": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether script-src customization is enabled.", + "nullable": true + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", + "nullable": true + } + }, + "description": "Script-src CSP settings." + }, + "ClusterNonEmbedAccess": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + } + }, + "description": "Cluster-level non-embed access configuration." + }, + "SecuritySettingsOrgPreferences": { + "type": "object", + "properties": { + "org": { + "$ref": "#/components/schemas/SecuritySettingsOrgDetails", + "description": "Org details (id and name).", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS for this org.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/OrgNonEmbedAccess", + "description": "Non-embed access configuration for this org.", + "nullable": true + } + }, + "description": "Org-level security preferences." + }, + "SecuritySettingsOrgDetails": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the org.", + "nullable": true + } + }, + "description": "Org details for security settings." + }, + "OrgNonEmbedAccess": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + }, + "groups_with_access": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfo" + }, + "description": "Groups that have non-embed full app access.", + "nullable": true + } + }, + "description": "Org-level non-embed access configuration." + }, + "GroupInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the group.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group.", + "nullable": true + } + }, + "description": "Group information for non-embed access." + }, "OrgResponse": { "type": "object", "properties": { @@ -21470,6 +21921,177 @@ } } }, + "SecuritySettingsClusterPreferencesInput": { + "type": "object", + "properties": { + "enable_partitioned_cookies": { + "type": "boolean", + "description": "Support embedded access when third-party cookies are blocked.", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS.", + "nullable": true + }, + "csp_settings": { + "$ref": "#/components/schemas/CspSettingsInput", + "description": "CSP (Content Security Policy) settings.", + "nullable": true + }, + "saml_redirect_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed redirect hosts for SAML login.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/ClusterNonEmbedAccessInput", + "description": "Non-embed access configuration at cluster level.", + "nullable": true + } + }, + "description": "Input for cluster-level security preferences configuration." + }, + "CspSettingsInput": { + "type": "object", + "properties": { + "connect_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for connect-src directive.", + "nullable": true + }, + "font_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for font-src directive.", + "nullable": true + }, + "visual_embed_hosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed hosts for visual embed (frame-ancestors directive).", + "nullable": true + }, + "iframe_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for frame-src directive.", + "nullable": true + }, + "img_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for img-src directive.", + "nullable": true + }, + "script_src_urls": { + "$ref": "#/components/schemas/ScriptSrcUrlsInput", + "description": "Script-src settings including URLs and enabled flag.", + "nullable": true + }, + "style_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for style-src directive.", + "nullable": true + } + }, + "description": "Input for CSP (Content Security Policy) settings." + }, + "ScriptSrcUrlsInput": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether script-src customization is enabled.", + "nullable": true + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", + "nullable": true + } + }, + "description": "Input for script-src CSP settings." + }, + "ClusterNonEmbedAccessInput": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + } + }, + "description": "Input for cluster-level non-embed access configuration." + }, + "SecuritySettingsOrgPreferencesInput": { + "type": "object", + "required": [ + "org_identifier" + ], + "properties": { + "org_identifier": { + "type": "string", + "description": "Unique identifier or name of the org" + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS for this org.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/OrgNonEmbedAccessInput", + "description": "Non-embed access configuration for this org.", + "nullable": true + } + }, + "description": "Input for org-level security preferences configuration.\nNote: cross-org operations are not supported currently." + }, + "OrgNonEmbedAccessInput": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + }, + "groups_identifiers_with_access": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Group identifiers that are allowed non-embed full app access. Can only be set if block_full_app_access is true.", + "nullable": true + } + }, + "description": "Input for org-level non-embed access configuration." + }, "TagMetadataTypeInput": { "type": "object", "required": [ From 96700fc900c31dacd1a8836e43fcdb115e85d0fb Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 8 Dec 2025 22:27:25 -0800 Subject: [PATCH 371/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 622 -------------------------------- 1 file changed, 622 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9151394dc..69c423b49 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12346,89 +12346,6 @@ } } }, - "/api/rest/2.0/system/security-settings/configure": { - "post": { - "operationId": "configureSecuritySettings", - "description": "\nBeta Version: 26.2.0.cl or later\n\nConfigure security settings for your ThoughtSpot application instance.\n- Use `cluster_preferences` to update cluster-level security settings including CORS whitelisted URLs, CSP settings, SAML redirect URLs, partitioned cookies, and non-embed access configuration.\n- Use `org_preferences` to configure Org-specific security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this allows configuring CORS and non-embed access settings specific to the Org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. Cluster-level SAML and script-src settings require `ADMINISTRATION` privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "26.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_preferences": { - "description": "Cluster-level security preferences.", - "allOf": [ - { - "$ref": "#/components/schemas/SecuritySettingsClusterPreferencesInput" - } - ] - }, - "org_preferences": { - "description": "Org-level security preferences for the current org.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SecuritySettingsOrgPreferencesInput" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully configured the security settings." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", @@ -12778,153 +12695,6 @@ } } }, - "/api/rest/2.0/system/security-settings/search": { - "post": { - "operationId": "searchSecuritySettings", - "description": "\nBeta Version: 26.2.0.cl or later\n\nFetch security settings for your ThoughtSpot application instance.\n- Use `scope: CLUSTER` to retrieve cluster-level security settings, including CORS and CSP allowlists, SAML redirect URLs, and settings that control access to non-embedded pages.\n- Use `scope: ORG` to retrieve Org-level security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this returns CORS and non-embed access settings specific to the Org.\n- If `scope` is not specified, returns both cluster and Org-specific settings based on user privileges.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "26.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "scope": { - "description": "Scope of security settings to retrieve. CLUSTER returns cluster-level settings,\nORG returns org-level settings for the current org.\nIf not specified, returns both cluster and org settings based on user privileges.", - "type": "string", - "enum": [ - "CLUSTER", - "ORG" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully retrieved the list of security settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecuritySettingsResponse" - }, - "examples": { - "example_1": { - "value": { - "cluster_preferences": { - "enable_partitioned_cookies": false, - "cors_whitelisted_urls": [ - "example.com" - ], - "csp_settings": { - "connect_src_urls": [ - "https://connect.example.com" - ], - "font_src_urls": [ - "https://font.example.com" - ], - "visual_embed_hosts": [ - "https://embed.example.com" - ], - "iframe_src_urls": [ - "https://embed.example.com" - ], - "img_src_urls": [ - "https://img.example.com" - ], - "script_src_urls": { - "enabled": true, - "urls": [ - "https://script.example.com" - ] - }, - "style_src_urls": [ - "https://style.example.com" - ] - }, - "saml_redirect_urls": [ - "https://saml.example.com" - ], - "non_embed_access": { - "block_full_app_access": true - } - }, - "org_preferences": [ - { - "org": { - "id": 0, - "name": "Primary" - }, - "cors_whitelisted_urls": [ - "https://cors.example.com" - ], - "non_embed_access": { - "block_full_app_access": true, - "groups_with_access": [ - { - "id": "1234567890", - "name": "Group Name" - } - ] - } - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -17589,227 +17359,6 @@ } } }, - "SecuritySettingsResponse": { - "type": "object", - "properties": { - "cluster_preferences": { - "$ref": "#/components/schemas/SecuritySettingsClusterPreferences", - "description": "Cluster-level security preferences.", - "nullable": true - }, - "org_preferences": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SecuritySettingsOrgPreferences" - }, - "description": "Org-level security preferences.", - "nullable": true - } - }, - "description": "Response type for security settings search." - }, - "SecuritySettingsClusterPreferences": { - "type": "object", - "properties": { - "enable_partitioned_cookies": { - "type": "boolean", - "description": "Support embedded access when third-party cookies are blocked.", - "nullable": true - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS.", - "nullable": true - }, - "csp_settings": { - "$ref": "#/components/schemas/CspSettings", - "description": "CSP (Content Security Policy) settings.", - "nullable": true - }, - "saml_redirect_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed redirect hosts for SAML login.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/ClusterNonEmbedAccess", - "description": "Non-embed access configuration at cluster level.", - "nullable": true - } - }, - "description": "Cluster-level security preferences." - }, - "CspSettings": { - "type": "object", - "properties": { - "connect_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for connect-src directive.", - "nullable": true - }, - "font_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for font-src directive.", - "nullable": true - }, - "visual_embed_hosts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed hosts for visual embed (frame-ancestors directive).", - "nullable": true - }, - "iframe_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for frame-src directive.", - "nullable": true - }, - "img_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for img-src directive.", - "nullable": true - }, - "script_src_urls": { - "$ref": "#/components/schemas/ScriptSrcUrls", - "description": "Script-src settings including URLs and enabled flag.", - "nullable": true - }, - "style_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for style-src directive.", - "nullable": true - } - }, - "description": "CSP (Content Security Policy) settings." - }, - "ScriptSrcUrls": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether script-src customization is enabled.", - "nullable": true - }, - "urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", - "nullable": true - } - }, - "description": "Script-src CSP settings." - }, - "ClusterNonEmbedAccess": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - } - }, - "description": "Cluster-level non-embed access configuration." - }, - "SecuritySettingsOrgPreferences": { - "type": "object", - "properties": { - "org": { - "$ref": "#/components/schemas/SecuritySettingsOrgDetails", - "description": "Org details (id and name).", - "nullable": true - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS for this org.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/OrgNonEmbedAccess", - "description": "Non-embed access configuration for this org.", - "nullable": true - } - }, - "description": "Org-level security preferences." - }, - "SecuritySettingsOrgDetails": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the org.", - "nullable": true - } - }, - "description": "Org details for security settings." - }, - "OrgNonEmbedAccess": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - }, - "groups_with_access": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupInfo" - }, - "description": "Groups that have non-embed full app access.", - "nullable": true - } - }, - "description": "Org-level non-embed access configuration." - }, - "GroupInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the group.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group.", - "nullable": true - } - }, - "description": "Group information for non-embed access." - }, "OrgResponse": { "type": "object", "properties": { @@ -21921,177 +21470,6 @@ } } }, - "SecuritySettingsClusterPreferencesInput": { - "type": "object", - "properties": { - "enable_partitioned_cookies": { - "type": "boolean", - "description": "Support embedded access when third-party cookies are blocked.", - "nullable": true - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS.", - "nullable": true - }, - "csp_settings": { - "$ref": "#/components/schemas/CspSettingsInput", - "description": "CSP (Content Security Policy) settings.", - "nullable": true - }, - "saml_redirect_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed redirect hosts for SAML login.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/ClusterNonEmbedAccessInput", - "description": "Non-embed access configuration at cluster level.", - "nullable": true - } - }, - "description": "Input for cluster-level security preferences configuration." - }, - "CspSettingsInput": { - "type": "object", - "properties": { - "connect_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for connect-src directive.", - "nullable": true - }, - "font_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for font-src directive.", - "nullable": true - }, - "visual_embed_hosts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed hosts for visual embed (frame-ancestors directive).", - "nullable": true - }, - "iframe_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for frame-src directive.", - "nullable": true - }, - "img_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for img-src directive.", - "nullable": true - }, - "script_src_urls": { - "$ref": "#/components/schemas/ScriptSrcUrlsInput", - "description": "Script-src settings including URLs and enabled flag.", - "nullable": true - }, - "style_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for style-src directive.", - "nullable": true - } - }, - "description": "Input for CSP (Content Security Policy) settings." - }, - "ScriptSrcUrlsInput": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether script-src customization is enabled.", - "nullable": true - }, - "urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", - "nullable": true - } - }, - "description": "Input for script-src CSP settings." - }, - "ClusterNonEmbedAccessInput": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - } - }, - "description": "Input for cluster-level non-embed access configuration." - }, - "SecuritySettingsOrgPreferencesInput": { - "type": "object", - "required": [ - "org_identifier" - ], - "properties": { - "org_identifier": { - "type": "string", - "description": "Unique identifier or name of the org" - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS for this org.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/OrgNonEmbedAccessInput", - "description": "Non-embed access configuration for this org.", - "nullable": true - } - }, - "description": "Input for org-level security preferences configuration.\nNote: cross-org operations are not supported currently." - }, - "OrgNonEmbedAccessInput": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - }, - "groups_identifiers_with_access": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Group identifiers that are allowed non-embed full app access. Can only be set if block_full_app_access is true.", - "nullable": true - } - }, - "description": "Input for org-level non-embed access configuration." - }, "TagMetadataTypeInput": { "type": "object", "required": [ From bf66d671e562cd9bdfbeaea71bb6ef395298dae9 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Dec 2025 08:21:36 +0000 Subject: [PATCH 372/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 69c423b49..a1adeaee0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13640,8 +13640,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -14321,6 +14320,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "include_variable_values": { + "description": "Indicates if the user's formula variable values should be included in the response.", + "default": false, + "type": "boolean", + "nullable": true } } } @@ -14523,8 +14528,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -18445,8 +18449,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "number_format_locale": { @@ -18480,8 +18483,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "date_format_locale": { @@ -18515,8 +18517,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] } } From 5da75fc715fc7d93ed075bd30aaa958470281ede Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Dec 2025 08:25:20 +0000 Subject: [PATCH 373/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 643 +++++++++++++++++++++++++++++++- 1 file changed, 632 insertions(+), 11 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a1adeaee0..9151394dc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12346,6 +12346,89 @@ } } }, + "/api/rest/2.0/system/security-settings/configure": { + "post": { + "operationId": "configureSecuritySettings", + "description": "\nBeta Version: 26.2.0.cl or later\n\nConfigure security settings for your ThoughtSpot application instance.\n- Use `cluster_preferences` to update cluster-level security settings including CORS whitelisted URLs, CSP settings, SAML redirect URLs, partitioned cookies, and non-embed access configuration.\n- Use `org_preferences` to configure Org-specific security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this allows configuring CORS and non-embed access settings specific to the Org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. Cluster-level SAML and script-src settings require `ADMINISTRATION` privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_preferences": { + "description": "Cluster-level security preferences.", + "allOf": [ + { + "$ref": "#/components/schemas/SecuritySettingsClusterPreferencesInput" + } + ] + }, + "org_preferences": { + "description": "Org-level security preferences for the current org.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SecuritySettingsOrgPreferencesInput" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully configured the security settings." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", @@ -12695,6 +12778,153 @@ } } }, + "/api/rest/2.0/system/security-settings/search": { + "post": { + "operationId": "searchSecuritySettings", + "description": "\nBeta Version: 26.2.0.cl or later\n\nFetch security settings for your ThoughtSpot application instance.\n- Use `scope: CLUSTER` to retrieve cluster-level security settings, including CORS and CSP allowlists, SAML redirect URLs, and settings that control access to non-embedded pages.\n- Use `scope: ORG` to retrieve Org-level security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this returns CORS and non-embed access settings specific to the Org.\n- If `scope` is not specified, returns both cluster and Org-specific settings based on user privileges.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "scope": { + "description": "Scope of security settings to retrieve. CLUSTER returns cluster-level settings,\nORG returns org-level settings for the current org.\nIf not specified, returns both cluster and org settings based on user privileges.", + "type": "string", + "enum": [ + "CLUSTER", + "ORG" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully retrieved the list of security settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecuritySettingsResponse" + }, + "examples": { + "example_1": { + "value": { + "cluster_preferences": { + "enable_partitioned_cookies": false, + "cors_whitelisted_urls": [ + "example.com" + ], + "csp_settings": { + "connect_src_urls": [ + "https://connect.example.com" + ], + "font_src_urls": [ + "https://font.example.com" + ], + "visual_embed_hosts": [ + "https://embed.example.com" + ], + "iframe_src_urls": [ + "https://embed.example.com" + ], + "img_src_urls": [ + "https://img.example.com" + ], + "script_src_urls": { + "enabled": true, + "urls": [ + "https://script.example.com" + ] + }, + "style_src_urls": [ + "https://style.example.com" + ] + }, + "saml_redirect_urls": [ + "https://saml.example.com" + ], + "non_embed_access": { + "block_full_app_access": true + } + }, + "org_preferences": [ + { + "org": { + "id": 0, + "name": "Primary" + }, + "cors_whitelisted_urls": [ + "https://cors.example.com" + ], + "non_embed_access": { + "block_full_app_access": true, + "groups_with_access": [ + { + "id": "1234567890", + "name": "Group Name" + } + ] + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -13640,7 +13870,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -14320,12 +14551,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "include_variable_values": { - "description": "Indicates if the user's formula variable values should be included in the response.", - "default": false, - "type": "boolean", - "nullable": true } } } @@ -14528,7 +14753,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -17363,6 +17589,227 @@ } } }, + "SecuritySettingsResponse": { + "type": "object", + "properties": { + "cluster_preferences": { + "$ref": "#/components/schemas/SecuritySettingsClusterPreferences", + "description": "Cluster-level security preferences.", + "nullable": true + }, + "org_preferences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SecuritySettingsOrgPreferences" + }, + "description": "Org-level security preferences.", + "nullable": true + } + }, + "description": "Response type for security settings search." + }, + "SecuritySettingsClusterPreferences": { + "type": "object", + "properties": { + "enable_partitioned_cookies": { + "type": "boolean", + "description": "Support embedded access when third-party cookies are blocked.", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS.", + "nullable": true + }, + "csp_settings": { + "$ref": "#/components/schemas/CspSettings", + "description": "CSP (Content Security Policy) settings.", + "nullable": true + }, + "saml_redirect_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed redirect hosts for SAML login.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/ClusterNonEmbedAccess", + "description": "Non-embed access configuration at cluster level.", + "nullable": true + } + }, + "description": "Cluster-level security preferences." + }, + "CspSettings": { + "type": "object", + "properties": { + "connect_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for connect-src directive.", + "nullable": true + }, + "font_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for font-src directive.", + "nullable": true + }, + "visual_embed_hosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed hosts for visual embed (frame-ancestors directive).", + "nullable": true + }, + "iframe_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for frame-src directive.", + "nullable": true + }, + "img_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for img-src directive.", + "nullable": true + }, + "script_src_urls": { + "$ref": "#/components/schemas/ScriptSrcUrls", + "description": "Script-src settings including URLs and enabled flag.", + "nullable": true + }, + "style_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for style-src directive.", + "nullable": true + } + }, + "description": "CSP (Content Security Policy) settings." + }, + "ScriptSrcUrls": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether script-src customization is enabled.", + "nullable": true + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", + "nullable": true + } + }, + "description": "Script-src CSP settings." + }, + "ClusterNonEmbedAccess": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + } + }, + "description": "Cluster-level non-embed access configuration." + }, + "SecuritySettingsOrgPreferences": { + "type": "object", + "properties": { + "org": { + "$ref": "#/components/schemas/SecuritySettingsOrgDetails", + "description": "Org details (id and name).", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS for this org.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/OrgNonEmbedAccess", + "description": "Non-embed access configuration for this org.", + "nullable": true + } + }, + "description": "Org-level security preferences." + }, + "SecuritySettingsOrgDetails": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the org.", + "nullable": true + } + }, + "description": "Org details for security settings." + }, + "OrgNonEmbedAccess": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + }, + "groups_with_access": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfo" + }, + "description": "Groups that have non-embed full app access.", + "nullable": true + } + }, + "description": "Org-level non-embed access configuration." + }, + "GroupInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the group.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group.", + "nullable": true + } + }, + "description": "Group information for non-embed access." + }, "OrgResponse": { "type": "object", "properties": { @@ -18449,7 +18896,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "number_format_locale": { @@ -18483,7 +18931,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "date_format_locale": { @@ -18517,7 +18966,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] } } @@ -21471,6 +21921,177 @@ } } }, + "SecuritySettingsClusterPreferencesInput": { + "type": "object", + "properties": { + "enable_partitioned_cookies": { + "type": "boolean", + "description": "Support embedded access when third-party cookies are blocked.", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS.", + "nullable": true + }, + "csp_settings": { + "$ref": "#/components/schemas/CspSettingsInput", + "description": "CSP (Content Security Policy) settings.", + "nullable": true + }, + "saml_redirect_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed redirect hosts for SAML login.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/ClusterNonEmbedAccessInput", + "description": "Non-embed access configuration at cluster level.", + "nullable": true + } + }, + "description": "Input for cluster-level security preferences configuration." + }, + "CspSettingsInput": { + "type": "object", + "properties": { + "connect_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for connect-src directive.", + "nullable": true + }, + "font_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for font-src directive.", + "nullable": true + }, + "visual_embed_hosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed hosts for visual embed (frame-ancestors directive).", + "nullable": true + }, + "iframe_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for frame-src directive.", + "nullable": true + }, + "img_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for img-src directive.", + "nullable": true + }, + "script_src_urls": { + "$ref": "#/components/schemas/ScriptSrcUrlsInput", + "description": "Script-src settings including URLs and enabled flag.", + "nullable": true + }, + "style_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for style-src directive.", + "nullable": true + } + }, + "description": "Input for CSP (Content Security Policy) settings." + }, + "ScriptSrcUrlsInput": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether script-src customization is enabled.", + "nullable": true + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", + "nullable": true + } + }, + "description": "Input for script-src CSP settings." + }, + "ClusterNonEmbedAccessInput": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + } + }, + "description": "Input for cluster-level non-embed access configuration." + }, + "SecuritySettingsOrgPreferencesInput": { + "type": "object", + "required": [ + "org_identifier" + ], + "properties": { + "org_identifier": { + "type": "string", + "description": "Unique identifier or name of the org" + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS for this org.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/OrgNonEmbedAccessInput", + "description": "Non-embed access configuration for this org.", + "nullable": true + } + }, + "description": "Input for org-level security preferences configuration.\nNote: cross-org operations are not supported currently." + }, + "OrgNonEmbedAccessInput": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + }, + "groups_identifiers_with_access": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Group identifiers that are allowed non-embed full app access. Can only be set if block_full_app_access is true.", + "nullable": true + } + }, + "description": "Input for org-level non-embed access configuration." + }, "TagMetadataTypeInput": { "type": "object", "required": [ From db577d542e6dc7c844a8f4a2e4e6006fc94bb8b5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Dec 2025 00:35:31 -0800 Subject: [PATCH 374/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 643 +------------------------------- 1 file changed, 11 insertions(+), 632 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9151394dc..a1adeaee0 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12346,89 +12346,6 @@ } } }, - "/api/rest/2.0/system/security-settings/configure": { - "post": { - "operationId": "configureSecuritySettings", - "description": "\nBeta Version: 26.2.0.cl or later\n\nConfigure security settings for your ThoughtSpot application instance.\n- Use `cluster_preferences` to update cluster-level security settings including CORS whitelisted URLs, CSP settings, SAML redirect URLs, partitioned cookies, and non-embed access configuration.\n- Use `org_preferences` to configure Org-specific security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this allows configuring CORS and non-embed access settings specific to the Org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. Cluster-level SAML and script-src settings require `ADMINISTRATION` privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "26.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cluster_preferences": { - "description": "Cluster-level security preferences.", - "allOf": [ - { - "$ref": "#/components/schemas/SecuritySettingsClusterPreferencesInput" - } - ] - }, - "org_preferences": { - "description": "Org-level security preferences for the current org.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SecuritySettingsOrgPreferencesInput" - } - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Successfully configured the security settings." - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", @@ -12778,153 +12695,6 @@ } } }, - "/api/rest/2.0/system/security-settings/search": { - "post": { - "operationId": "searchSecuritySettings", - "description": "\nBeta Version: 26.2.0.cl or later\n\nFetch security settings for your ThoughtSpot application instance.\n- Use `scope: CLUSTER` to retrieve cluster-level security settings, including CORS and CSP allowlists, SAML redirect URLs, and settings that control access to non-embedded pages.\n- Use `scope: ORG` to retrieve Org-level security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this returns CORS and non-embed access settings specific to the Org.\n- If `scope` is not specified, returns both cluster and Org-specific settings based on user privileges.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", - "tags": [ - "System", - "26.2.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "scope": { - "description": "Scope of security settings to retrieve. CLUSTER returns cluster-level settings,\nORG returns org-level settings for the current org.\nIf not specified, returns both cluster and org settings based on user privileges.", - "type": "string", - "enum": [ - "CLUSTER", - "ORG" - ] - } - } - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Successfully retrieved the list of security settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecuritySettingsResponse" - }, - "examples": { - "example_1": { - "value": { - "cluster_preferences": { - "enable_partitioned_cookies": false, - "cors_whitelisted_urls": [ - "example.com" - ], - "csp_settings": { - "connect_src_urls": [ - "https://connect.example.com" - ], - "font_src_urls": [ - "https://font.example.com" - ], - "visual_embed_hosts": [ - "https://embed.example.com" - ], - "iframe_src_urls": [ - "https://embed.example.com" - ], - "img_src_urls": [ - "https://img.example.com" - ], - "script_src_urls": { - "enabled": true, - "urls": [ - "https://script.example.com" - ] - }, - "style_src_urls": [ - "https://style.example.com" - ] - }, - "saml_redirect_urls": [ - "https://saml.example.com" - ], - "non_embed_access": { - "block_full_app_access": true - } - }, - "org_preferences": [ - { - "org": { - "id": 0, - "name": "Primary" - }, - "cors_whitelisted_urls": [ - "https://cors.example.com" - ], - "non_embed_access": { - "block_full_app_access": true, - "groups_with_access": [ - { - "id": "1234567890", - "name": "Group Name" - } - ] - } - } - ] - } - } - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -13870,8 +13640,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -14551,6 +14320,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "include_variable_values": { + "description": "Indicates if the user's formula variable values should be included in the response.", + "default": false, + "type": "boolean", + "nullable": true } } } @@ -14753,8 +14528,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -17589,227 +17363,6 @@ } } }, - "SecuritySettingsResponse": { - "type": "object", - "properties": { - "cluster_preferences": { - "$ref": "#/components/schemas/SecuritySettingsClusterPreferences", - "description": "Cluster-level security preferences.", - "nullable": true - }, - "org_preferences": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SecuritySettingsOrgPreferences" - }, - "description": "Org-level security preferences.", - "nullable": true - } - }, - "description": "Response type for security settings search." - }, - "SecuritySettingsClusterPreferences": { - "type": "object", - "properties": { - "enable_partitioned_cookies": { - "type": "boolean", - "description": "Support embedded access when third-party cookies are blocked.", - "nullable": true - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS.", - "nullable": true - }, - "csp_settings": { - "$ref": "#/components/schemas/CspSettings", - "description": "CSP (Content Security Policy) settings.", - "nullable": true - }, - "saml_redirect_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed redirect hosts for SAML login.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/ClusterNonEmbedAccess", - "description": "Non-embed access configuration at cluster level.", - "nullable": true - } - }, - "description": "Cluster-level security preferences." - }, - "CspSettings": { - "type": "object", - "properties": { - "connect_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for connect-src directive.", - "nullable": true - }, - "font_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for font-src directive.", - "nullable": true - }, - "visual_embed_hosts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed hosts for visual embed (frame-ancestors directive).", - "nullable": true - }, - "iframe_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for frame-src directive.", - "nullable": true - }, - "img_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for img-src directive.", - "nullable": true - }, - "script_src_urls": { - "$ref": "#/components/schemas/ScriptSrcUrls", - "description": "Script-src settings including URLs and enabled flag.", - "nullable": true - }, - "style_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for style-src directive.", - "nullable": true - } - }, - "description": "CSP (Content Security Policy) settings." - }, - "ScriptSrcUrls": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether script-src customization is enabled.", - "nullable": true - }, - "urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", - "nullable": true - } - }, - "description": "Script-src CSP settings." - }, - "ClusterNonEmbedAccess": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - } - }, - "description": "Cluster-level non-embed access configuration." - }, - "SecuritySettingsOrgPreferences": { - "type": "object", - "properties": { - "org": { - "$ref": "#/components/schemas/SecuritySettingsOrgDetails", - "description": "Org details (id and name).", - "nullable": true - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS for this org.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/OrgNonEmbedAccess", - "description": "Non-embed access configuration for this org.", - "nullable": true - } - }, - "description": "Org-level security preferences." - }, - "SecuritySettingsOrgDetails": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier of the org.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the org.", - "nullable": true - } - }, - "description": "Org details for security settings." - }, - "OrgNonEmbedAccess": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - }, - "groups_with_access": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupInfo" - }, - "description": "Groups that have non-embed full app access.", - "nullable": true - } - }, - "description": "Org-level non-embed access configuration." - }, - "GroupInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the group.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group.", - "nullable": true - } - }, - "description": "Group information for non-embed access." - }, "OrgResponse": { "type": "object", "properties": { @@ -18896,8 +18449,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "number_format_locale": { @@ -18931,8 +18483,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "date_format_locale": { @@ -18966,8 +18517,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] } } @@ -21921,177 +21471,6 @@ } } }, - "SecuritySettingsClusterPreferencesInput": { - "type": "object", - "properties": { - "enable_partitioned_cookies": { - "type": "boolean", - "description": "Support embedded access when third-party cookies are blocked.", - "nullable": true - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS.", - "nullable": true - }, - "csp_settings": { - "$ref": "#/components/schemas/CspSettingsInput", - "description": "CSP (Content Security Policy) settings.", - "nullable": true - }, - "saml_redirect_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed redirect hosts for SAML login.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/ClusterNonEmbedAccessInput", - "description": "Non-embed access configuration at cluster level.", - "nullable": true - } - }, - "description": "Input for cluster-level security preferences configuration." - }, - "CspSettingsInput": { - "type": "object", - "properties": { - "connect_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for connect-src directive.", - "nullable": true - }, - "font_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for font-src directive.", - "nullable": true - }, - "visual_embed_hosts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed hosts for visual embed (frame-ancestors directive).", - "nullable": true - }, - "iframe_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for frame-src directive.", - "nullable": true - }, - "img_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for img-src directive.", - "nullable": true - }, - "script_src_urls": { - "$ref": "#/components/schemas/ScriptSrcUrlsInput", - "description": "Script-src settings including URLs and enabled flag.", - "nullable": true - }, - "style_src_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for style-src directive.", - "nullable": true - } - }, - "description": "Input for CSP (Content Security Policy) settings." - }, - "ScriptSrcUrlsInput": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether script-src customization is enabled.", - "nullable": true - }, - "urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", - "nullable": true - } - }, - "description": "Input for script-src CSP settings." - }, - "ClusterNonEmbedAccessInput": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - } - }, - "description": "Input for cluster-level non-embed access configuration." - }, - "SecuritySettingsOrgPreferencesInput": { - "type": "object", - "required": [ - "org_identifier" - ], - "properties": { - "org_identifier": { - "type": "string", - "description": "Unique identifier or name of the org" - }, - "cors_whitelisted_urls": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed origins for CORS for this org.", - "nullable": true - }, - "non_embed_access": { - "$ref": "#/components/schemas/OrgNonEmbedAccessInput", - "description": "Non-embed access configuration for this org.", - "nullable": true - } - }, - "description": "Input for org-level security preferences configuration.\nNote: cross-org operations are not supported currently." - }, - "OrgNonEmbedAccessInput": { - "type": "object", - "properties": { - "block_full_app_access": { - "type": "boolean", - "description": "Block full application access for non-embedded usage.", - "nullable": true - }, - "groups_identifiers_with_access": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Group identifiers that are allowed non-embed full app access. Can only be set if block_full_app_access is true.", - "nullable": true - } - }, - "description": "Input for org-level non-embed access configuration." - }, "TagMetadataTypeInput": { "type": "object", "required": [ From f02ea1290b2fad639598437042bcec8f7836e745 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Dec 2025 02:05:29 -0800 Subject: [PATCH 375/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 637 +++++++++++++++++++++++++++++++- 1 file changed, 632 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index a1adeaee0..78f7dd3cd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12346,6 +12346,89 @@ } } }, + "/api/rest/2.0/system/security-settings/configure": { + "post": { + "operationId": "configureSecuritySettings", + "description": "\nBeta Version: 26.2.0.cl or later\n\nConfigure security settings for your ThoughtSpot application instance.\n- Use `cluster_preferences` to update cluster-level security settings including CORS whitelisted URLs, CSP settings, SAML redirect URLs, partitioned cookies, and non-embed access configuration.\n- Use `org_preferences` to configure Org-specific security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this allows configuring CORS and non-embed access settings specific to the Org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. Cluster-level SAML and script-src settings require `ADMINISTRATION` privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_preferences": { + "description": "Cluster-level security preferences.", + "allOf": [ + { + "$ref": "#/components/schemas/SecuritySettingsClusterPreferencesInput" + } + ] + }, + "org_preferences": { + "description": "Org-level security preferences for the current org.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SecuritySettingsOrgPreferencesInput" + } + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Successfully configured the security settings." + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config": { "get": { "operationId": "getSystemConfig", @@ -12695,6 +12778,153 @@ } } }, + "/api/rest/2.0/system/security-settings/search": { + "post": { + "operationId": "searchSecuritySettings", + "description": "\nBeta Version: 26.2.0.cl or later\n\nFetch security settings for your ThoughtSpot application instance.\n- Use `scope: CLUSTER` to retrieve cluster-level security settings, including CORS and CSP allowlists, SAML redirect URLs, and settings that control access to non-embedded pages.\n- Use `scope: ORG` to retrieve Org-level security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this returns CORS and non-embed access settings specific to the Org.\n- If `scope` is not specified, returns both cluster and Org-specific settings based on user privileges.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "26.2.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "scope": { + "description": "Scope of security settings to retrieve. CLUSTER returns cluster-level settings,\nORG returns org-level settings for the current org.\nIf not specified, returns both cluster and org settings based on user privileges.", + "type": "string", + "enum": [ + "CLUSTER", + "ORG" + ] + } + } + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Successfully retrieved the list of security settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecuritySettingsResponse" + }, + "examples": { + "example_1": { + "value": { + "cluster_preferences": { + "enable_partitioned_cookies": false, + "cors_whitelisted_urls": [ + "example.com" + ], + "csp_settings": { + "connect_src_urls": [ + "https://connect.example.com" + ], + "font_src_urls": [ + "https://font.example.com" + ], + "visual_embed_hosts": [ + "https://embed.example.com" + ], + "iframe_src_urls": [ + "https://embed.example.com" + ], + "img_src_urls": [ + "https://img.example.com" + ], + "script_src_urls": { + "enabled": true, + "urls": [ + "https://script.example.com" + ] + }, + "style_src_urls": [ + "https://style.example.com" + ] + }, + "saml_redirect_urls": [ + "https://saml.example.com" + ], + "non_embed_access": { + "block_full_app_access": true + } + }, + "org_preferences": [ + { + "org": { + "id": 0, + "name": "Primary" + }, + "cors_whitelisted_urls": [ + "https://cors.example.com" + ], + "non_embed_access": { + "block_full_app_access": true, + "groups_with_access": [ + { + "id": "1234567890", + "name": "Group Name" + } + ] + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/system/config-update": { "post": { "operationId": "updateSystemConfig", @@ -13640,7 +13870,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -14528,7 +14759,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -17363,6 +17595,227 @@ } } }, + "SecuritySettingsResponse": { + "type": "object", + "properties": { + "cluster_preferences": { + "$ref": "#/components/schemas/SecuritySettingsClusterPreferences", + "description": "Cluster-level security preferences.", + "nullable": true + }, + "org_preferences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SecuritySettingsOrgPreferences" + }, + "description": "Org-level security preferences.", + "nullable": true + } + }, + "description": "Response type for security settings search." + }, + "SecuritySettingsClusterPreferences": { + "type": "object", + "properties": { + "enable_partitioned_cookies": { + "type": "boolean", + "description": "Support embedded access when third-party cookies are blocked.", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS.", + "nullable": true + }, + "csp_settings": { + "$ref": "#/components/schemas/CspSettings", + "description": "CSP (Content Security Policy) settings.", + "nullable": true + }, + "saml_redirect_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed redirect hosts for SAML login.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/ClusterNonEmbedAccess", + "description": "Non-embed access configuration at cluster level.", + "nullable": true + } + }, + "description": "Cluster-level security preferences." + }, + "CspSettings": { + "type": "object", + "properties": { + "connect_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for connect-src directive.", + "nullable": true + }, + "font_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for font-src directive.", + "nullable": true + }, + "visual_embed_hosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed hosts for visual embed (frame-ancestors directive).", + "nullable": true + }, + "iframe_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for frame-src directive.", + "nullable": true + }, + "img_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for img-src directive.", + "nullable": true + }, + "script_src_urls": { + "$ref": "#/components/schemas/ScriptSrcUrls", + "description": "Script-src settings including URLs and enabled flag.", + "nullable": true + }, + "style_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for style-src directive.", + "nullable": true + } + }, + "description": "CSP (Content Security Policy) settings." + }, + "ScriptSrcUrls": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether script-src customization is enabled.", + "nullable": true + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", + "nullable": true + } + }, + "description": "Script-src CSP settings." + }, + "ClusterNonEmbedAccess": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + } + }, + "description": "Cluster-level non-embed access configuration." + }, + "SecuritySettingsOrgPreferences": { + "type": "object", + "properties": { + "org": { + "$ref": "#/components/schemas/SecuritySettingsOrgDetails", + "description": "Org details (id and name).", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS for this org.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/OrgNonEmbedAccess", + "description": "Non-embed access configuration for this org.", + "nullable": true + } + }, + "description": "Org-level security preferences." + }, + "SecuritySettingsOrgDetails": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier of the org.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the org.", + "nullable": true + } + }, + "description": "Org details for security settings." + }, + "OrgNonEmbedAccess": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + }, + "groups_with_access": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfo" + }, + "description": "Groups that have non-embed full app access.", + "nullable": true + } + }, + "description": "Org-level non-embed access configuration." + }, + "GroupInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the group.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group.", + "nullable": true + } + }, + "description": "Group information for non-embed access." + }, "OrgResponse": { "type": "object", "properties": { @@ -18449,7 +18902,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "number_format_locale": { @@ -18483,7 +18937,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "date_format_locale": { @@ -18517,7 +18972,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] } } @@ -21471,6 +21927,177 @@ } } }, + "SecuritySettingsClusterPreferencesInput": { + "type": "object", + "properties": { + "enable_partitioned_cookies": { + "type": "boolean", + "description": "Support embedded access when third-party cookies are blocked.", + "nullable": true + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS.", + "nullable": true + }, + "csp_settings": { + "$ref": "#/components/schemas/CspSettingsInput", + "description": "CSP (Content Security Policy) settings.", + "nullable": true + }, + "saml_redirect_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed redirect hosts for SAML login.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/ClusterNonEmbedAccessInput", + "description": "Non-embed access configuration at cluster level.", + "nullable": true + } + }, + "description": "Input for cluster-level security preferences configuration." + }, + "CspSettingsInput": { + "type": "object", + "properties": { + "connect_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for connect-src directive.", + "nullable": true + }, + "font_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for font-src directive.", + "nullable": true + }, + "visual_embed_hosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed hosts for visual embed (frame-ancestors directive).", + "nullable": true + }, + "iframe_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for frame-src directive.", + "nullable": true + }, + "img_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for img-src directive.", + "nullable": true + }, + "script_src_urls": { + "$ref": "#/components/schemas/ScriptSrcUrlsInput", + "description": "Script-src settings including URLs and enabled flag.", + "nullable": true + }, + "style_src_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for style-src directive.", + "nullable": true + } + }, + "description": "Input for CSP (Content Security Policy) settings." + }, + "ScriptSrcUrlsInput": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether script-src customization is enabled.", + "nullable": true + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed URLs for script-src directive. Can only be set if enabled is true.", + "nullable": true + } + }, + "description": "Input for script-src CSP settings." + }, + "ClusterNonEmbedAccessInput": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + } + }, + "description": "Input for cluster-level non-embed access configuration." + }, + "SecuritySettingsOrgPreferencesInput": { + "type": "object", + "required": [ + "org_identifier" + ], + "properties": { + "org_identifier": { + "type": "string", + "description": "Unique identifier or name of the org" + }, + "cors_whitelisted_urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Allowed origins for CORS for this org.", + "nullable": true + }, + "non_embed_access": { + "$ref": "#/components/schemas/OrgNonEmbedAccessInput", + "description": "Non-embed access configuration for this org.", + "nullable": true + } + }, + "description": "Input for org-level security preferences configuration.\nNote: cross-org operations are not supported currently." + }, + "OrgNonEmbedAccessInput": { + "type": "object", + "properties": { + "block_full_app_access": { + "type": "boolean", + "description": "Block full application access for non-embedded usage.", + "nullable": true + }, + "groups_identifiers_with_access": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Group identifiers that are allowed non-embed full app access. Can only be set if block_full_app_access is true.", + "nullable": true + } + }, + "description": "Input for org-level non-embed access configuration." + }, "TagMetadataTypeInput": { "type": "object", "required": [ From 3a065b773761bf5e57cc24fac4d788c71b84afc3 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Dec 2025 11:02:03 +0000 Subject: [PATCH 376/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 78f7dd3cd..31c69ee09 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -7783,7 +7783,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" @@ -7799,7 +7799,8 @@ "type": "string", "enum": [ "LOGICAL_TABLE", - "CONNECTION" + "CONNECTION", + "CONNECTION_CONFIG" ] }, "metadata_identifier": { @@ -8128,7 +8129,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" @@ -8144,7 +8145,8 @@ "type": "string", "enum": [ "LOGICAL_TABLE", - "CONNECTION" + "CONNECTION", + "CONNECTION_CONFIG" ] }, "metadata_identifier": { @@ -14551,12 +14553,6 @@ "default": false, "type": "boolean", "nullable": true - }, - "include_variable_values": { - "description": "Indicates if the user's formula variable values should be included in the response.", - "default": false, - "type": "boolean", - "nullable": true } } } From f3886251cc2489846b0f3a4825eac03ddda1a7d2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 9 Dec 2025 13:00:29 -0800 Subject: [PATCH 377/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 31c69ee09..004b20c8d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14553,6 +14553,12 @@ "default": false, "type": "boolean", "nullable": true + }, + "include_variable_values": { + "description": "Indicates if the user's formula variable values should be included in the response.", + "default": false, + "type": "boolean", + "nullable": true } } } From b47bc8d9e2689e1a10795d327f5d09271f6b9ea8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 12 Dec 2025 13:13:59 +0000 Subject: [PATCH 378/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 004b20c8d..4770c97c7 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13872,8 +13872,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -14761,8 +14760,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -18904,8 +18902,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "number_format_locale": { @@ -18939,8 +18936,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "date_format_locale": { @@ -18974,8 +18970,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] } } From df3e2b4a33f9f3d54d8dcd16ff375d337cd90edc Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 19 Dec 2025 16:08:59 +0000 Subject: [PATCH 379/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 4770c97c7..dddaf5c49 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -15128,7 +15128,7 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's name in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -15213,7 +15213,7 @@ "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" From b69a38b0fa529e4f39bc8a446250eba4ba7b0c8e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Jan 2026 06:54:16 +0000 Subject: [PATCH 380/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index dddaf5c49..004b20c8d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13872,7 +13872,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -14760,7 +14761,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "extended_properties": { @@ -15128,7 +15130,7 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's name in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -15213,7 +15215,7 @@ "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -18902,7 +18904,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "number_format_locale": { @@ -18936,7 +18939,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] }, "date_format_locale": { @@ -18970,7 +18974,8 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE" + "en-DE", + "USE_BROWSER_LANGUAGE" ] } } From b0778df42e747fafdfcb8d4baf1d4fa946c45268 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 5 Jan 2026 10:17:11 +0000 Subject: [PATCH 381/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 004b20c8d..dddaf5c49 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13872,8 +13872,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -14761,8 +14760,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "extended_properties": { @@ -15130,7 +15128,7 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's name in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -15215,7 +15213,7 @@ "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -18904,8 +18902,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "number_format_locale": { @@ -18939,8 +18936,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] }, "date_format_locale": { @@ -18974,8 +18970,7 @@ "en-AU", "zh-Hant", "ko-KR", - "en-DE", - "USE_BROWSER_LANGUAGE" + "en-DE" ] } } From 92f2614b2e966692c7ebebdaad22ca4fd0baccf4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 7 Jan 2026 05:37:40 +0000 Subject: [PATCH 382/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index dddaf5c49..3ea36d6bc 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13875,6 +13875,11 @@ "en-DE" ] }, + "use_browser_language": { + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "type": "boolean", + "nullable": true + }, "extended_properties": { "description": "Properties for the user", "type": "object" @@ -14763,6 +14768,11 @@ "en-DE" ] }, + "use_browser_language": { + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "type": "boolean", + "nullable": true + }, "extended_properties": { "description": "Properties for the user", "type": "object" @@ -15128,7 +15138,7 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's name in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -15213,7 +15223,7 @@ "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -17198,6 +17208,11 @@ "description": "Locale for the user.", "nullable": true }, + "use_browser_language": { + "type": "boolean", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "nullable": true + }, "extended_properties": { "type": "object", "description": "Properties for the user", @@ -21810,6 +21825,16 @@ }, "description": "Metadata objects to add to the user's favorites list.", "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true + }, + "use_browser_language": { + "type": "boolean", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "nullable": true } } }, From c2a0f73a7c2ad006df4c1cca3ebc97f583c137e2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 6 Jan 2026 21:53:23 -0800 Subject: [PATCH 383/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3ea36d6bc..28e5c98d6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -15138,7 +15138,7 @@ "/api/rest/2.0/template/variables/{identifier}/update": { "post": { "operationId": "updateVariable", - "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's properties in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate a variable's name
Beta Version: 10.14.0.cl or later\n\nAllows updating a variable's name in ThoughtSpot.\n\nRequires ADMINISTRATION role and TENANT scope.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows updating:\n* The variable name\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" @@ -15223,7 +15223,7 @@ "/api/rest/2.0/template/variables/update-values": { "post": { "operationId": "updateVariableValues", - "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, CLEAR)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* CLEAR - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", + "description": "\nUpdate values for multiple variables
Beta Version: 10.14.0.cl or later\n\nAllows updating values for multiple variables in ThoughtSpot.\n\nRequires ADMINISTRATION role.\nThe CAN_MANAGE_VARIABLES permission allows you to manage Formula Variables in the current organization scope.\n\nThe API endpoint allows:\n* Adding new values to variables\n* Replacing existing values\n* Deleting values from variables\n\nWhen updating variable values, you need to specify:\n* The variable identifiers\n* The values to add/replace/remove for each variable\n* The operation to perform (ADD, REPLACE, REMOVE, RESET)\n\nBehaviour based on operation type:\n* ADD - Adds values to the variable if this is a list type variable, else same as replace.\n* REPLACE - Replaces all values of a given set of constraints with the current set of values.\n* REMOVE - Removes any values which match the set of conditions of the variables if this is a list type variable, else clears value.\n* RESET - Removes all constrains for a given variable, scope is ignored\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Variable", "10.14.0.cl" From 228a8ecba7282f0951b68289ef4f274ce7cbadb8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Jan 2026 09:12:54 +0000 Subject: [PATCH 384/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 151 ++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 28e5c98d6..e58ed4dc6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16255,6 +16255,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } }, "required": [ @@ -16826,6 +16834,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } } } @@ -20921,6 +20937,11 @@ "$ref": "#/components/schemas/WebhookUser", "description": "User who last modified the webhook.", "nullable": true + }, + "storage_destination": { + "$ref": "#/components/schemas/StorageDestination", + "description": "Storage destination configuration for webhook payload delivery.", + "nullable": true } } }, @@ -21072,6 +21093,71 @@ } } }, + "StorageDestination": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfig", + "description": "Storage-specific configuration settings." + } + }, + "description": "Storage destination configuration for webhook payload delivery." + }, + "StorageConfig": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3Config", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Storage configuration containing provider-specific settings." + }, + "AwsS3Config": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads are stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role used for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "AWS S3 storage configuration details." + }, "WebhookPagination": { "type": "object", "required": [ @@ -24800,6 +24886,71 @@ } } }, + "StorageDestinationInput": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfigInput", + "description": "Storage-specific configuration settings." + } + }, + "description": "Input type for storage destination configuration." + }, + "StorageConfigInput": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3ConfigInput", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Input type for storage configuration." + }, + "AwsS3ConfigInput": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads will be stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role to assume for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Optional path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "Input type for AWS S3 storage configuration." + }, "WebhookDeleteResponse": { "type": "object", "required": [ From 6b5d391e62d83881f7937101fff5a02848e555b6 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 9 Jan 2026 05:06:25 +0000 Subject: [PATCH 385/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 182 ++++++-------------------------- 1 file changed, 30 insertions(+), 152 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index e58ed4dc6..3ba51be4b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16255,14 +16255,6 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] - }, - "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/StorageDestinationInput" - } - ] } }, "required": [ @@ -16834,14 +16826,6 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] - }, - "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/StorageDestinationInput" - } - ] } } } @@ -20937,11 +20921,6 @@ "$ref": "#/components/schemas/WebhookUser", "description": "User who last modified the webhook.", "nullable": true - }, - "storage_destination": { - "$ref": "#/components/schemas/StorageDestination", - "description": "Storage destination configuration for webhook payload delivery.", - "nullable": true } } }, @@ -21093,71 +21072,6 @@ } } }, - "StorageDestination": { - "type": "object", - "required": [ - "storage_type", - "storage_config" - ], - "properties": { - "storage_type": { - "type": "string", - "enum": [ - "AWS_S3" - ], - "description": "Type of storage destination (e.g., AWS_S3)." - }, - "storage_config": { - "$ref": "#/components/schemas/StorageConfig", - "description": "Storage-specific configuration settings." - } - }, - "description": "Storage destination configuration for webhook payload delivery." - }, - "StorageConfig": { - "type": "object", - "properties": { - "aws_s3_config": { - "$ref": "#/components/schemas/AwsS3Config", - "description": "AWS S3 storage configuration.", - "nullable": true - } - }, - "description": "Storage configuration containing provider-specific settings." - }, - "AwsS3Config": { - "type": "object", - "required": [ - "bucket_name", - "region", - "role_arn", - "external_id" - ], - "properties": { - "bucket_name": { - "type": "string", - "description": "Name of the S3 bucket where webhook payloads are stored." - }, - "region": { - "type": "string", - "description": "AWS region where the S3 bucket is located." - }, - "role_arn": { - "type": "string", - "description": "ARN of the IAM role used for S3 access." - }, - "external_id": { - "type": "string", - "description": "External ID for secure cross-account role assumption." - }, - "path_prefix": { - "type": "string", - "description": "Path prefix for organizing objects within the bucket.", - "nullable": true - } - }, - "description": "AWS S3 storage configuration details." - }, "WebhookPagination": { "type": "object", "required": [ @@ -21915,7 +21829,36 @@ "preferred_locale": { "type": "string", "description": "Locale for the user.", - "nullable": true + "nullable": true, + "enum": [ + "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" + ] }, "use_browser_language": { "type": "boolean", @@ -24886,71 +24829,6 @@ } } }, - "StorageDestinationInput": { - "type": "object", - "required": [ - "storage_type", - "storage_config" - ], - "properties": { - "storage_type": { - "type": "string", - "enum": [ - "AWS_S3" - ], - "description": "Type of storage destination (e.g., AWS_S3)." - }, - "storage_config": { - "$ref": "#/components/schemas/StorageConfigInput", - "description": "Storage-specific configuration settings." - } - }, - "description": "Input type for storage destination configuration." - }, - "StorageConfigInput": { - "type": "object", - "properties": { - "aws_s3_config": { - "$ref": "#/components/schemas/AwsS3ConfigInput", - "description": "AWS S3 storage configuration.", - "nullable": true - } - }, - "description": "Input type for storage configuration." - }, - "AwsS3ConfigInput": { - "type": "object", - "required": [ - "bucket_name", - "region", - "role_arn", - "external_id" - ], - "properties": { - "bucket_name": { - "type": "string", - "description": "Name of the S3 bucket where webhook payloads will be stored." - }, - "region": { - "type": "string", - "description": "AWS region where the S3 bucket is located." - }, - "role_arn": { - "type": "string", - "description": "ARN of the IAM role to assume for S3 access." - }, - "external_id": { - "type": "string", - "description": "External ID for secure cross-account role assumption." - }, - "path_prefix": { - "type": "string", - "description": "Optional path prefix for organizing objects within the bucket.", - "nullable": true - } - }, - "description": "Input type for AWS S3 storage configuration." - }, "WebhookDeleteResponse": { "type": "object", "required": [ From c7fa4da43cc78d2e1ae3aeae8269ad2a3af99c5c Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 8 Jan 2026 21:18:58 -0800 Subject: [PATCH 386/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 151 ++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3ba51be4b..f17260443 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16255,6 +16255,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } }, "required": [ @@ -16826,6 +16834,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } } } @@ -20921,6 +20937,11 @@ "$ref": "#/components/schemas/WebhookUser", "description": "User who last modified the webhook.", "nullable": true + }, + "storage_destination": { + "$ref": "#/components/schemas/StorageDestination", + "description": "Storage destination configuration for webhook payload delivery.", + "nullable": true } } }, @@ -21072,6 +21093,71 @@ } } }, + "StorageDestination": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfig", + "description": "Storage-specific configuration settings." + } + }, + "description": "Storage destination configuration for webhook payload delivery." + }, + "StorageConfig": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3Config", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Storage configuration containing provider-specific settings." + }, + "AwsS3Config": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads are stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role used for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "AWS S3 storage configuration details." + }, "WebhookPagination": { "type": "object", "required": [ @@ -24829,6 +24915,71 @@ } } }, + "StorageDestinationInput": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfigInput", + "description": "Storage-specific configuration settings." + } + }, + "description": "Input type for storage destination configuration." + }, + "StorageConfigInput": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3ConfigInput", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Input type for storage configuration." + }, + "AwsS3ConfigInput": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads will be stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role to assume for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Optional path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "Input type for AWS S3 storage configuration." + }, "WebhookDeleteResponse": { "type": "object", "required": [ From fdf2d95d0a8791a5427bcfa759cb3600c108579f Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 9 Jan 2026 10:46:10 +0000 Subject: [PATCH 387/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 209 +------------------------------- 1 file changed, 2 insertions(+), 207 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index f17260443..c504e8f03 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13875,11 +13875,6 @@ "en-DE" ] }, - "use_browser_language": { - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", - "type": "boolean", - "nullable": true - }, "extended_properties": { "description": "Properties for the user", "type": "object" @@ -14768,11 +14763,6 @@ "en-DE" ] }, - "use_browser_language": { - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", - "type": "boolean", - "nullable": true - }, "extended_properties": { "description": "Properties for the user", "type": "object" @@ -16255,14 +16245,6 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] - }, - "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/StorageDestinationInput" - } - ] } }, "required": [ @@ -16834,14 +16816,6 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] - }, - "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/StorageDestinationInput" - } - ] } } } @@ -17224,11 +17198,6 @@ "description": "Locale for the user.", "nullable": true }, - "use_browser_language": { - "type": "boolean", - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", - "nullable": true - }, "extended_properties": { "type": "object", "description": "Properties for the user", @@ -20937,11 +20906,6 @@ "$ref": "#/components/schemas/WebhookUser", "description": "User who last modified the webhook.", "nullable": true - }, - "storage_destination": { - "$ref": "#/components/schemas/StorageDestination", - "description": "Storage destination configuration for webhook payload delivery.", - "nullable": true } } }, @@ -21093,71 +21057,6 @@ } } }, - "StorageDestination": { - "type": "object", - "required": [ - "storage_type", - "storage_config" - ], - "properties": { - "storage_type": { - "type": "string", - "enum": [ - "AWS_S3" - ], - "description": "Type of storage destination (e.g., AWS_S3)." - }, - "storage_config": { - "$ref": "#/components/schemas/StorageConfig", - "description": "Storage-specific configuration settings." - } - }, - "description": "Storage destination configuration for webhook payload delivery." - }, - "StorageConfig": { - "type": "object", - "properties": { - "aws_s3_config": { - "$ref": "#/components/schemas/AwsS3Config", - "description": "AWS S3 storage configuration.", - "nullable": true - } - }, - "description": "Storage configuration containing provider-specific settings." - }, - "AwsS3Config": { - "type": "object", - "required": [ - "bucket_name", - "region", - "role_arn", - "external_id" - ], - "properties": { - "bucket_name": { - "type": "string", - "description": "Name of the S3 bucket where webhook payloads are stored." - }, - "region": { - "type": "string", - "description": "AWS region where the S3 bucket is located." - }, - "role_arn": { - "type": "string", - "description": "ARN of the IAM role used for S3 access." - }, - "external_id": { - "type": "string", - "description": "External ID for secure cross-account role assumption." - }, - "path_prefix": { - "type": "string", - "description": "Path prefix for organizing objects within the bucket.", - "nullable": true - } - }, - "description": "AWS S3 storage configuration details." - }, "WebhookPagination": { "type": "object", "required": [ @@ -21911,45 +21810,6 @@ }, "description": "Metadata objects to add to the user's favorites list.", "nullable": true - }, - "preferred_locale": { - "type": "string", - "description": "Locale for the user.", - "nullable": true, - "enum": [ - "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" - ] - }, - "use_browser_language": { - "type": "boolean", - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", - "nullable": true } } }, @@ -24752,12 +24612,12 @@ }, "contact_support_url": { "type": "string", - "description": "Contact support url (HTTP/HTTPS only).", + "description": "Contact support url (HTTP/HTTPS only).
Version: 26.2.0.cl or later", "nullable": true }, "hide_contact_support_url": { "type": "boolean", - "description": "Whether to hide contact support url.", + "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", "nullable": true } }, @@ -24915,71 +24775,6 @@ } } }, - "StorageDestinationInput": { - "type": "object", - "required": [ - "storage_type", - "storage_config" - ], - "properties": { - "storage_type": { - "type": "string", - "enum": [ - "AWS_S3" - ], - "description": "Type of storage destination (e.g., AWS_S3)." - }, - "storage_config": { - "$ref": "#/components/schemas/StorageConfigInput", - "description": "Storage-specific configuration settings." - } - }, - "description": "Input type for storage destination configuration." - }, - "StorageConfigInput": { - "type": "object", - "properties": { - "aws_s3_config": { - "$ref": "#/components/schemas/AwsS3ConfigInput", - "description": "AWS S3 storage configuration.", - "nullable": true - } - }, - "description": "Input type for storage configuration." - }, - "AwsS3ConfigInput": { - "type": "object", - "required": [ - "bucket_name", - "region", - "role_arn", - "external_id" - ], - "properties": { - "bucket_name": { - "type": "string", - "description": "Name of the S3 bucket where webhook payloads will be stored." - }, - "region": { - "type": "string", - "description": "AWS region where the S3 bucket is located." - }, - "role_arn": { - "type": "string", - "description": "ARN of the IAM role to assume for S3 access." - }, - "external_id": { - "type": "string", - "description": "External ID for secure cross-account role assumption." - }, - "path_prefix": { - "type": "string", - "description": "Optional path prefix for organizing objects within the bucket.", - "nullable": true - } - }, - "description": "Input type for AWS S3 storage configuration." - }, "WebhookDeleteResponse": { "type": "object", "required": [ From 1380f96d17834a87347a43ac65555e42f9d26584 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 9 Jan 2026 02:58:39 -0800 Subject: [PATCH 388/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 205 ++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c504e8f03..445a7b5f2 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -13875,6 +13875,11 @@ "en-DE" ] }, + "use_browser_language": { + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "type": "boolean", + "nullable": true + }, "extended_properties": { "description": "Properties for the user", "type": "object" @@ -14763,6 +14768,11 @@ "en-DE" ] }, + "use_browser_language": { + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "type": "boolean", + "nullable": true + }, "extended_properties": { "description": "Properties for the user", "type": "object" @@ -16245,6 +16255,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } }, "required": [ @@ -16816,6 +16834,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } } } @@ -17198,6 +17224,11 @@ "description": "Locale for the user.", "nullable": true }, + "use_browser_language": { + "type": "boolean", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "nullable": true + }, "extended_properties": { "type": "object", "description": "Properties for the user", @@ -20906,6 +20937,11 @@ "$ref": "#/components/schemas/WebhookUser", "description": "User who last modified the webhook.", "nullable": true + }, + "storage_destination": { + "$ref": "#/components/schemas/StorageDestination", + "description": "Storage destination configuration for webhook payload delivery.", + "nullable": true } } }, @@ -21057,6 +21093,71 @@ } } }, + "StorageDestination": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfig", + "description": "Storage-specific configuration settings." + } + }, + "description": "Storage destination configuration for webhook payload delivery." + }, + "StorageConfig": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3Config", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Storage configuration containing provider-specific settings." + }, + "AwsS3Config": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads are stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role used for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "AWS S3 storage configuration details." + }, "WebhookPagination": { "type": "object", "required": [ @@ -21810,6 +21911,45 @@ }, "description": "Metadata objects to add to the user's favorites list.", "nullable": true + }, + "preferred_locale": { + "type": "string", + "description": "Locale for the user.", + "nullable": true, + "enum": [ + "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" + ] + }, + "use_browser_language": { + "type": "boolean", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "nullable": true } } }, @@ -24775,6 +24915,71 @@ } } }, + "StorageDestinationInput": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfigInput", + "description": "Storage-specific configuration settings." + } + }, + "description": "Input type for storage destination configuration." + }, + "StorageConfigInput": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3ConfigInput", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Input type for storage configuration." + }, + "AwsS3ConfigInput": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads will be stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role to assume for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Optional path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "Input type for AWS S3 storage configuration." + }, "WebhookDeleteResponse": { "type": "object", "required": [ From f284c62e2cf17d9a6a92efa4faf9802772923283 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 9 Jan 2026 10:59:38 +0000 Subject: [PATCH 389/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 294 ++++++++++++++++++++++++++++---- 1 file changed, 260 insertions(+), 34 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 445a7b5f2..3875eded6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -157,6 +157,14 @@ ], "description": "Roles for version 9.5.0.cl" }, + { + "name": "26.3.0.cl", + "id": "26.3.0.cl", + "tags": [ + "26.3.0.cl" + ], + "description": "Roles for version 26.3.0.cl" + }, { "name": "10.14.0.cl", "id": "10.14.0.cl", @@ -412,7 +420,7 @@ "/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", + "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 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" @@ -952,7 +960,7 @@ "/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", + "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 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" @@ -11525,6 +11533,110 @@ } } }, + "/api/rest/2.0/security/metadata/fetch-object-privileges": { + "post": { + "operationId": "fetchObjectPrivileges", + "description": "\n Version: 26.3.0.cl or later\n\nThis API fetches the object privileges present for the given list of principals (user or group), on the given set of objects. It supports pagination, which can be enabled and configured using the request parameters. It provides users access to certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals for which you want to retrieve object privilege information in the `principals` array.\n- Specify the `type` (`LOGICAL_TABLE`) and `identifier` (either GUID or name) of the metadata objects for which you want to retrieve object privilege information in the `metadata` array. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- To control the offset from where principals have to be fetched, use `record_offset`. When `record_offset` is 0, information is fetched from the beginning.\n- To control the number of principals to be fetched, use `record_size`. Default `record_size` is 20.\n- Ensure `record_offset` for a subsequent request is one more than the value of `record_size` of the previous request.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org. \n\n#### Example request\n\n```json\n{\n \"principals\": [\n {\n \"type\": \"type-1\",\n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ],\n \"metadata\": [\n {\n \"type\": \"metadata-type-1\",\n \"identifier\": \"metadata-guid-or-name-1\"\n },\n {\n \"type\": \"metadata-type-2\",\n \"identifier\": \"metadata-guid-or-name-2\"\n }\n ],\n \"record_offset\": 0,\n \"record_size\": 20\n}\n```\n\n\n#### Response format\n\nThe API returns an array of `metadata_object_privileges` objects wrapped in JSON. Each `metadata_object_privileges` object contains:\n- Metadata information (GUID, name and type)\n- Array of `principal_object_privilege_info`.\n- Each `principal_object_privilege_info` contains:\n - Principal type. All principals of this type are listed as described below.\n - Array of `principal_object_privileges`.\n - Each `principal_object_privileges` contains:\n - Principal information (GUID, name, subtype)\n - List of applied object level privileges.\n\n#### Example response\n\n```json\n{\n \"metadata_object_privileges\": [\n {\n \"metadata_id\": \"metadata-guid-1\",\n \"metadata_name\": \"metadata-name-1\",\n \"metadata_type\": \"metadata-type-1\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n }\n ]\n },\n {\n \"principal_type\": \"principal-type-2\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-3\",\n \"principal_name\": \"principal-guid-4\",\n \"principal_sub_type\": \"principal-sub-type-4\",\n \"object_privileges\": \"[object-privilege-1]\"\n }\n ]\n }\n ]\n },\n {\n \"metadata_id\": \"metadata-guid-2\",\n \"metadata_name\": \"metadata-name-2\",\n \"metadata_type\": \"metadata-type-2\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-3, object-privilege-4]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-4]\"\n }\n ]\n }\n ]\n }\n ]\n}\n```\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "26.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects for which you want to fetch object privileges. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ObjectPrivilegesMetadataInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch object privileges.\nIf not specified, the API returns all users and groups that\nhave object privileges on the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": 20, + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching defined object privileges of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ObjectPrivilegesOfMetadataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", @@ -11847,6 +11959,120 @@ } } }, + "/api/rest/2.0/security/metadata/manage-object-privilege": { + "post": { + "operationId": "manageObjectPrivilege", + "description": "\n Version: 26.3.0.cl or later\n\nThis API allows the addition or deletion of object level privileges for a set of users and groups, on a set of metadata objects. It provides users to access certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `operation`. The supported operations are: `ADD`, `REMOVE`.\n- Specify the type of the objects on which the object privileges are being provided in `metadata_type`. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- Specify the list of object privilege types in the `object_privilege_types` array. The supported object privilege types are: `SPOTTER_COACHING_PRIVILEGE`.\n- Specify the identifiers (either GUID or name) for the metadata objects in the `metadata_identifiers` array.\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals to which you want to apply the given operation and given object privileges in the `principals` array.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org.\n\n#### Example request\n\n```json\n{\n \"operation\": \"operation-type\",\n \"metadata_type\": \"metadata-type\",\n \"object_privilege_types\": [\"privilege-type-1\", \"privilege-type-2\"],\n \"metadata_identifiers\": [\"metadata-guid-or-name-1\", \"metadata-guid-or-name-1\"],\n \"principals\": [\n {\n \"type\": \"type-1\", \n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ]\n}\n```\n\n> ###### Note:\n> * Only admin users, users with edit access and users with coaching privilege on a given data-model can add or remove principals related to SPOTTER_COACHING_PRIVILEGE \n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "26.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "operation": { + "description": "Operation to perform to manage object privileges. Available operations are: `ADD`, `REMOVE`.", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + }, + "metadata_type": { + "description": "Type of metadata objects on which you want to perform the operation. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", + "type": "string", + "enum": [ + "LOGICAL_TABLE" + ] + }, + "object_privilege_types": { + "description": "List of object privilege types on which you want to perform the operation.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "SPOTTER_COACHING_PRIVILEGE" + ] + } + }, + "metadata_identifiers": { + "description": "List of metadata identifiers (GUID or name) on which you want to perform the operation.", + "type": "array", + "items": { + "type": "string" + } + }, + "principals": { + "description": "User or group objects (GUID or name) to which you want to apply the given operation and given object privileges.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + } + }, + "required": [ + "operation", + "metadata_type", + "object_privilege_types", + "metadata_identifiers", + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Object privileges added/removed successfully" + }, + "400": { + "description": "Invalid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/metadata/publish": { "post": { "operationId": "publishMetadata", @@ -19024,6 +19250,35 @@ } } }, + "ObjectPrivilegesMetadataInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LOGICAL_TABLE" + ], + "description": "Type of metadata object.\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "ObjectPrivilegesOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_object_privileges": { + "type": "object", + "nullable": true + } + } + }, "PrincipalsInput": { "type": "object", "required": [ @@ -21915,36 +22170,7 @@ "preferred_locale": { "type": "string", "description": "Locale for the user.", - "nullable": true, - "enum": [ - "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" - ] + "nullable": true }, "use_browser_language": { "type": "boolean", @@ -24752,12 +24978,12 @@ }, "contact_support_url": { "type": "string", - "description": "Contact support url (HTTP/HTTPS only).
Version: 26.2.0.cl or later", + "description": "Contact support url (HTTP/HTTPS only).", "nullable": true }, "hide_contact_support_url": { "type": "boolean", - "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", + "description": "Whether to hide contact support url.", "nullable": true } }, From 46ed862ad2e75657ce3831138477c9009b526c45 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Fri, 9 Jan 2026 03:20:39 -0800 Subject: [PATCH 390/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 35 ++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 3875eded6..38245d383 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -22170,7 +22170,36 @@ "preferred_locale": { "type": "string", "description": "Locale for the user.", - "nullable": true + "nullable": true, + "enum": [ + "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" + ] }, "use_browser_language": { "type": "boolean", @@ -24978,12 +25007,12 @@ }, "contact_support_url": { "type": "string", - "description": "Contact support url (HTTP/HTTPS only).", + "description": "Contact support url (HTTP/HTTPS only).
Version: 26.2.0.cl or later", "nullable": true }, "hide_contact_support_url": { "type": "boolean", - "description": "Whether to hide contact support url.", + "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", "nullable": true } }, From d489b123406cf9b870832536cdfa97cadc25a81a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 12 Jan 2026 04:42:59 +0000 Subject: [PATCH 391/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 267 +------------------------------- 1 file changed, 6 insertions(+), 261 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 38245d383..cac4a68e5 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -157,14 +157,6 @@ ], "description": "Roles for version 9.5.0.cl" }, - { - "name": "26.3.0.cl", - "id": "26.3.0.cl", - "tags": [ - "26.3.0.cl" - ], - "description": "Roles for version 26.3.0.cl" - }, { "name": "10.14.0.cl", "id": "10.14.0.cl", @@ -420,7 +412,7 @@ "/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 of the data-model to retrieve NL instructions\n\nThe API returns a response object with:\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for natural language processing\n - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future.\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported)\n\n> ###### Note:\n> * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists.\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.\n\n\n\n#### Endpoint URL\n", + "description": "\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" @@ -960,7 +952,7 @@ "/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 of the data-model for which to set NL instructions\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for the LLM\n - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future.\n\nThe API returns a response object with:\n- `success`: Boolean indicating whether the operation was successful\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally for that data-model across the system\n\n> ###### Note:\n> * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists.\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.\n\n\n\n\n#### Endpoint URL\n", + "description": "\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" @@ -11533,110 +11525,6 @@ } } }, - "/api/rest/2.0/security/metadata/fetch-object-privileges": { - "post": { - "operationId": "fetchObjectPrivileges", - "description": "\n Version: 26.3.0.cl or later\n\nThis API fetches the object privileges present for the given list of principals (user or group), on the given set of objects. It supports pagination, which can be enabled and configured using the request parameters. It provides users access to certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals for which you want to retrieve object privilege information in the `principals` array.\n- Specify the `type` (`LOGICAL_TABLE`) and `identifier` (either GUID or name) of the metadata objects for which you want to retrieve object privilege information in the `metadata` array. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- To control the offset from where principals have to be fetched, use `record_offset`. When `record_offset` is 0, information is fetched from the beginning.\n- To control the number of principals to be fetched, use `record_size`. Default `record_size` is 20.\n- Ensure `record_offset` for a subsequent request is one more than the value of `record_size` of the previous request.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org. \n\n#### Example request\n\n```json\n{\n \"principals\": [\n {\n \"type\": \"type-1\",\n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ],\n \"metadata\": [\n {\n \"type\": \"metadata-type-1\",\n \"identifier\": \"metadata-guid-or-name-1\"\n },\n {\n \"type\": \"metadata-type-2\",\n \"identifier\": \"metadata-guid-or-name-2\"\n }\n ],\n \"record_offset\": 0,\n \"record_size\": 20\n}\n```\n\n\n#### Response format\n\nThe API returns an array of `metadata_object_privileges` objects wrapped in JSON. Each `metadata_object_privileges` object contains:\n- Metadata information (GUID, name and type)\n- Array of `principal_object_privilege_info`.\n- Each `principal_object_privilege_info` contains:\n - Principal type. All principals of this type are listed as described below.\n - Array of `principal_object_privileges`.\n - Each `principal_object_privileges` contains:\n - Principal information (GUID, name, subtype)\n - List of applied object level privileges.\n\n#### Example response\n\n```json\n{\n \"metadata_object_privileges\": [\n {\n \"metadata_id\": \"metadata-guid-1\",\n \"metadata_name\": \"metadata-name-1\",\n \"metadata_type\": \"metadata-type-1\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n }\n ]\n },\n {\n \"principal_type\": \"principal-type-2\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-3\",\n \"principal_name\": \"principal-guid-4\",\n \"principal_sub_type\": \"principal-sub-type-4\",\n \"object_privileges\": \"[object-privilege-1]\"\n }\n ]\n }\n ]\n },\n {\n \"metadata_id\": \"metadata-guid-2\",\n \"metadata_name\": \"metadata-name-2\",\n \"metadata_type\": \"metadata-type-2\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-3, object-privilege-4]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-4]\"\n }\n ]\n }\n ]\n }\n ]\n}\n```\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "26.3.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects for which you want to fetch object privileges. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ObjectPrivilegesMetadataInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch object privileges.\nIf not specified, the API returns all users and groups that\nhave object privileges on the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": 20, - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching defined object privileges of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ObjectPrivilegesOfMetadataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", @@ -11959,120 +11847,6 @@ } } }, - "/api/rest/2.0/security/metadata/manage-object-privilege": { - "post": { - "operationId": "manageObjectPrivilege", - "description": "\n Version: 26.3.0.cl or later\n\nThis API allows the addition or deletion of object level privileges for a set of users and groups, on a set of metadata objects. It provides users to access certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `operation`. The supported operations are: `ADD`, `REMOVE`.\n- Specify the type of the objects on which the object privileges are being provided in `metadata_type`. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- Specify the list of object privilege types in the `object_privilege_types` array. The supported object privilege types are: `SPOTTER_COACHING_PRIVILEGE`.\n- Specify the identifiers (either GUID or name) for the metadata objects in the `metadata_identifiers` array.\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals to which you want to apply the given operation and given object privileges in the `principals` array.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org.\n\n#### Example request\n\n```json\n{\n \"operation\": \"operation-type\",\n \"metadata_type\": \"metadata-type\",\n \"object_privilege_types\": [\"privilege-type-1\", \"privilege-type-2\"],\n \"metadata_identifiers\": [\"metadata-guid-or-name-1\", \"metadata-guid-or-name-1\"],\n \"principals\": [\n {\n \"type\": \"type-1\", \n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ]\n}\n```\n\n> ###### Note:\n> * Only admin users, users with edit access and users with coaching privilege on a given data-model can add or remove principals related to SPOTTER_COACHING_PRIVILEGE \n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "26.3.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "operation": { - "description": "Operation to perform to manage object privileges. Available operations are: `ADD`, `REMOVE`.", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - }, - "metadata_type": { - "description": "Type of metadata objects on which you want to perform the operation. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", - "type": "string", - "enum": [ - "LOGICAL_TABLE" - ] - }, - "object_privilege_types": { - "description": "List of object privilege types on which you want to perform the operation.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "SPOTTER_COACHING_PRIVILEGE" - ] - } - }, - "metadata_identifiers": { - "description": "List of metadata identifiers (GUID or name) on which you want to perform the operation.", - "type": "array", - "items": { - "type": "string" - } - }, - "principals": { - "description": "User or group objects (GUID or name) to which you want to apply the given operation and given object privileges.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - } - }, - "required": [ - "operation", - "metadata_type", - "object_privilege_types", - "metadata_identifiers", - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Object privileges added/removed successfully" - }, - "400": { - "description": "Invalid request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/security/metadata/publish": { "post": { "operationId": "publishMetadata", @@ -14069,7 +13843,7 @@ } }, "preferred_locale": { - "description": "Locale for the user.", + "description": "Locale for the user. When setting this value, do not set use_browser_language\nto true, otherwise the browser's language setting will take precedence and the\npreferred_locale value will be ignored.", "type": "string", "enum": [ "en-CA", @@ -14962,7 +14736,7 @@ ] }, "preferred_locale": { - "description": "Locale for the user.", + "description": "Locale for the user. When setting this value, do not set use_browser_language\nto true, otherwise the browser's language setting will take precedence and the\npreferred_locale value will be ignored.", "type": "string", "enum": [ "en-CA", @@ -19250,35 +19024,6 @@ } } }, - "ObjectPrivilegesMetadataInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LOGICAL_TABLE" - ], - "description": "Type of metadata object.\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "ObjectPrivilegesOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_object_privileges": { - "type": "object", - "nullable": true - } - } - }, "PrincipalsInput": { "type": "object", "required": [ @@ -25007,12 +24752,12 @@ }, "contact_support_url": { "type": "string", - "description": "Contact support url (HTTP/HTTPS only).
Version: 26.2.0.cl or later", + "description": "Contact support url (HTTP/HTTPS only).", "nullable": true }, "hide_contact_support_url": { "type": "boolean", - "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", + "description": "Whether to hide contact support url.", "nullable": true } }, From f4104838d954aed11f427c8a0b496fa27c1a85cf Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sun, 11 Jan 2026 20:49:42 -0800 Subject: [PATCH 392/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 263 +++++++++++++++++++++++++++++++- 1 file changed, 259 insertions(+), 4 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index cac4a68e5..901be7761 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -157,6 +157,14 @@ ], "description": "Roles for version 9.5.0.cl" }, + { + "name": "26.3.0.cl", + "id": "26.3.0.cl", + "tags": [ + "26.3.0.cl" + ], + "description": "Roles for version 26.3.0.cl" + }, { "name": "10.14.0.cl", "id": "10.14.0.cl", @@ -412,7 +420,7 @@ "/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", + "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 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" @@ -952,7 +960,7 @@ "/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", + "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 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" @@ -11525,6 +11533,110 @@ } } }, + "/api/rest/2.0/security/metadata/fetch-object-privileges": { + "post": { + "operationId": "fetchObjectPrivileges", + "description": "\n Version: 26.3.0.cl or later\n\nThis API fetches the object privileges present for the given list of principals (user or group), on the given set of objects. It supports pagination, which can be enabled and configured using the request parameters. It provides users access to certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals for which you want to retrieve object privilege information in the `principals` array.\n- Specify the `type` (`LOGICAL_TABLE`) and `identifier` (either GUID or name) of the metadata objects for which you want to retrieve object privilege information in the `metadata` array. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- To control the offset from where principals have to be fetched, use `record_offset`. When `record_offset` is 0, information is fetched from the beginning.\n- To control the number of principals to be fetched, use `record_size`. Default `record_size` is 20.\n- Ensure `record_offset` for a subsequent request is one more than the value of `record_size` of the previous request.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org. \n\n#### Example request\n\n```json\n{\n \"principals\": [\n {\n \"type\": \"type-1\",\n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ],\n \"metadata\": [\n {\n \"type\": \"metadata-type-1\",\n \"identifier\": \"metadata-guid-or-name-1\"\n },\n {\n \"type\": \"metadata-type-2\",\n \"identifier\": \"metadata-guid-or-name-2\"\n }\n ],\n \"record_offset\": 0,\n \"record_size\": 20\n}\n```\n\n\n#### Response format\n\nThe API returns an array of `metadata_object_privileges` objects wrapped in JSON. Each `metadata_object_privileges` object contains:\n- Metadata information (GUID, name and type)\n- Array of `principal_object_privilege_info`.\n- Each `principal_object_privilege_info` contains:\n - Principal type. All principals of this type are listed as described below.\n - Array of `principal_object_privileges`.\n - Each `principal_object_privileges` contains:\n - Principal information (GUID, name, subtype)\n - List of applied object level privileges.\n\n#### Example response\n\n```json\n{\n \"metadata_object_privileges\": [\n {\n \"metadata_id\": \"metadata-guid-1\",\n \"metadata_name\": \"metadata-name-1\",\n \"metadata_type\": \"metadata-type-1\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n }\n ]\n },\n {\n \"principal_type\": \"principal-type-2\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-3\",\n \"principal_name\": \"principal-guid-4\",\n \"principal_sub_type\": \"principal-sub-type-4\",\n \"object_privileges\": \"[object-privilege-1]\"\n }\n ]\n }\n ]\n },\n {\n \"metadata_id\": \"metadata-guid-2\",\n \"metadata_name\": \"metadata-name-2\",\n \"metadata_type\": \"metadata-type-2\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-3, object-privilege-4]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-4]\"\n }\n ]\n }\n ]\n }\n ]\n}\n```\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "26.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects for which you want to fetch object privileges. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ObjectPrivilegesMetadataInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch object privileges.\nIf not specified, the API returns all users and groups that\nhave object privileges on the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": 20, + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching defined object privileges of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ObjectPrivilegesOfMetadataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", @@ -11847,6 +11959,120 @@ } } }, + "/api/rest/2.0/security/metadata/manage-object-privilege": { + "post": { + "operationId": "manageObjectPrivilege", + "description": "\n Version: 26.3.0.cl or later\n\nThis API allows the addition or deletion of object level privileges for a set of users and groups, on a set of metadata objects. It provides users to access certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `operation`. The supported operations are: `ADD`, `REMOVE`.\n- Specify the type of the objects on which the object privileges are being provided in `metadata_type`. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- Specify the list of object privilege types in the `object_privilege_types` array. The supported object privilege types are: `SPOTTER_COACHING_PRIVILEGE`.\n- Specify the identifiers (either GUID or name) for the metadata objects in the `metadata_identifiers` array.\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals to which you want to apply the given operation and given object privileges in the `principals` array.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org.\n\n#### Example request\n\n```json\n{\n \"operation\": \"operation-type\",\n \"metadata_type\": \"metadata-type\",\n \"object_privilege_types\": [\"privilege-type-1\", \"privilege-type-2\"],\n \"metadata_identifiers\": [\"metadata-guid-or-name-1\", \"metadata-guid-or-name-1\"],\n \"principals\": [\n {\n \"type\": \"type-1\", \n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ]\n}\n```\n\n> ###### Note:\n> * Only admin users, users with edit access and users with coaching privilege on a given data-model can add or remove principals related to SPOTTER_COACHING_PRIVILEGE \n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "26.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "operation": { + "description": "Operation to perform to manage object privileges. Available operations are: `ADD`, `REMOVE`.", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + }, + "metadata_type": { + "description": "Type of metadata objects on which you want to perform the operation. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", + "type": "string", + "enum": [ + "LOGICAL_TABLE" + ] + }, + "object_privilege_types": { + "description": "List of object privilege types on which you want to perform the operation.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "SPOTTER_COACHING_PRIVILEGE" + ] + } + }, + "metadata_identifiers": { + "description": "List of metadata identifiers (GUID or name) on which you want to perform the operation.", + "type": "array", + "items": { + "type": "string" + } + }, + "principals": { + "description": "User or group objects (GUID or name) to which you want to apply the given operation and given object privileges.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + } + }, + "required": [ + "operation", + "metadata_type", + "object_privilege_types", + "metadata_identifiers", + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Object privileges added/removed successfully" + }, + "400": { + "description": "Invalid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/metadata/publish": { "post": { "operationId": "publishMetadata", @@ -19024,6 +19250,35 @@ } } }, + "ObjectPrivilegesMetadataInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LOGICAL_TABLE" + ], + "description": "Type of metadata object.\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "ObjectPrivilegesOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_object_privileges": { + "type": "object", + "nullable": true + } + } + }, "PrincipalsInput": { "type": "object", "required": [ @@ -24752,12 +25007,12 @@ }, "contact_support_url": { "type": "string", - "description": "Contact support url (HTTP/HTTPS only).", + "description": "Contact support url (HTTP/HTTPS only).
Version: 26.2.0.cl or later", "nullable": true }, "hide_contact_support_url": { "type": "boolean", - "description": "Whether to hide contact support url.", + "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", "nullable": true } }, From e5507d5edf4938e1d0110d5d5fdda00a5922cdde Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 12 Jan 2026 07:27:01 +0000 Subject: [PATCH 393/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 479 ++------------------------------ 1 file changed, 27 insertions(+), 452 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 901be7761..1479db49d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -157,14 +157,6 @@ ], "description": "Roles for version 9.5.0.cl" }, - { - "name": "26.3.0.cl", - "id": "26.3.0.cl", - "tags": [ - "26.3.0.cl" - ], - "description": "Roles for version 26.3.0.cl" - }, { "name": "10.14.0.cl", "id": "10.14.0.cl", @@ -420,7 +412,7 @@ "/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 of the data-model to retrieve NL instructions\n\nThe API returns a response object with:\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for natural language processing\n - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future.\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported)\n\n> ###### Note:\n> * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists.\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.\n\n\n\n#### Endpoint URL\n", + "description": "\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" @@ -960,7 +952,7 @@ "/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 of the data-model for which to set NL instructions\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for the LLM\n - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future.\n\nThe API returns a response object with:\n- `success`: Boolean indicating whether the operation was successful\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally for that data-model across the system\n\n> ###### Note:\n> * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists.\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.\n\n\n\n\n#### Endpoint URL\n", + "description": "\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" @@ -5908,7 +5900,8 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] } }, @@ -6269,7 +6262,8 @@ "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] } }, @@ -6478,7 +6472,8 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] } }, @@ -9131,7 +9126,8 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] } }, @@ -9362,7 +9358,8 @@ "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] } }, @@ -9525,7 +9522,8 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] } } @@ -11533,110 +11531,6 @@ } } }, - "/api/rest/2.0/security/metadata/fetch-object-privileges": { - "post": { - "operationId": "fetchObjectPrivileges", - "description": "\n Version: 26.3.0.cl or later\n\nThis API fetches the object privileges present for the given list of principals (user or group), on the given set of objects. It supports pagination, which can be enabled and configured using the request parameters. It provides users access to certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals for which you want to retrieve object privilege information in the `principals` array.\n- Specify the `type` (`LOGICAL_TABLE`) and `identifier` (either GUID or name) of the metadata objects for which you want to retrieve object privilege information in the `metadata` array. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- To control the offset from where principals have to be fetched, use `record_offset`. When `record_offset` is 0, information is fetched from the beginning.\n- To control the number of principals to be fetched, use `record_size`. Default `record_size` is 20.\n- Ensure `record_offset` for a subsequent request is one more than the value of `record_size` of the previous request.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org. \n\n#### Example request\n\n```json\n{\n \"principals\": [\n {\n \"type\": \"type-1\",\n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ],\n \"metadata\": [\n {\n \"type\": \"metadata-type-1\",\n \"identifier\": \"metadata-guid-or-name-1\"\n },\n {\n \"type\": \"metadata-type-2\",\n \"identifier\": \"metadata-guid-or-name-2\"\n }\n ],\n \"record_offset\": 0,\n \"record_size\": 20\n}\n```\n\n\n#### Response format\n\nThe API returns an array of `metadata_object_privileges` objects wrapped in JSON. Each `metadata_object_privileges` object contains:\n- Metadata information (GUID, name and type)\n- Array of `principal_object_privilege_info`.\n- Each `principal_object_privilege_info` contains:\n - Principal type. All principals of this type are listed as described below.\n - Array of `principal_object_privileges`.\n - Each `principal_object_privileges` contains:\n - Principal information (GUID, name, subtype)\n - List of applied object level privileges.\n\n#### Example response\n\n```json\n{\n \"metadata_object_privileges\": [\n {\n \"metadata_id\": \"metadata-guid-1\",\n \"metadata_name\": \"metadata-name-1\",\n \"metadata_type\": \"metadata-type-1\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n }\n ]\n },\n {\n \"principal_type\": \"principal-type-2\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-3\",\n \"principal_name\": \"principal-guid-4\",\n \"principal_sub_type\": \"principal-sub-type-4\",\n \"object_privileges\": \"[object-privilege-1]\"\n }\n ]\n }\n ]\n },\n {\n \"metadata_id\": \"metadata-guid-2\",\n \"metadata_name\": \"metadata-name-2\",\n \"metadata_type\": \"metadata-type-2\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-3, object-privilege-4]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-4]\"\n }\n ]\n }\n ]\n }\n ]\n}\n```\n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "26.3.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "metadata": { - "description": "Metadata objects for which you want to fetch object privileges. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ObjectPrivilegesMetadataInput" - } - }, - "principals": { - "description": "User or group objects for which you want to fetch object privileges.\nIf not specified, the API returns all users and groups that\nhave object privileges on the specified metadata objects.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - }, - "record_offset": { - "description": "The starting record number from where the records should be included for each metadata type.", - "default": 0, - "type": "integer", - "format": "int32" - }, - "record_size": { - "description": "The number of records that should be included for each metadata type.", - "default": 20, - "type": "integer", - "format": "int32" - } - }, - "required": [ - "metadata" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "200": { - "description": "Fetching defined object privileges of metadata objects is successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ObjectPrivilegesOfMetadataResponse" - } - } - } - }, - "400": { - "description": "Invalid request.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", @@ -11959,120 +11853,6 @@ } } }, - "/api/rest/2.0/security/metadata/manage-object-privilege": { - "post": { - "operationId": "manageObjectPrivilege", - "description": "\n Version: 26.3.0.cl or later\n\nThis API allows the addition or deletion of object level privileges for a set of users and groups, on a set of metadata objects. It provides users to access certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `operation`. The supported operations are: `ADD`, `REMOVE`.\n- Specify the type of the objects on which the object privileges are being provided in `metadata_type`. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- Specify the list of object privilege types in the `object_privilege_types` array. The supported object privilege types are: `SPOTTER_COACHING_PRIVILEGE`.\n- Specify the identifiers (either GUID or name) for the metadata objects in the `metadata_identifiers` array.\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals to which you want to apply the given operation and given object privileges in the `principals` array.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org.\n\n#### Example request\n\n```json\n{\n \"operation\": \"operation-type\",\n \"metadata_type\": \"metadata-type\",\n \"object_privilege_types\": [\"privilege-type-1\", \"privilege-type-2\"],\n \"metadata_identifiers\": [\"metadata-guid-or-name-1\", \"metadata-guid-or-name-1\"],\n \"principals\": [\n {\n \"type\": \"type-1\", \n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ]\n}\n```\n\n> ###### Note:\n> * Only admin users, users with edit access and users with coaching privilege on a given data-model can add or remove principals related to SPOTTER_COACHING_PRIVILEGE \n\n\n\n#### Endpoint URL\n", - "tags": [ - "Security", - "26.3.0.cl" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "operation": { - "description": "Operation to perform to manage object privileges. Available operations are: `ADD`, `REMOVE`.", - "type": "string", - "enum": [ - "ADD", - "REMOVE" - ] - }, - "metadata_type": { - "description": "Type of metadata objects on which you want to perform the operation. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", - "type": "string", - "enum": [ - "LOGICAL_TABLE" - ] - }, - "object_privilege_types": { - "description": "List of object privilege types on which you want to perform the operation.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "SPOTTER_COACHING_PRIVILEGE" - ] - } - }, - "metadata_identifiers": { - "description": "List of metadata identifiers (GUID or name) on which you want to perform the operation.", - "type": "array", - "items": { - "type": "string" - } - }, - "principals": { - "description": "User or group objects (GUID or name) to which you want to apply the given operation and given object privileges.", - "type": "array", - "items": { - "$ref": "#/components/schemas/PrincipalsInput" - } - } - }, - "required": [ - "operation", - "metadata_type", - "object_privilege_types", - "metadata_identifiers", - "principals" - ] - } - } - }, - "required": true - }, - "parameters": [], - "responses": { - "204": { - "description": "Object privileges added/removed successfully" - }, - "400": { - "description": "Invalid request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "401": { - "description": "Unauthorized access", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "403": { - "description": "Forbidden access", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - }, - "500": { - "description": "Unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - } - }, "/api/rest/2.0/security/metadata/publish": { "post": { "operationId": "publishMetadata", @@ -14069,7 +13849,7 @@ } }, "preferred_locale": { - "description": "Locale for the user. When setting this value, do not set use_browser_language\nto true, otherwise the browser's language setting will take precedence and the\npreferred_locale value will be ignored.", + "description": "Locale for the user.", "type": "string", "enum": [ "en-CA", @@ -14691,7 +14471,8 @@ "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] } }, @@ -14962,7 +14743,7 @@ ] }, "preferred_locale": { - "description": "Locale for the user. When setting this value, do not set use_browser_language\nto true, otherwise the browser's language setting will take precedence and the\npreferred_locale value will be ignored.", + "description": "Locale for the user.", "type": "string", "enum": [ "en-CA", @@ -16481,14 +16262,6 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] - }, - "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/StorageDestinationInput" - } - ] } }, "required": [ @@ -17060,14 +16833,6 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] - }, - "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", - "allOf": [ - { - "$ref": "#/components/schemas/StorageDestinationInput" - } - ] } } } @@ -19250,35 +19015,6 @@ } } }, - "ObjectPrivilegesMetadataInput": { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LOGICAL_TABLE" - ], - "description": "Type of metadata object.\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", - "nullable": true - }, - "identifier": { - "type": "string", - "description": "Unique ID or name of the metadata object." - } - } - }, - "ObjectPrivilegesOfMetadataResponse": { - "type": "object", - "properties": { - "metadata_object_privileges": { - "type": "object", - "nullable": true - } - } - }, "PrincipalsInput": { "type": "object", "required": [ @@ -20143,7 +19879,8 @@ "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] }, "description": "Privileges granted to the role." @@ -21192,11 +20929,6 @@ "$ref": "#/components/schemas/WebhookUser", "description": "User who last modified the webhook.", "nullable": true - }, - "storage_destination": { - "$ref": "#/components/schemas/StorageDestination", - "description": "Storage destination configuration for webhook payload delivery.", - "nullable": true } } }, @@ -21348,71 +21080,6 @@ } } }, - "StorageDestination": { - "type": "object", - "required": [ - "storage_type", - "storage_config" - ], - "properties": { - "storage_type": { - "type": "string", - "enum": [ - "AWS_S3" - ], - "description": "Type of storage destination (e.g., AWS_S3)." - }, - "storage_config": { - "$ref": "#/components/schemas/StorageConfig", - "description": "Storage-specific configuration settings." - } - }, - "description": "Storage destination configuration for webhook payload delivery." - }, - "StorageConfig": { - "type": "object", - "properties": { - "aws_s3_config": { - "$ref": "#/components/schemas/AwsS3Config", - "description": "AWS S3 storage configuration.", - "nullable": true - } - }, - "description": "Storage configuration containing provider-specific settings." - }, - "AwsS3Config": { - "type": "object", - "required": [ - "bucket_name", - "region", - "role_arn", - "external_id" - ], - "properties": { - "bucket_name": { - "type": "string", - "description": "Name of the S3 bucket where webhook payloads are stored." - }, - "region": { - "type": "string", - "description": "AWS region where the S3 bucket is located." - }, - "role_arn": { - "type": "string", - "description": "ARN of the IAM role used for S3 access." - }, - "external_id": { - "type": "string", - "description": "External ID for secure cross-account role assumption." - }, - "path_prefix": { - "type": "string", - "description": "Path prefix for organizing objects within the bucket.", - "nullable": true - } - }, - "description": "AWS S3 storage configuration details." - }, "WebhookPagination": { "type": "object", "required": [ @@ -22170,36 +21837,7 @@ "preferred_locale": { "type": "string", "description": "Locale for the user.", - "nullable": true, - "enum": [ - "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" - ] + "nullable": true }, "use_browser_language": { "type": "boolean", @@ -22578,7 +22216,8 @@ "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] }, "description": "Privileges that will be assigned to the group.", @@ -23583,7 +23222,8 @@ "PREVIEW_THOUGHTSPOT_SAGE", "CAN_MANAGE_WEBHOOKS", "CAN_DOWNLOAD_VISUALS", - "CAN_DOWNLOAD_DETAILED_DATA" + "CAN_DOWNLOAD_DETAILED_DATA", + "CAN_USE_SPOTTER" ] }, "description": "Privileges granted to the role." @@ -25007,12 +24647,12 @@ }, "contact_support_url": { "type": "string", - "description": "Contact support url (HTTP/HTTPS only).
Version: 26.2.0.cl or later", + "description": "Contact support url (HTTP/HTTPS only).", "nullable": true }, "hide_contact_support_url": { "type": "boolean", - "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", + "description": "Whether to hide contact support url.", "nullable": true } }, @@ -25170,71 +24810,6 @@ } } }, - "StorageDestinationInput": { - "type": "object", - "required": [ - "storage_type", - "storage_config" - ], - "properties": { - "storage_type": { - "type": "string", - "enum": [ - "AWS_S3" - ], - "description": "Type of storage destination (e.g., AWS_S3)." - }, - "storage_config": { - "$ref": "#/components/schemas/StorageConfigInput", - "description": "Storage-specific configuration settings." - } - }, - "description": "Input type for storage destination configuration." - }, - "StorageConfigInput": { - "type": "object", - "properties": { - "aws_s3_config": { - "$ref": "#/components/schemas/AwsS3ConfigInput", - "description": "AWS S3 storage configuration.", - "nullable": true - } - }, - "description": "Input type for storage configuration." - }, - "AwsS3ConfigInput": { - "type": "object", - "required": [ - "bucket_name", - "region", - "role_arn", - "external_id" - ], - "properties": { - "bucket_name": { - "type": "string", - "description": "Name of the S3 bucket where webhook payloads will be stored." - }, - "region": { - "type": "string", - "description": "AWS region where the S3 bucket is located." - }, - "role_arn": { - "type": "string", - "description": "ARN of the IAM role to assume for S3 access." - }, - "external_id": { - "type": "string", - "description": "External ID for secure cross-account role assumption." - }, - "path_prefix": { - "type": "string", - "description": "Optional path prefix for organizing objects within the bucket.", - "nullable": true - } - }, - "description": "Input type for AWS S3 storage configuration." - }, "WebhookDeleteResponse": { "type": "object", "required": [ From 53acbffbd31ace4d045f28f11af5dde30f8d43cf Mon Sep 17 00:00:00 2001 From: tse-developer Date: Sun, 11 Jan 2026 23:46:13 -0800 Subject: [PATCH 394/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 449 +++++++++++++++++++++++++++++++- 1 file changed, 442 insertions(+), 7 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 1479db49d..36580b927 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -157,6 +157,14 @@ ], "description": "Roles for version 9.5.0.cl" }, + { + "name": "26.3.0.cl", + "id": "26.3.0.cl", + "tags": [ + "26.3.0.cl" + ], + "description": "Roles for version 26.3.0.cl" + }, { "name": "10.14.0.cl", "id": "10.14.0.cl", @@ -412,7 +420,7 @@ "/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", + "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 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" @@ -952,7 +960,7 @@ "/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", + "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 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" @@ -11531,6 +11539,110 @@ } } }, + "/api/rest/2.0/security/metadata/fetch-object-privileges": { + "post": { + "operationId": "fetchObjectPrivileges", + "description": "\n Version: 26.3.0.cl or later\n\nThis API fetches the object privileges present for the given list of principals (user or group), on the given set of objects. It supports pagination, which can be enabled and configured using the request parameters. It provides users access to certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals for which you want to retrieve object privilege information in the `principals` array.\n- Specify the `type` (`LOGICAL_TABLE`) and `identifier` (either GUID or name) of the metadata objects for which you want to retrieve object privilege information in the `metadata` array. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- To control the offset from where principals have to be fetched, use `record_offset`. When `record_offset` is 0, information is fetched from the beginning.\n- To control the number of principals to be fetched, use `record_size`. Default `record_size` is 20.\n- Ensure `record_offset` for a subsequent request is one more than the value of `record_size` of the previous request.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org. \n\n#### Example request\n\n```json\n{\n \"principals\": [\n {\n \"type\": \"type-1\",\n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ],\n \"metadata\": [\n {\n \"type\": \"metadata-type-1\",\n \"identifier\": \"metadata-guid-or-name-1\"\n },\n {\n \"type\": \"metadata-type-2\",\n \"identifier\": \"metadata-guid-or-name-2\"\n }\n ],\n \"record_offset\": 0,\n \"record_size\": 20\n}\n```\n\n\n#### Response format\n\nThe API returns an array of `metadata_object_privileges` objects wrapped in JSON. Each `metadata_object_privileges` object contains:\n- Metadata information (GUID, name and type)\n- Array of `principal_object_privilege_info`.\n- Each `principal_object_privilege_info` contains:\n - Principal type. All principals of this type are listed as described below.\n - Array of `principal_object_privileges`.\n - Each `principal_object_privileges` contains:\n - Principal information (GUID, name, subtype)\n - List of applied object level privileges.\n\n#### Example response\n\n```json\n{\n \"metadata_object_privileges\": [\n {\n \"metadata_id\": \"metadata-guid-1\",\n \"metadata_name\": \"metadata-name-1\",\n \"metadata_type\": \"metadata-type-1\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-1, object-privilege-2]\"\n }\n ]\n },\n {\n \"principal_type\": \"principal-type-2\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-3\",\n \"principal_name\": \"principal-guid-4\",\n \"principal_sub_type\": \"principal-sub-type-4\",\n \"object_privileges\": \"[object-privilege-1]\"\n }\n ]\n }\n ]\n },\n {\n \"metadata_id\": \"metadata-guid-2\",\n \"metadata_name\": \"metadata-name-2\",\n \"metadata_type\": \"metadata-type-2\",\n \"principal_object_privilege_info\": [\n {\n \"principal_type\": \"principal-type-1\",\n \"principal_object_privileges\": [\n {\n \"principal_id\": \"principal-guid-1\",\n \"principal_name\": \"principal-name-1\",\n \"principal_sub_type\": \"principal-sub-type-1\",\n \"object_privileges\": \"[object-privilege-3, object-privilege-4]\"\n },\n {\n \"principal_id\": \"principal-guid-2\",\n \"principal_name\": \"principal-name-2\",\n \"principal_sub_type\": \"principal-sub-type-2\",\n \"object_privileges\": \"[object-privilege-4]\"\n }\n ]\n }\n ]\n }\n ]\n}\n```\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "26.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "description": "Metadata objects for which you want to fetch object privileges. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ObjectPrivilegesMetadataInput" + } + }, + "principals": { + "description": "User or group objects for which you want to fetch object privileges.\nIf not specified, the API returns all users and groups that\nhave object privileges on the specified metadata objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + }, + "record_offset": { + "description": "The starting record number from where the records should be included for each metadata type.", + "default": 0, + "type": "integer", + "format": "int32" + }, + "record_size": { + "description": "The number of records that should be included for each metadata type.", + "default": 20, + "type": "integer", + "format": "int32" + } + }, + "required": [ + "metadata" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Fetching defined object privileges of metadata objects is successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ObjectPrivilegesOfMetadataResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/principals/fetch-permissions": { "post": { "operationId": "fetchPermissionsOfPrincipals", @@ -11853,6 +11965,120 @@ } } }, + "/api/rest/2.0/security/metadata/manage-object-privilege": { + "post": { + "operationId": "manageObjectPrivilege", + "description": "\n Version: 26.3.0.cl or later\n\nThis API allows the addition or deletion of object level privileges for a set of users and groups, on a set of metadata objects. It provides users to access certain features based on privilege based access control.\n\n#### Usage guidelines\n\n- Specify the `operation`. The supported operations are: `ADD`, `REMOVE`.\n- Specify the type of the objects on which the object privileges are being provided in `metadata_type`. Only `LOGICAL_TABLE` metadata type is supported for now. It may be extended for other metadata types in future.\n- Specify the list of object privilege types in the `object_privilege_types` array. The supported object privilege types are: `SPOTTER_COACHING_PRIVILEGE`.\n- Specify the identifiers (either GUID or name) for the metadata objects in the `metadata_identifiers` array.\n- Specify the `type` (`USER` or `USER_GROUP`) and `identifier` (either GUID or name) of the principals to which you want to apply the given operation and given object privileges in the `principals` array.\n- Ensure using correct Authorization Bearer Token corresponding to specific user & org.\n\n#### Example request\n\n```json\n{\n \"operation\": \"operation-type\",\n \"metadata_type\": \"metadata-type\",\n \"object_privilege_types\": [\"privilege-type-1\", \"privilege-type-2\"],\n \"metadata_identifiers\": [\"metadata-guid-or-name-1\", \"metadata-guid-or-name-1\"],\n \"principals\": [\n {\n \"type\": \"type-1\", \n \"identifier\": \"principal-guid-or-name-1\"\n },\n {\n \"type\": \"type-2\",\n \"identifier\": \"principal-guid-or-name-2\"\n }\n ]\n}\n```\n\n> ###### Note:\n> * Only admin users, users with edit access and users with coaching privilege on a given data-model can add or remove principals related to SPOTTER_COACHING_PRIVILEGE \n\n\n\n#### Endpoint URL\n", + "tags": [ + "Security", + "26.3.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "operation": { + "description": "Operation to perform to manage object privileges. Available operations are: `ADD`, `REMOVE`.", + "type": "string", + "enum": [ + "ADD", + "REMOVE" + ] + }, + "metadata_type": { + "description": "Type of metadata objects on which you want to perform the operation. For now only LOGICAL_TABLE is supported. It may be extended to other metadata types in the future.", + "type": "string", + "enum": [ + "LOGICAL_TABLE" + ] + }, + "object_privilege_types": { + "description": "List of object privilege types on which you want to perform the operation.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "SPOTTER_COACHING_PRIVILEGE" + ] + } + }, + "metadata_identifiers": { + "description": "List of metadata identifiers (GUID or name) on which you want to perform the operation.", + "type": "array", + "items": { + "type": "string" + } + }, + "principals": { + "description": "User or group objects (GUID or name) to which you want to apply the given operation and given object privileges.", + "type": "array", + "items": { + "$ref": "#/components/schemas/PrincipalsInput" + } + } + }, + "required": [ + "operation", + "metadata_type", + "object_privilege_types", + "metadata_identifiers", + "principals" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "204": { + "description": "Object privileges added/removed successfully" + }, + "400": { + "description": "Invalid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/security/metadata/publish": { "post": { "operationId": "publishMetadata", @@ -13849,7 +14075,7 @@ } }, "preferred_locale": { - "description": "Locale for the user.", + "description": "Locale for the user. When setting this value, do not set use_browser_language\nto true, otherwise the browser's language setting will take precedence and the\npreferred_locale value will be ignored.", "type": "string", "enum": [ "en-CA", @@ -14743,7 +14969,7 @@ ] }, "preferred_locale": { - "description": "Locale for the user.", + "description": "Locale for the user. When setting this value, do not set use_browser_language\nto true, otherwise the browser's language setting will take precedence and the\npreferred_locale value will be ignored.", "type": "string", "enum": [ "en-CA", @@ -16262,6 +16488,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } }, "required": [ @@ -16833,6 +17067,14 @@ "$ref": "#/components/schemas/WebhookSignatureVerificationInput" } ] + }, + "storage_destination": { + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "allOf": [ + { + "$ref": "#/components/schemas/StorageDestinationInput" + } + ] } } } @@ -19015,6 +19257,35 @@ } } }, + "ObjectPrivilegesMetadataInput": { + "type": "object", + "required": [ + "identifier" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "LOGICAL_TABLE" + ], + "description": "Type of metadata object.\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier.", + "nullable": true + }, + "identifier": { + "type": "string", + "description": "Unique ID or name of the metadata object." + } + } + }, + "ObjectPrivilegesOfMetadataResponse": { + "type": "object", + "properties": { + "metadata_object_privileges": { + "type": "object", + "nullable": true + } + } + }, "PrincipalsInput": { "type": "object", "required": [ @@ -20929,6 +21200,11 @@ "$ref": "#/components/schemas/WebhookUser", "description": "User who last modified the webhook.", "nullable": true + }, + "storage_destination": { + "$ref": "#/components/schemas/StorageDestination", + "description": "Storage destination configuration for webhook payload delivery.", + "nullable": true } } }, @@ -21080,6 +21356,71 @@ } } }, + "StorageDestination": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfig", + "description": "Storage-specific configuration settings." + } + }, + "description": "Storage destination configuration for webhook payload delivery." + }, + "StorageConfig": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3Config", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Storage configuration containing provider-specific settings." + }, + "AwsS3Config": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads are stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role used for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "AWS S3 storage configuration details." + }, "WebhookPagination": { "type": "object", "required": [ @@ -21837,7 +22178,36 @@ "preferred_locale": { "type": "string", "description": "Locale for the user.", - "nullable": true + "nullable": true, + "enum": [ + "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" + ] }, "use_browser_language": { "type": "boolean", @@ -24647,12 +25017,12 @@ }, "contact_support_url": { "type": "string", - "description": "Contact support url (HTTP/HTTPS only).", + "description": "Contact support url (HTTP/HTTPS only).
Version: 26.2.0.cl or later", "nullable": true }, "hide_contact_support_url": { "type": "boolean", - "description": "Whether to hide contact support url.", + "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", "nullable": true } }, @@ -24810,6 +25180,71 @@ } } }, + "StorageDestinationInput": { + "type": "object", + "required": [ + "storage_type", + "storage_config" + ], + "properties": { + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "storage_config": { + "$ref": "#/components/schemas/StorageConfigInput", + "description": "Storage-specific configuration settings." + } + }, + "description": "Input type for storage destination configuration." + }, + "StorageConfigInput": { + "type": "object", + "properties": { + "aws_s3_config": { + "$ref": "#/components/schemas/AwsS3ConfigInput", + "description": "AWS S3 storage configuration.", + "nullable": true + } + }, + "description": "Input type for storage configuration." + }, + "AwsS3ConfigInput": { + "type": "object", + "required": [ + "bucket_name", + "region", + "role_arn", + "external_id" + ], + "properties": { + "bucket_name": { + "type": "string", + "description": "Name of the S3 bucket where webhook payloads will be stored." + }, + "region": { + "type": "string", + "description": "AWS region where the S3 bucket is located." + }, + "role_arn": { + "type": "string", + "description": "ARN of the IAM role to assume for S3 access." + }, + "external_id": { + "type": "string", + "description": "External ID for secure cross-account role assumption." + }, + "path_prefix": { + "type": "string", + "description": "Optional path prefix for organizing objects within the bucket.", + "nullable": true + } + }, + "description": "Input type for AWS S3 storage configuration." + }, "WebhookDeleteResponse": { "type": "object", "required": [ From 6161e4b8023a7e7774ba925fbcdfd3bed7c9b22a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 12 Jan 2026 09:57:21 +0000 Subject: [PATCH 395/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 36580b927..054a56a88 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -1296,7 +1296,7 @@ } }, "parameter_values": { - "description": "Parameter values.", + "description": "Allows developers to assign parameter values for existing parameters to a user at login. Note: Using parameter values for row level security use cases will ultimately be deprecated. Developers can still pass data security values via the Custom Access token via the variable_values field and create RLS rules based on custom variables. Please refer to the [ABAC via RLS documentation](https://developers.thoughtspot.com/docs/abac-user-parameters) for more details.", "type": "array", "items": { "$ref": "#/components/schemas/ParameterValues" @@ -1310,7 +1310,7 @@ } }, "objects": { - "description": "Objects on which the filter rules and parameters values should be applied to", + "description": "Objects on which the parameter and variable values should be applied to", "type": "array", "items": { "$ref": "#/components/schemas/TokenAccessScopeObject" From ea4b732c6986c1d0acdc41a48a7327ba90a93cf2 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Mon, 12 Jan 2026 08:42:35 -0800 Subject: [PATCH 396/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 054a56a88..ee98a0280 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16490,7 +16490,7 @@ ] }, "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "description": "Configuration for storage destination.\nExample: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}}
Version: 26.3.0.cl or later", "allOf": [ { "$ref": "#/components/schemas/StorageDestinationInput" @@ -17069,7 +17069,7 @@ ] }, "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "description": "Configuration for storage destination.\nExample: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}}
Version: 26.3.0.cl or later", "allOf": [ { "$ref": "#/components/schemas/StorageDestinationInput" @@ -21393,8 +21393,7 @@ "required": [ "bucket_name", "region", - "role_arn", - "external_id" + "role_arn" ], "properties": { "bucket_name": { @@ -21411,7 +21410,8 @@ }, "external_id": { "type": "string", - "description": "External ID for secure cross-account role assumption." + "description": "External ID for secure cross-account role assumption.", + "nullable": true }, "path_prefix": { "type": "string", @@ -25192,11 +25192,11 @@ "enum": [ "AWS_S3" ], - "description": "Type of storage destination (e.g., AWS_S3)." + "description": "Type of storage destination.\nExample: \"AWS_S3\"" }, "storage_config": { "$ref": "#/components/schemas/StorageConfigInput", - "description": "Storage-specific configuration settings." + "description": "Storage-specific configuration settings.\nExample: {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}" } }, "description": "Input type for storage destination configuration." @@ -25206,7 +25206,7 @@ "properties": { "aws_s3_config": { "$ref": "#/components/schemas/AwsS3ConfigInput", - "description": "AWS S3 storage configuration.", + "description": "AWS S3 storage configuration.\nExample: {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}", "nullable": true } }, @@ -25217,29 +25217,29 @@ "required": [ "bucket_name", "region", - "role_arn", - "external_id" + "role_arn" ], "properties": { "bucket_name": { "type": "string", - "description": "Name of the S3 bucket where webhook payloads will be stored." + "description": "Name of the S3 bucket where webhook payloads will be stored.\nExample: \"my-webhook-files\"" }, "region": { "type": "string", - "description": "AWS region where the S3 bucket is located." + "description": "AWS region where the S3 bucket is located.\nExample: \"us-west-2\"" }, "role_arn": { "type": "string", - "description": "ARN of the IAM role to assume for S3 access." + "description": "ARN of the IAM role to assume for S3 access.\nExample: \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\"" }, "external_id": { "type": "string", - "description": "External ID for secure cross-account role assumption." + "description": "External ID for secure cross-account role assumption.\nExample: \"ts-webhook-a1b2c3d4-7890\"", + "nullable": true }, "path_prefix": { "type": "string", - "description": "Optional path prefix for organizing objects within the bucket.", + "description": "Optional path prefix for organizing objects within the bucket.\nExample: \"thoughtspot-webhooks/\"", "nullable": true } }, From 5077517ab5b64be5a948044c4123d535977e8074 Mon Sep 17 00:00:00 2001 From: Aditya Mittal <114516106+adityamittal3107@users.noreply.github.com> Date: Tue, 13 Jan 2026 14:17:49 +0530 Subject: [PATCH 397/410] Update APIMATIC-BUILD.json (#347) * Update APIMATIC-BUILD.json * Update APIMATIC-BUILD.json with new formatting --- api-playground/APIMATIC-BUILD.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/api-playground/APIMATIC-BUILD.json b/api-playground/APIMATIC-BUILD.json index 3c9f9209a..390d2ee13 100644 --- a/api-playground/APIMATIC-BUILD.json +++ b/api-playground/APIMATIC-BUILD.json @@ -78,7 +78,10 @@ } }, "enableExport": false, - "enableConsoleCalls": true + "enableConsoleCalls": true, + "useLegacyApiPlayground": true } } } + + From c00cd96db20b5f08db02c3245ae7b42063c7134a Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 13 Jan 2026 01:55:29 -0800 Subject: [PATCH 398/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index ee98a0280..7e60a077c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -20875,6 +20875,11 @@ "description": "Unique ID or name of the principal", "nullable": true }, + "model_identifier": { + "type": "string", + "description": "Unique ID of the model
Beta Version: 26.3.0.cl or later", + "nullable": true + }, "priority": { "type": "integer", "format": "int32", From 947b451c867b90335fd0c40996a5b93deab61d0f Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 13 Jan 2026 09:57:07 +0000 Subject: [PATCH 399/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 7e60a077c..6ff24a70c 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16490,7 +16490,7 @@ ] }, "storage_destination": { - "description": "Configuration for storage destination.\nExample: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}}
Version: 26.3.0.cl or later", + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", "allOf": [ { "$ref": "#/components/schemas/StorageDestinationInput" @@ -17069,7 +17069,7 @@ ] }, "storage_destination": { - "description": "Configuration for storage destination.\nExample: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}}
Version: 26.3.0.cl or later", + "description": "Configuration for storage destination
Version: 26.3.0.cl or later", "allOf": [ { "$ref": "#/components/schemas/StorageDestinationInput" @@ -21398,7 +21398,8 @@ "required": [ "bucket_name", "region", - "role_arn" + "role_arn", + "external_id" ], "properties": { "bucket_name": { @@ -21415,8 +21416,7 @@ }, "external_id": { "type": "string", - "description": "External ID for secure cross-account role assumption.", - "nullable": true + "description": "External ID for secure cross-account role assumption." }, "path_prefix": { "type": "string", @@ -25197,11 +25197,11 @@ "enum": [ "AWS_S3" ], - "description": "Type of storage destination.\nExample: \"AWS_S3\"" + "description": "Type of storage destination (e.g., AWS_S3)." }, "storage_config": { "$ref": "#/components/schemas/StorageConfigInput", - "description": "Storage-specific configuration settings.\nExample: {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}" + "description": "Storage-specific configuration settings." } }, "description": "Input type for storage destination configuration." @@ -25211,7 +25211,7 @@ "properties": { "aws_s3_config": { "$ref": "#/components/schemas/AwsS3ConfigInput", - "description": "AWS S3 storage configuration.\nExample: {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}", + "description": "AWS S3 storage configuration.", "nullable": true } }, @@ -25222,29 +25222,29 @@ "required": [ "bucket_name", "region", - "role_arn" + "role_arn", + "external_id" ], "properties": { "bucket_name": { "type": "string", - "description": "Name of the S3 bucket where webhook payloads will be stored.\nExample: \"my-webhook-files\"" + "description": "Name of the S3 bucket where webhook payloads will be stored." }, "region": { "type": "string", - "description": "AWS region where the S3 bucket is located.\nExample: \"us-west-2\"" + "description": "AWS region where the S3 bucket is located." }, "role_arn": { "type": "string", - "description": "ARN of the IAM role to assume for S3 access.\nExample: \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\"" + "description": "ARN of the IAM role to assume for S3 access." }, "external_id": { "type": "string", - "description": "External ID for secure cross-account role assumption.\nExample: \"ts-webhook-a1b2c3d4-7890\"", - "nullable": true + "description": "External ID for secure cross-account role assumption." }, "path_prefix": { "type": "string", - "description": "Optional path prefix for organizing objects within the bucket.\nExample: \"thoughtspot-webhooks/\"", + "description": "Optional path prefix for organizing objects within the bucket.", "nullable": true } }, From d66c70d4b3af4bbd1d0b3d8a9e04aa4fe0342395 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 13 Jan 2026 13:19:08 +0000 Subject: [PATCH 400/410] Update spec file --- api-spec/openapiSpecv3-2_0.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 6ff24a70c..b07ca0606 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16490,7 +16490,7 @@ ] }, "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "description": "Configuration for storage destination.\nExample: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}}
Version: 26.3.0.cl or later", "allOf": [ { "$ref": "#/components/schemas/StorageDestinationInput" @@ -17069,7 +17069,7 @@ ] }, "storage_destination": { - "description": "Configuration for storage destination
Version: 26.3.0.cl or later", + "description": "Configuration for storage destination.\nExample: {\"storage_type\": \"AWS_S3\", \"storage_config\": {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}}
Version: 26.3.0.cl or later", "allOf": [ { "$ref": "#/components/schemas/StorageDestinationInput" @@ -21398,8 +21398,7 @@ "required": [ "bucket_name", "region", - "role_arn", - "external_id" + "role_arn" ], "properties": { "bucket_name": { @@ -21416,7 +21415,8 @@ }, "external_id": { "type": "string", - "description": "External ID for secure cross-account role assumption." + "description": "External ID for secure cross-account role assumption.", + "nullable": true }, "path_prefix": { "type": "string", @@ -25197,11 +25197,11 @@ "enum": [ "AWS_S3" ], - "description": "Type of storage destination (e.g., AWS_S3)." + "description": "Type of storage destination.\nExample: \"AWS_S3\"" }, "storage_config": { "$ref": "#/components/schemas/StorageConfigInput", - "description": "Storage-specific configuration settings." + "description": "Storage-specific configuration settings.\nExample: {\"aws_s3_config\": {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}}" } }, "description": "Input type for storage destination configuration." @@ -25211,7 +25211,7 @@ "properties": { "aws_s3_config": { "$ref": "#/components/schemas/AwsS3ConfigInput", - "description": "AWS S3 storage configuration.", + "description": "AWS S3 storage configuration.\nExample: {\"bucket_name\": \"my-webhook-files\", \"region\": \"us-west-2\", \"role_arn\": \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\", \"external_id\": \"ts-webhook-a1b2c3d4-7890\", \"path_prefix\": \"thoughtspot-webhooks/\"}", "nullable": true } }, @@ -25222,29 +25222,29 @@ "required": [ "bucket_name", "region", - "role_arn", - "external_id" + "role_arn" ], "properties": { "bucket_name": { "type": "string", - "description": "Name of the S3 bucket where webhook payloads will be stored." + "description": "Name of the S3 bucket where webhook payloads will be stored.\nExample: \"my-webhook-files\"" }, "region": { "type": "string", - "description": "AWS region where the S3 bucket is located." + "description": "AWS region where the S3 bucket is located.\nExample: \"us-west-2\"" }, "role_arn": { "type": "string", - "description": "ARN of the IAM role to assume for S3 access." + "description": "ARN of the IAM role to assume for S3 access.\nExample: \"arn:aws:iam::123456789012:role/ThoughtSpotDeliveryRole\"" }, "external_id": { "type": "string", - "description": "External ID for secure cross-account role assumption." + "description": "External ID for secure cross-account role assumption.\nExample: \"ts-webhook-a1b2c3d4-7890\"", + "nullable": true }, "path_prefix": { "type": "string", - "description": "Optional path prefix for organizing objects within the bucket.", + "description": "Optional path prefix for organizing objects within the bucket.\nExample: \"thoughtspot-webhooks/\"", "nullable": true } }, @@ -25360,4 +25360,4 @@ } } ] -} \ No newline at end of file +} From ea934254d7987121a4cbb96032fb6c6fa55d699e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 13 Jan 2026 10:14:28 -0800 Subject: [PATCH 401/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 50 ++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index b07ca0606..c4778b0dd 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -18000,10 +18000,34 @@ "type": "boolean", "description": "Block full application access for non-embedded usage.", "nullable": true + }, + "groups_with_access": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfo" + }, + "description": "Groups that have non-embed full app access.\nOnly applicable when orgs feature is disabled. Use org_preferences when org feature is enabled.", + "nullable": true } }, "description": "Cluster-level non-embed access configuration." }, + "GroupInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the group.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the group.", + "nullable": true + } + }, + "description": "Group information for non-embed access." + }, "SecuritySettingsOrgPreferences": { "type": "object", "properties": { @@ -18064,22 +18088,6 @@ }, "description": "Org-level non-embed access configuration." }, - "GroupInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier of the group.", - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of the group.", - "nullable": true - } - }, - "description": "Group information for non-embed access." - }, "OrgResponse": { "type": "object", "properties": { @@ -22454,6 +22462,14 @@ "type": "boolean", "description": "Block full application access for non-embedded usage.", "nullable": true + }, + "groups_identifiers_with_access": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Group identifiers that are allowed non-embed full app access.\nCan only be set when orgs feature is disabled and block_full_app_access is true.", + "nullable": true } }, "description": "Input for cluster-level non-embed access configuration." @@ -25360,4 +25376,4 @@ } } ] -} +} \ No newline at end of file From 909d9a30ca237685ca5937e3726cc1eb3a683eda Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 20 Jan 2026 22:18:00 -0800 Subject: [PATCH 402/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c4778b0dd..c5d02d10b 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -14108,7 +14108,7 @@ ] }, "use_browser_language": { - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.
Version: 26.3.0.cl or later", "type": "boolean", "nullable": true }, @@ -15002,7 +15002,7 @@ ] }, "use_browser_language": { - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.
Version: 26.3.0.cl or later", "type": "boolean", "nullable": true }, @@ -17459,7 +17459,7 @@ }, "use_browser_language": { "type": "boolean", - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.
Version: 26.3.0.cl or later", "nullable": true }, "extended_properties": { @@ -22190,7 +22190,7 @@ }, "preferred_locale": { "type": "string", - "description": "Locale for the user.", + "description": "Locale for the user. When setting this value, do not set use_browser_language to true, otherwise the browser's language setting will take precedence and the preferred_locale value will be ignored.", "nullable": true, "enum": [ "en-CA", @@ -22224,7 +22224,7 @@ }, "use_browser_language": { "type": "boolean", - "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.", + "description": "Flag to indicate whether to use the browser locale for the user in the UI.\nWhen set to true, the preferred_locale value is unset and the browser's\nlanguage setting takes precedence.
Version: 26.3.0.cl or later", "nullable": true } } From 51d7e0cd302c4e3a1eb6647782ce4ec404ba6fb5 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 22 Jan 2026 01:57:58 -0800 Subject: [PATCH 403/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index c5d02d10b..98385330d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -15468,14 +15468,14 @@ "type": "object", "properties": { "variable_assignment": { - "description": "Variables and values to update", + "description": "Array of variable assignment objects specifying the variable identifier, values to assign, and the operation type (ADD, REMOVE, REPLACE, or RESET) to perform on each variable.", "type": "array", "items": { "$ref": "#/components/schemas/VariableUpdateAssignmentInput" } }, "variable_value_scope": { - "description": "Variables and values to update", + "description": "Array of scope objects defining where the variable values apply, including organization context, optional principal constraints (user or group), model reference for formula variables, and priority for conflict resolution.", "type": "array", "items": { "$ref": "#/components/schemas/VariableUpdateScopeInput" @@ -20788,7 +20788,7 @@ "USER", "USER_GROUP" ], - "description": "Principal type", + "description": "Type of principal to filter by. Use USER to filter values assigned to specific users, or USER_GROUP to filter values assigned to groups.", "nullable": true }, "principal_identifier": { @@ -20798,11 +20798,11 @@ }, "model_identifier": { "type": "string", - "description": "Model Identifier", + "description": "Unique ID or name of the model to filter by. Applicable only for FORMULA_VARIABLE type.", "nullable": true } }, - "description": "Input for variable scope in search" + "description": "Input for filtering variable values by scope in search operations" }, "Variable": { "type": "object", @@ -20875,7 +20875,7 @@ "USER", "USER_GROUP" ], - "description": "Principal type", + "description": "Type of principal to which this value applies. Use USER to assign the value to a specific user, or USER_GROUP to assign it to a group.", "nullable": true }, "principal_identifier": { @@ -24845,7 +24845,7 @@ "USER", "USER_GROUP" ], - "description": "Principal type", + "description": "Type of principal to which the variable value applies. Use USER to assign values to a specific user, or USER_GROUP to assign values to a group.", "nullable": true }, "principal_identifier": { @@ -24855,17 +24855,17 @@ }, "model_identifier": { "type": "string", - "description": "Unique ID of the model", + "description": "Unique ID or name of the model. Required for FORMULA_VARIABLE type to scope the variable value to a specific worksheet.", "nullable": true }, "priority": { "type": "integer", "format": "int32", - "description": "Priority level", + "description": "The priority level for this scope assignment, used for conflict resolution when multiple values match. Higher priority values (larger numbers) take precedence.", "nullable": true } }, - "description": "Input for variable value update in batch operations" + "description": "Input for defining the scope of variable value assignments in batch update operations" }, "CreateEmailCustomizationResponse": { "type": "object", From 9d45201687c5029ace4e843811486292feb9d9c8 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 27 Jan 2026 04:26:29 -0800 Subject: [PATCH 404/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 98385330d..02bfbd95d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -12173,7 +12173,7 @@ "/api/rest/2.0/security/metadata/share": { "post": { "operationId": "shareMetadata", - "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\nThe API endpoint allows sharing only the following types of metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Worksheets\n* Views\n* Connections\n\nYou 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.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nAllows sharing one or several metadata objects with users and groups in ThoughtSpot.\n\nRequires edit access to the metadata object.\n\n#### Supported metadata objects:\n* Liveboards\n* Visualizations\n* Answers\n* Models\n* Views\n* Connections\n\n#### Object permissions\n\nYou can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. The `READ_ONLY` permission grants view access to the shared object, whereas `MODIFY` provides edit access.\n\nTo prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`.\n\n#### Sharing a visualization\n\n* Sharing a visualization implicitly shares the entire Liveboard with the recipient. \n* Object permissions set for a shared visualization also apply to the Liveboard unless overridden by another API request or via UI.\n* If email notifications for object sharing are enabled, a notification with a link to the shared visualization will be sent to the recipient’s email address. Although this link opens the shared visualization, recipients can also access other visualizations in the Liveboard.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Security", "9.0.0.cl" From 67181ad283834b7a8598f0bf72a76012b2d465e4 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 27 Jan 2026 22:03:32 -0800 Subject: [PATCH 405/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 02bfbd95d..bca3078d3 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -16545,8 +16545,8 @@ "algorithm": "SHA256", "secret": "***" }, - "created_at": "2025-08-21T21:57:10.243089030Z", - "last_modified_at": "2025-08-21T21:57:10.243089030Z", + "creation_time_in_millis": 1724277430243, + "modification_time_in_millis": 1724277430243, "created_by": { "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b", "name": "sarah_chen" @@ -16578,8 +16578,8 @@ "client_secret": "***" } }, - "created_at": "2025-08-21T22:15:30.123456789Z", - "last_modified_at": "2025-08-21T22:15:30.123456789Z", + "creation_time_in_millis": 1724278530123, + "modification_time_in_millis": 1724278530123, "created_by": { "id": "7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d", "name": "mike_rodriguez" @@ -16694,8 +16694,8 @@ "authentication": { "BEARER_TOKEN": "***" }, - "created_at": "2025-08-21T15:30:00.000000000Z", - "last_modified_at": "2025-08-21T15:30:00.000000000Z", + "creation_time_in_millis": 1724274600000, + "modification_time_in_millis": 1724274600000, "created_by": { "id": "1f4e7b2d-9c3a-4e6f-8b1d-3e7c5a9b2f4e", "name": "jennifer_patel" @@ -16719,8 +16719,8 @@ "value": "***" } }, - "created_at": "2025-08-21T16:45:30.123456789Z", - "last_modified_at": "2025-08-21T16:45:30.123456789Z", + "creation_time_in_millis": 1724275530123, + "modification_time_in_millis": 1724275530123, "created_by": { "id": "9a5c2e8f-4b7d-4c1e-9f2a-6c8e3b5d7a4c", "name": "david_thompson" @@ -16751,8 +16751,8 @@ "authentication": { "NO_AUTH": "" }, - "created_at": "2025-08-21T18:20:15.456789012Z", - "last_modified_at": "2025-08-21T18:20:15.456789012Z", + "creation_time_in_millis": 1724276415456, + "modification_time_in_millis": 1724276415456, "created_by": { "id": "6e9c4f2a-8b5d-4e1f-9c3a-5f8b2e7d4a6c", "name": "emma_wang" @@ -16908,8 +16908,8 @@ "algorithm": "SHA256", "secret": "***" }, - "created_at": "2025-08-21T21:57:10.243089030Z", - "last_modified_at": "2025-08-21T22:10:15.123456789Z", + "creation_time_in_millis": 1724277430243, + "modification_time_in_millis": 1724278215123, "created_by": { "id": "8e3f2a7b-9c4d-4e5f-8a1b-7c9d3e6f4a2b", "name": "sarah_chen" @@ -16937,8 +16937,8 @@ "value": "***" } }, - "created_at": "2025-08-21T20:30:45.987654321Z", - "last_modified_at": "2025-08-21T20:30:45.987654321Z", + "creation_time_in_millis": 1724275845987, + "modification_time_in_millis": 1724275845987, "created_by": { "id": "7d5e9f2a-4b8c-4d6e-9a3b-5c7e1f4a8b2d", "name": "mike_rodriguez" From 2a26f3fa72b266c0cc4c1af38ff352e79ffeb7f7 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Tue, 27 Jan 2026 23:47:17 -0800 Subject: [PATCH 406/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index bca3078d3..5f5343533 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -5425,7 +5425,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 \"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", + "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 \"cta_text_font_color\": \"#FFFFFF\",\n \"primary_bg_color\": \"#D3DEF0\",\n \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\",\n \t \"font_family\": \"\",\n \"product_name\": \"ThoughtSpot\",\n \"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 \"replacement_value_for_answer\": \"Chart\",\n \"replacement_value_for_spot_iq\": \"AI Insights\",\n \t \"hide_footer_phone\": false,\n \"hide_footer_address\": false,\n \"hide_product_name\": false,\n \"hide_manage_notification\": false,\n \"hide_mobile_app_nudge\": false,\n \"hide_privacy_policy\": false,\n \"hide_ts_vocabulary_definitions\": false,\n \"hide_error_message\": false,\n \"hide_unsubscribe_link\": false,\n \"hide_notification_status\": false,\n \"hide_modify_alert\": false,\n \"company_website_url\": \"https://your-website.com/\",\n \"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\t \"hide_logo_url\" : false\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.10.0.cl" @@ -5712,7 +5712,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 \"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", + "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\t \"hide_logo_url\" : false\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.12.0.cl" @@ -25045,6 +25045,11 @@ "type": "boolean", "description": "Whether to hide contact support url.
Version: 26.2.0.cl or later", "nullable": true + }, + "hide_logo_url": { + "type": "boolean", + "description": "Whether to hide logo
Version: 26.4.0.cl or later", + "nullable": true } }, "description": "Email customization configuration properties" From b47268ab8df5a2c94028ed15a928cb5c1b458214 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 28 Jan 2026 01:48:43 -0800 Subject: [PATCH 407/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 5f5343533..9c835595a 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -187,7 +187,7 @@ "/api/rest/2.0/ai/agent/conversation/create": { "post": { "operationId": "createAgentConversation", - "description": "Beta Version: 10.13.0.cl or later", + "description": "\nBeta Version: 10.13.0.cl or later\n\n\n\n\n\n#### Endpoint URL\n", "tags": [ "AI", "10.13.0.cl" @@ -591,7 +591,7 @@ "/api/rest/2.0/ai/analytical-questions": { "post": { "operationId": "queryGetDecomposedQuery", - "description": "Beta Version: 10.7.0.cl or later", + "description": "\nBeta Version: 10.7.0.cl or later\n\n\n\n\n\n#### Endpoint URL\n", "deprecated": true, "tags": [ "AI", From 2caaf6f3a1893a6af5f305eb764edddb11bc0c46 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 28 Jan 2026 02:01:38 -0800 Subject: [PATCH 408/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 9c835595a..09759ca56 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -8920,7 +8920,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, 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", + "description": "\n Version: 9.0.0.cl or later\n\nExports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format.\nThe default `file_format` is CSV.\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\n**NOTE**: \n\n* The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n\n* Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data.\n\n* 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). \n\n* 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* Starting with the ThoughtSpot Cloud 26.2.0.cl release,\n\n * Liveboards can be exported in CSV format. \n * All visualizations within a Liveboard can be exported as individual CSV files. \n * When exporting multiple visualizations or the entire Liveboard, the system returns the report as a compressed ZIP file containing the separate CSV files for each visualization.\n\n * Liveboards can also be exported in XLSX format. \n * All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). \n * XLSX exports are limited to a maximum of 255 worksheets (tabs) per workbook.\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -12583,7 +12583,7 @@ "/api/rest/2.0/system/security-settings/configure": { "post": { "operationId": "configureSecuritySettings", - "description": "\nBeta Version: 26.2.0.cl or later\n\nConfigure security settings for your ThoughtSpot application instance.\n- Use `cluster_preferences` to update cluster-level security settings including CORS whitelisted URLs, CSP settings, SAML redirect URLs, partitioned cookies, and non-embed access configuration.\n- Use `org_preferences` to configure Org-specific security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this allows configuring CORS and non-embed access settings specific to the Org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. Cluster-level SAML and script-src settings require `ADMINISTRATION` privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 26.2.0.cl or later\n\nConfigure security settings for your ThoughtSpot application instance.\n- Use `cluster_preferences` to update cluster-level security settings including CORS whitelisted URLs, CSP settings, SAML redirect URLs, partitioned cookies, and non-embed access configuration.\n- Use `org_preferences` to configure Org-specific security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this allows configuring CORS and non-embed access settings specific to the Org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. Cluster-level SAML and script-src settings require `ADMINISTRATION` privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "26.2.0.cl" @@ -13015,7 +13015,7 @@ "/api/rest/2.0/system/security-settings/search": { "post": { "operationId": "searchSecuritySettings", - "description": "\nBeta Version: 26.2.0.cl or later\n\nFetch security settings for your ThoughtSpot application instance.\n- Use `scope: CLUSTER` to retrieve cluster-level security settings, including CORS and CSP allowlists, SAML redirect URLs, and settings that control access to non-embedded pages.\n- Use `scope: ORG` to retrieve Org-level security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this returns CORS and non-embed access settings specific to the Org.\n- If `scope` is not specified, returns both cluster and Org-specific settings based on user privileges.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 26.2.0.cl or later\n\nFetch security settings for your ThoughtSpot application instance.\n- Use `scope: CLUSTER` to retrieve cluster-level security settings, including CORS and CSP allowlists, SAML redirect URLs, and settings that control access to non-embedded pages.\n- Use `scope: ORG` to retrieve Org-level security settings. If your instance has [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview), this returns CORS and non-embed access settings specific to the Org.\n- If `scope` is not specified, returns both cluster and Org-specific settings based on user privileges.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\nSee [Security Settings](https://developers.thoughtspot.com/docs/security-settings) for more details.\n\n\n\n#### Endpoint URL\n", "tags": [ "System", "26.2.0.cl" From 40062bd38f8bd6d3b2df09bb3ce3b67333458f79 Mon Sep 17 00:00:00 2001 From: tse-developer Date: Wed, 28 Jan 2026 20:58:27 -0800 Subject: [PATCH 409/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 243 ++++++++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 09759ca56..080f67b2d 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -180,6 +180,14 @@ "9.7.0.cl" ], "description": "Roles for version 9.7.0.cl" + }, + { + "name": "26.4.0.cl", + "id": "26.4.0.cl", + "tags": [ + "26.4.0.cl" + ], + "description": "Roles for version 26.4.0.cl" } ], "tags": [], @@ -16815,6 +16823,149 @@ } } }, + "/api/rest/2.0/webhooks/{webhook_identifier}/storage-config": { + "get": { + "operationId": "getWebhookStorageConfig", + "description": "\nBeta Version: 26.4.0.cl or later\n\nGet storage config information for a webhook configuration. This endpoint provides ThoughtSpot's identity information and IAM policy configuration required for customers to set up cross-account access to their S3 buckets.\n\nThe setup info returned depends on the ThoughtSpot cluster type:\n- For AWS clusters: Returns `aws_config` with STS AssumeRole configuration\n- For GCP clusters: Returns `gcp_config` with STS AssumeRoleWithWebIdentity configuration\n\n**Note:** This endpoint only returns data if the webhook has a storage destination configured.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "Webhooks", + "26.4.0.cl" + ], + "parameters": [ + { + "in": "path", + "name": "webhook_identifier", + "required": true, + "schema": { + "type": "string" + }, + "description": "Unique ID or name of the webhook configuration." + } + ], + "responses": { + "200": { + "description": "Storage setup information retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageSetupInfo" + }, + "examples": { + "example_1": { + "description": "Storage setup info for AWS cluster deployment", + "value": { + "cluster_type": "AWS", + "storage_type": "AWS_S3", + "aws_config": { + "thoughtspot_aws_account_id": "123456789012", + "trust_policy_template": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::123456789012:root" + }, + "Action": "sts:AssumeRole", + "Condition": { + "StringEquals": { + "sts:ExternalId": "ts-webhook-a1b2c3d4-7890" + } + } + } + ] + }, + "setup_instructions": [ + "1. Create an IAM role in your AWS account", + "2. Copy the trust policy template and attach it to your role", + "3. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role", + "4. Use the role ARN in your webhook storage configuration" + ] + } + } + }, + "example_2": { + "description": "Storage setup info for GCP cluster deployment", + "value": { + "cluster_type": "GCP", + "storage_type": "AWS_S3", + "gcp_config": { + "thoughtspot_gcp_service_account_id": "115663769112811637952", + "oidc_provider": "accounts.google.com", + "trust_policy_template": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Federated": "arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/accounts.google.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "accounts.google.com:sub": "115663769112811637952" + } + } + } + ] + }, + "setup_instructions": [ + "1. Add accounts.google.com as an Identity Provider in AWS IAM", + "2. Create an IAM role with Web Identity Federation trust", + "3. Configure the trust policy with ThoughtSpot's GCP service account ID", + "4. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role", + "5. Use the role ARN in your webhook storage configuration" + ] + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request. Webhook not found or does not have storage destination configured.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/webhooks/search": { "post": { "operationId": "searchWebhookConfigurations", @@ -21464,6 +21615,98 @@ } } }, + "StorageSetupInfo": { + "type": "object", + "required": [ + "cluster_type", + "storage_type" + ], + "properties": { + "cluster_type": { + "type": "string", + "enum": [ + "AWS", + "GCP" + ], + "description": "The type of ThoughtSpot cluster deployment.\nDetermines which authentication method is used for S3 access.\nExample: \"AWS\" or \"GCP\"" + }, + "storage_type": { + "type": "string", + "enum": [ + "AWS_S3" + ], + "description": "Type of storage destination (e.g., AWS_S3)." + }, + "aws_config": { + "$ref": "#/components/schemas/AWSAssumeRoleSetup", + "description": "Setup info for AWS clusters using STS AssumeRole.\nOnly populated when cluster_type is AWS.", + "nullable": true + }, + "gcp_config": { + "$ref": "#/components/schemas/GCPWebIdentitySetup", + "description": "Setup info for GCP clusters using STS AssumeRoleWithWebIdentity.\nOnly populated when cluster_type is GCP.", + "nullable": true + } + }, + "description": "Setup information for customer-managed storage configuration.\nProvides ThoughtSpot's identity information and IAM policy configuration\nrequired for customers to set up cross-account access to their S3 buckets.\nThe response contains cluster-specific configuration based on the cluster_type:\n- For AWS clusters: aws_config will be populated\n- For GCP clusters: gcp_config will be populated\nExample query:\n```graphql\nquery {\n getWebhookStorageConfig(webhook_identifier: \"my-webhook\") {\n cluster_type\n storage_type\n aws_config {\n thoughtspot_aws_account_id\n trust_policy_template\n setup_instructions\n }\n gcp_config {\n thoughtspot_gcp_service_account_id\n oidc_provider\n trust_policy_template\n setup_instructions\n }\n }\n}\n```\nExample AWS response:\n{\n \"cluster_type\": \"AWS\",\n \"storage_type\": \"AWS_S3\",\n \"aws_config\": {\n \"thoughtspot_aws_account_id\": \"123456789012\",\n \"trust_policy_template\": { \"Version\": \"2012-10-17\", \"Statement\": [...] },\n \"setup_instructions\": [\"1. Create an IAM role...\", \"2. Add trust policy...\"]\n },\n \"gcp_config\": null\n}\nExample GCP response:\n{\n \"cluster_type\": \"GCP\",\n \"storage_type\": \"AWS_S3\",\n \"aws_config\": null,\n \"gcp_config\": {\n \"thoughtspot_gcp_service_account_id\": \"115663769112811637952\",\n \"oidc_provider\": \"accounts.google.com\",\n \"trust_policy_template\": { \"Version\": \"2012-10-17\", \"Statement\": [...] },\n \"setup_instructions\": [\"1. Add accounts.google.com as Identity Provider...\"]\n }\n}" + }, + "AWSAssumeRoleSetup": { + "type": "object", + "required": [ + "thoughtspot_aws_account_id", + "trust_policy_template" + ], + "properties": { + "thoughtspot_aws_account_id": { + "type": "string", + "description": "ThoughtSpot's AWS Account ID. You must include this in your IAM role's\ntrust policy to allow ThoughtSpot to assume your role.\nExample: \"123456789012\"" + }, + "trust_policy_template": { + "type": "object", + "description": "Sample IAM trust policy JSON object that you should attach to your IAM role.\nThe policy includes ThoughtSpot's AWS Account ID and your External ID.\nExample: { \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::123456789012:root\" }, \"Action\": \"sts:AssumeRole\", \"Condition\": { \"StringEquals\": { \"sts:ExternalId\": \"your-external-id\" } } }] }" + }, + "setup_instructions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Step-by-step instructions to configure your AWS IAM role.\nExample: [\"1. Create an IAM role in your AWS account\", \"2. Add the trust policy with ThoughtSpot's AWS Account ID\"]", + "nullable": true + } + }, + "description": "Setup information for AWS clusters using STS AssumeRole.\nThoughtSpot will use its AWS IAM role to assume your role in your AWS account.\nExample:\n{\n \"thoughtspot_aws_account_id\": \"123456789012\",\n \"trust_policy_template\": {\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Principal\": { \"AWS\": \"arn:aws:iam::123456789012:root\" },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": { \"StringEquals\": { \"sts:ExternalId\": \"your-external-id\" } }\n }]\n },\n \"setup_instructions\": [\n \"1. Create an IAM role in your AWS account\",\n \"2. Copy the trust policy template and attach it to your role\",\n \"3. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role\",\n \"4. Use the role ARN in your webhook storage configuration\"\n ]\n}" + }, + "GCPWebIdentitySetup": { + "type": "object", + "required": [ + "thoughtspot_gcp_service_account_id", + "trust_policy_template" + ], + "properties": { + "thoughtspot_gcp_service_account_id": { + "type": "string", + "description": "ThoughtSpot's GCP service account unique ID (numeric).\nThis is the 'sub' claim in OIDC tokens and must be included in your\nIAM role's trust policy condition.\nExample: \"115663769112811637952\"" + }, + "oidc_provider": { + "type": "string", + "description": "The OIDC identity provider URL. For GCP, this is always 'accounts.google.com'.\nYou must configure this as an Identity Provider in AWS IAM.\nExample: \"accounts.google.com\"", + "nullable": true + }, + "trust_policy_template": { + "type": "object", + "description": "Sample IAM trust policy JSON object for Web Identity Federation.\nThis policy allows ThoughtSpot's GCP service account to assume your AWS role.\nExample: { \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Allow\", \"Principal\": { \"Federated\": \"arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/accounts.google.com\" }, \"Action\": \"sts:AssumeRoleWithWebIdentity\", \"Condition\": { \"StringEquals\": { \"accounts.google.com:sub\": \"115663769112811637952\" } } }] }" + }, + "setup_instructions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Step-by-step instructions to configure AWS for GCP Web Identity Federation.\nExample: [\"1. Add accounts.google.com as an Identity Provider in AWS IAM\", \"2. Create an IAM role with Web Identity Federation trust\"]", + "nullable": true + } + }, + "description": "Setup information for GCP clusters using STS AssumeRoleWithWebIdentity.\nThoughtSpot will use its GCP service account to obtain OIDC tokens for AWS access.\nExample:\n{\n \"thoughtspot_gcp_service_account_id\": \"115663769112811637952\",\n \"oidc_provider\": \"accounts.google.com\",\n \"trust_policy_template\": {\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Principal\": { \"Federated\": \"arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/accounts.google.com\" },\n \"Action\": \"sts:AssumeRoleWithWebIdentity\",\n \"Condition\": { \"StringEquals\": { \"accounts.google.com:sub\": \"115663769112811637952\" } }\n }]\n },\n \"setup_instructions\": [\n \"1. Add accounts.google.com as an Identity Provider in AWS IAM\",\n \"2. Create an IAM role with Web Identity Federation trust\",\n \"3. Configure the trust policy with ThoughtSpot's GCP service account ID\",\n \"4. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role\",\n \"5. Use the role ARN in your webhook storage configuration\"\n ]\n}" + }, "GenericInfo": { "type": "object", "properties": { From 1e238024b370ef2bfb9cb5fade554662cd53095e Mon Sep 17 00:00:00 2001 From: tse-developer Date: Thu, 29 Jan 2026 02:13:20 -0800 Subject: [PATCH 410/410] Updating spec --- api-spec/openapiSpecv3-2_0.json | 220 ++++++++++++++++++++++++++++++-- 1 file changed, 212 insertions(+), 8 deletions(-) diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 080f67b2d..40c8427c6 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -173,14 +173,6 @@ ], "description": "Roles for version 10.14.0.cl" }, - { - "name": "9.7.0.cl", - "id": "9.7.0.cl", - "tags": [ - "9.7.0.cl" - ], - "description": "Roles for version 9.7.0.cl" - }, { "name": "26.4.0.cl", "id": "26.4.0.cl", @@ -188,6 +180,14 @@ "26.4.0.cl" ], "description": "Roles for version 26.4.0.cl" + }, + { + "name": "9.7.0.cl", + "id": "9.7.0.cl", + "tags": [ + "9.7.0.cl" + ], + "description": "Roles for version 9.7.0.cl" } ], "tags": [], @@ -13242,6 +13242,104 @@ } } }, + "/api/rest/2.0/system/communication-channels/validate": { + "post": { + "operationId": "validateCommunicationChannel", + "description": "\nBeta Version: 26.4.0.cl or later\n\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "System", + "26.4.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "channel_type": { + "description": "Type of communication channel to validate (e.g., WEBHOOK).", + "type": "string", + "enum": [ + "WEBHOOK" + ] + }, + "channel_identifier": { + "description": "Unique identifier or name for the communication channel.", + "type": "string" + }, + "event_type": { + "description": "Event type to validate for this channel.", + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ] + } + }, + "required": [ + "channel_type", + "channel_identifier", + "event_type" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "communication channel configuration validated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommunicationChannelValidateResponse" + } + } + } + }, + "400": { + "description": "Invalid request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "500": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/api/rest/2.0/tags/assign": { "post": { "operationId": "assignTag", @@ -22762,6 +22860,112 @@ }, "description": "Input for org-level non-embed access configuration." }, + "CommunicationChannelValidateResponse": { + "type": "object", + "required": [ + "channel_type", + "channel_id", + "event_type", + "result_code" + ], + "properties": { + "channel_type": { + "type": "string", + "enum": [ + "WEBHOOK" + ], + "description": "Type of communication channel that was validated." + }, + "channel_id": { + "type": "string", + "description": "ID of the communication channel (e.g., webhook_id)." + }, + "channel_name": { + "type": "string", + "description": "Name of the communication channel (e.g., webhook name).", + "nullable": true + }, + "event_type": { + "type": "string", + "enum": [ + "LIVEBOARD_SCHEDULE" + ], + "description": "Event type that was validated." + }, + "result_code": { + "type": "string", + "enum": [ + "SUCCESS", + "FAILED", + "PARTIAL_SUCCESS" + ], + "description": "Overall result of the validation." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelValidationDetail" + }, + "description": "Detailed results of various validation sub-steps.", + "nullable": true + } + }, + "description": "Response containing validation results for communication channel configuration." + }, + "ChannelValidationDetail": { + "type": "object", + "required": [ + "validation_step", + "status" + ], + "properties": { + "validation_step": { + "type": "string", + "enum": [ + "HTTP_CONNECTION_CHECK", + "STORAGE_FILE_UPLOAD_CHECK" + ], + "description": "The validation step that was performed." + }, + "status": { + "type": "string", + "enum": [ + "SUCCESS", + "FAILED" + ], + "description": "Status of this validation step." + }, + "error_code": { + "type": "string", + "enum": [ + "INVALID_CREDENTIALS", + "FORBIDDEN", + "UNAUTHORIZED", + "CONNECTION_TIMEOUT", + "UNKNOWN" + ], + "description": "Error code if the validation step failed.", + "nullable": true + }, + "http_status": { + "type": "integer", + "format": "int32", + "description": "HTTP status code returned by the channel (if applicable).", + "nullable": true + }, + "error_message": { + "type": "string", + "description": "Error message from the channel or validation process.", + "nullable": true + }, + "additional_info": { + "type": "string", + "description": "Additional information about the validation step.", + "nullable": true + } + }, + "description": "Validation detail result for a sub-step." + }, "TagMetadataTypeInput": { "type": "object", "required": [